我知道启动项本身是在注册表SOFTWARE\Microsoft\Windows\CurrentVersion\Run
中定义的。
可以使用 win32 更改此设置以添加/删除启动项。
但是我不知道如何启用/禁用这些项目?
SOFTWARE\Microsoft\Windows\CurrentVersion\Run
下的条目没有启用/禁用标志。
如何使用 win32 启用/禁用启动项?
最佳答案
引用这个thread :
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run contains records with binary data for disabled programs. This data accessed and edited via regular WinAPI calls.
所以您可以尝试更改注册表信息来实现该功能。
一些代码供您引用:
#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
关于windows - 如何以编程方式启用/禁用 Windows 启动项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66903672/