470,833 Members | 1,666 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,833 developers. It's quick & easy.

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

}
Jun 27 '08 #1
2 1067
ya***********@gmail.com wrote:
// 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
Jun 27 '08 #2
ya***********@gmail.com wrote:
// 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
Jun 27 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Naresh Sharma | last post: by
1 post views Thread by New MSSQL DBA | last post: by
7 posts views Thread by Hardy &&& | last post: by
2 posts views Thread by John | last post: by
reply views Thread by mihailmihai484 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.