我写了一个程序,想让电脑在启动时自动加载而后执行它,我该怎么做?
谢谢了,各位大侠!
谢谢了,各位大侠!
解决方案 »
- 关于vs 2010 内存泄露问题
- 如何编程为文本框插入内容
- CListControl排序问题
- 请网络高手进来解答一下,100分侍候!
- 为何不能抛出异常?
- 如何读取一个按纽上显示的值
- 为什么我在MainFrm.h中添加CToolBar对象,运行时出现Debug Assertion Failed!在我的CMainFrame类中为什么只能有一个CToolBar对象才不出错
- FreeLibrary DLL出错
- 如何编写.ini文件?
- 菜鸟的MFC扩展DLL遭遇挫折!呼唤大侠前来指点!!!!
- windows shell编程主要用在哪里?shell提供的api和windows api什么关系?windows api能实现所有的shell api吗?
- 看看我的硬盘要怎么办呢
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
//注册自动启动
HKEY hk;
HKEY hk1;
DWORD dis;
LPCTSTR data_set_runservices="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
LPCTSTR data_set_GTsoft="Software\\GTSoft";
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set_runservices,0,KEY_ALL_ACCESS,&hk1)!=ERROR_SUCCESS)//打开注册表项
MessageBox(NULL,"The RegRun can't be opened successfully.","information",1);
//新建一个注册表值项
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,data_set_GTsoft,0,NULL,0,KEY_ALL_ACCESS,NULL,&hk1,&dis)!=ERROR_SUCCESS)
MessageBox(NULL,"The RegGTSoft can't be opened successfully.","information",1);
//下面开始设置该键的值
RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));
自动启动的程序可以注册到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下
RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));中的pathbuffer如何得到?
:你要把快捷方式放到哪里免去, 不要把程序放进去2.RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));中的pathbuffer如何得到?
就是你的应用程序路径:
可以这么做:这个函数给你
CString GetLocalDir()
{
char path[MAX_PATH]; ::GetModuleFileName(NULL, path, MAX_PATH);
for(int i = strlen(path) - 1; i > -1; i-- )
{
if(path[i] == '\\')
{
path[i+1] = 0;
break;
}
}
return CString(path);
}
你需要的是全路经,
你的pathbuffer 应该是
char pathbuffer [MAX_PATH];::GetModuleFileName(NULL, pathbuffer , MAX_PATH);