Connecting Tech Pros Worldwide Help | Site Map

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

 
LinkBack Thread Tools Search this Thread
  #1  
Old June 27th, 2008, 04:43 PM
yanglihao2006@gmail.com
Guest
 
Posts: n/a
Default Failed to operate register to make the application runningautomaticly when bootting a computer.

// 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"));
}

}

  #2  
Old June 27th, 2008, 04:43 PM
Victor Bazarov
Guest
 
Posts: n/a
Default Re: Failed to operate register to make the application running automaticlywhen bootting a computer.

yanglihao2006@gmail.com wrote:
Quote:
// autoRunDlg.cpp : implementation file
//
>
[..MFC app partial source code redacted..]
And what is your C++ language question? Perhaps you would like to know
that for questions on MS Windows API there are other newsgroups (with
the word "windows" in their names) and for MFC there are also quite a
few forums (with "mfc" in the names). Please find a better place to ask
your Windows-specific question. Thanks and good luck!

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
  #3  
Old June 27th, 2008, 04:43 PM
Stuart Golodetz
Guest
 
Posts: n/a
Default Re: Failed to operate register to make the application running automaticlywhen bootting a computer.

yanglihao2006@gmail.com wrote:
Quote:
// autoRunDlg.cpp : implementation file
//
>
<snip large amounts of code>

If you want an answer to your question, you need to do a number of
things which you haven't done in this case:

(a) Ask it (analogy: if I walked up to somebody and started spouting
gibberish at them, they wouldn't be able to answer the question I hadn't
asked them)
(b) Post it in the right newsgroup (an MFC one, not comp.lang.c++) -
this makes it more likely that the people you're asking know what you're
on about
(c) Put something in the body of your message which isn't just a big
code dump (source code is not a question, even if it implies the
question "why doesn't my code work?")

You might want to take a look at:

http://www.parashift.com/c++-faq-lite/how-to-post.html

Best wishes,
Stuart
 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,662 network members.