当前位置:首页>数码维修>电脑>

修改电脑启动文件代码(电脑怎么用代码重新启动)

修改电脑启动文件代码(电脑怎么用代码重新启动)

更新时间:2025-09-30 12:51:17

修改电脑启动文件代码

1、最简单的方法就是通过msconfig文件管理启动项目。

2、打开开始菜单,在查找框输入msconfig。

3、可以看到msconfig.exe程序了,进入程序窗口。

4、选择引导选项卡,进入启动项管理设置。

5、选择一下32位win7系统或64位win7系统,点击设为默认值。

6、也可以通过删除功能将系统中不需要的操作系统启动项删除掉。

开机启动有两种方式,一是修改注册表,二是复制exe文件到startup里;下面看具体代码;

第一种,修改注册表

void ChooseInvoke() { CString RegPath = _T("SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); char sPath[MAX_PATH] = ""; char sSys[MAX_PATH] = ""; std::string strExe = "\RemoteCtrl.exe "; GetCurrentDirectoryA(MAX_PATH, sPath); GetSystemDirectoryA(sSys, sizeof(sSys)); std::string strCmd = "mklink " + std::string(sSys) + strExe + std::string(sPath) + strExe; int ret = system(strCmd.c_str()); TRACE("ret=%d ", ret); HKEY hKey = NULL; ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, RegPath, 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hKey); } 12345678910111213141234567891011121314

RegPath :是需要修改的注册表的路径;

strExe :是需要启动的EXE文件名;文件名后也需要添加一个空格;

GetCurrentDirectoryA:这个函数是获取当前文件所在的路径;

GetSystemDirectoryA:这个函数是获取window目录名;

mklink : mklink是 Windows 下用于创建符号链接的工具,是软链接;

strCmd:就是将俩个需要用到的路径链接到一起;mklink是命令,如果想要在程序结束时命令框不退出,可以这样

“cmd /k mklink ”;还有需要注意的是命令和字符串之间要有空格 ,像这样“mklink ”;

RegOpenKeyEx:用于打开一个指定的注册表键;

LONG RegOpenKeyEx( HKEY hKey, // 需要打开的主键的名称 LPCTSTR lpSubKey, //需要打开的子键的名称 DWORD ulOptions, // 保留,设为0 REGSAM samDesired, // 安全访问标记,也就是权限 PHKEY phkResult // 得到的将要打开键的句柄 ) 12345671234567

程序中还需要用到的函数是RegSetValueEx:若想要设置的注册表项下不是默认值,即有名称值的数据和类型时,可以调用RegSetValueEx函数,该函数将在注册表项下设置指定值的数据和类型。

ret = RegSetValueEx(hKey, _T("RemoteCtrl.exe"), 0, REG_EXPAND_SZ, (BYTE*)(LPCTSTR)strPath, strPath.GetLength()*sizeof(TCHAR)); 11

最后,别忘了把得到的句柄关闭:RegCloseKey(hKey);

这些是主要的函数,还有一些业务型代码需要自己去写;比如一些判断句柄是否打开,文件路径是否正确;

第二种,复制文件

打开启动文件夹命令:win+R 键,输入shell:startup,就是开机启动路径;
先看代码:

void WriteStartUp() { CString startPath = _T("C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"); CString strCmd = GetCommandLine(); strCmd.Replace(_T("""), _T("")); BOOL art = CopyFile(strCmd, startPath, FALSE); if (art == FALSE) { MessageBox(NULL, _T("复制文件失败,请检查权限! "), _T("错误"), MB_ICONERROR | MB_TOPMOST); exit(0); } } 123456789101112123456789101112

startPath :就是你用命令得到的路径;

GetCommandLine:是一个窗口函数,win32有基于控制台和基于窗口俩种可执行文件;控制台入口是main函数,基于窗口的入口是winmain函数;GetCommandLine函数的作用是获取程序的命令行参数然后以参数的形式传递给WinMain函数;

strCmd:因为在使用GetCommandLine函数时,多添加了双引号,得用 Replace去掉

CopyFile:这个函数就是拷贝的意思,当然可以不用这个函数,可以用string系列字符写一个拷贝函数;

还有一个需要注意的是最好在项目属性中配置在静态库中使用;

更多栏目