在 UAC 開啟的情況下,要開機自動執行需管理管權限的(requireAdministrator) 的程式,必需使用 Windows 的排程設定(schtasks)來啟動程式,才不會在開機時出現 UAC 要求權限的視窗。
範例:
void RegAutoRun(bool cmd) { if (cmd == 1) { //加入啟動排程 CString str; str.Format(L"/Create /F /TN \"AppName\" /SC ONLOGON /RL HIGHEST /TR \"\\\"%s\\App.EXE\\\"\"", GetLaunchDir()); ShellExecute(NULL, _T("open"), _T("schtasks.exe"), str, _T(""), 0); } else { //從排程中移除 ShellExecute(NULL, _T("open"), _T("schtasks.exe"), _T("/Delete /F /TN \"AppName\""), _T(""), 0); } }