我知道启动项本身是在注册表SOFTWARE\Microsoft\Windows\CurrentVersion\Run中定义的。
这可以使用win32进行更改,以添加/删除启动项目。
但我不明白的是如何启用/禁用这些项目?
SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的条目没有启用/禁用标志。
如何使用win32启用/禁用启动项目?
发布于 2021-04-06 14:52:54
请参阅此thread
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
包含禁用程序的二进制数据记录。这些数据通过常规的WinAPI调用进行访问和编辑。
因此,您可以尝试更改注册表信息来实现此功能。
下面是一些代码供您参考:
#include <windows.h>
int main()
{
HKEY key;
BOOL fResult = RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\Run", 0, KEY_WRITE, &key);
if (ERROR_SUCCESS == fResult)
{
DWORD dwData[] = { 0x2,0x0,0x0 };
if (RegSetValueEx(key, __TEXT("OneDrive"), 0, REG_BINARY, (LPBYTE)&dwData, sizeof(dwData)))
{
return FALSE;
}
}
return fResult;
}如果您想关闭此功能,只需将代码修改为dwData = 0x03即可。
更多参考资料:Configuring an installer to enable/disable startup on Windows start,C# application not running on startup
https://stackoverflow.com/questions/66903672
复制相似问题