http://blog.csdn.net/wangwenjing90/article/details/8720529#
http://jingyan.baidu.com/article/86fae346b702603c49121a9c.html
编写步骤:
通过修改注册表实现开机自启动,过程如下:
1、定义注册表项HKEY heky;
2、通过RegOpenKeyEx函数打开电脑的启动项;
3、通过GetModuleFileName函数获取本软件的全路径;
4、通过RegSetValueEx函数添加注册表项;
取消自启动,过程如下:
1、通过RegOpenKeyEx函数打开电脑的启动项;
2、通过RegDeleteValue函数删除注册表项;
程序:
1.在主对话框类中添加成员函数,写注册表,设置开机自启动
- void CClientDlg::SetAutoRun(BOOL bAutoRun)
- {
- HKEY hKey;
- CString strRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
- if (bAutoRun)
- {
- if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
- {
- TCHAR szModule[_MAX_PATH];
- GetModuleFileName(NULL, szModule, _MAX_PATH);
- RegSetValueEx(hKey,"Client", 0, REG_SZ, (const BYTE*)(LPCSTR)szModule, strlen(szModule));
- RegCloseKey(hKey);
- }
- else
- {
- AfxMessageBox("系统参数错误,不能随系统启动");
- }
- }
- else
- {
- if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
- {
- RegDeleteValue (hKey,"Client");
- RegCloseKey(hKey);
- }
- }
- }
2.在对话框初始化函数OnInitDlg中调用上面的函数:
- BOOL CClientDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- .
- .
- SetAutoRun(TRUE);
-
- return TRUE;
- }
编译运行,当你重启电脑时,程序就自动启动了。