Failed to operate register to make the application runningautomaticly when bootting a computer.

Discussion in 'C++' started by yanglihao2006@gmail.com, May 20, 2008.

  1. Guest

    // autoRunDlg.cpp : implementation file
    //

    #include "stdafx.h"
    #include "autoRun.h"
    #include "autoRunDlg.h"
    #include "tchar.h"

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif


    // CAboutDlg dialog used for App About

    class CAboutDlg : public CDialog
    {
    public:
    CAboutDlg();

    // Dialog Data
    enum { IDD = IDD_ABOUTBOX };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
    support

    // Implementation
    protected:
    DECLARE_MESSAGE_MAP()
    };

    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
    }

    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    }

    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    END_MESSAGE_MAP()


    // CautoRunDlg dialog




    CautoRunDlg::CautoRunDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CautoRunDlg::IDD, pParent)
    {
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }

    void CautoRunDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    }

    BEGIN_MESSAGE_MAP(CautoRunDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
    ON_BN_CLICKED(IDC_BUTTON1, &CautoRunDlg::OnBnClickedButton1)
    END_MESSAGE_MAP()


    // CautoRunDlg message handlers

    BOOL CautoRunDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.

    // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    }

    // Set the icon for this dialog. The framework does this
    automatically
    // when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon

    // TODO: Add extra initialization here

    return TRUE; // return TRUE unless you set the focus to a control
    }

    void CautoRunDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    }
    else
    {
    CDialog::OnSysCommand(nID, lParam);
    }
    }

    // If you add a minimize button to your dialog, you will need the code
    below
    // to draw the icon. For MFC applications using the document/view
    model,
    // this is automatically done for you by the framework.

    void CautoRunDlg::OnPaint()
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // device context for painting

    SendMessage(WM_ICONERASEBKGND,
    reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

    // Center icon in client rectangle
    int cxIcon = GetSystemMetrics(SM_CXICON);
    int cyIcon = GetSystemMetrics(SM_CYICON);
    CRect rect;
    GetClientRect(&rect);
    int x = (rect.Width() - cxIcon + 1) / 2;
    int y = (rect.Height() - cyIcon + 1) / 2;

    // Draw the icon
    dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
    CDialog::OnPaint();
    }
    }

    // The system calls this function to obtain the cursor to display
    while the user drags
    // the minimized window.
    HCURSOR CautoRunDlg::OnQueryDragIcon()
    {
    return static_cast<HCURSOR>(m_hIcon);
    }


    void CautoRunDlg::OnBnClickedButton1()
    {
    TCHAR szFilePath[MAX_PATH+1];
    GetModuleFileName(NULL,szFilePath,MAX_PATH);

    HKEY hKey;
    HKEY RootKey=HKEY_CURRENT_USER;
    TCHAR *KeyTree =_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\
    \Run");
    if(RegOpenKeyEx(RootKey,KeyTree,0,KEY_READ,&hKey)==ERROR_SUCCESS)
    {
    if(RegSetValueEx(hKey,_T("example"),NULL,REG_SZ,
    (byte*)szFilePath,CString(szFilePath).GetLength())!=ERROR_SUCCESS)
    {
    AfxMessageBox(_T("error.1"));
    }
    RegCloseKey(hKey);
    }
    else
    {
    AfxMessageBox(_T("error.1"));
    }

    }
     
    , May 20, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. benn
    Replies:
    2
    Views:
    603
  2. Maya Young

    Use C# to operate a mobile device

    Maya Young, Apr 15, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    624
    Maya Young
    Apr 17, 2004
  3. Dux
    Replies:
    1
    Views:
    290
    Mike Wahler
    Oct 5, 2003
  4. Timothy Madden

    How does #define operate ?

    Timothy Madden, Sep 27, 2004, in forum: C++
    Replies:
    5
    Views:
    631
    Xenos
    Sep 28, 2004
  5. Richard Cavell

    GMP: Cannot operate on vector<mpz_t>

    Richard Cavell, Feb 18, 2005, in forum: C++
    Replies:
    3
    Views:
    1,125
    Richard Cavell
    Feb 18, 2005
Loading...

Share This Page