我知道 MSDN 上有很多例子关于 Windows 任务调度,但它们都(登录/启动时间除外)需要用户凭据才能将任务保存到根文件夹,从而成功注册任务。
// Save the task in the root folder.
IRegisteredTask *pRegisteredTask = NULL;
hr = pRootFolder->RegisterTaskDefinition(
_bstr_t( wszTaskName ),
pTask,
TASK_CREATE_OR_UPDATE,
_variant_t(_bstr_t(pszName)), //USERNAME
_variant_t(_bstr_t(pszPwd)), //PASSWORD
TASK_LOGON_PASSWORD,
_variant_t(L""),
&pRegisteredTask);
但我见过一些软件在用户系统上安排任务而不提示用户输入凭据。
只是想知道它是如何实现的? Building//Administrator
似乎无法安排日常任务。
还有什么出路? 感谢您的帮助。
最佳答案
由于已经超过 2 周仍未收到任何答复,我正在回答以解决此问题。
要在没有用户名和密码的情况下安排任务,我们可以利用windows Schtasks.exe存在于 System32 目录中。
您可以简单地让您的程序(应该以管理员权限运行)使用适当的参数执行此 Schtasks.exe 以安排您的每日、每周和每月任务。
例如: 以下命令安排每日任务在 HH:mm 时间运行,并在 24 小时内每 1 小时触发一个 exe。
Schtasks.exe /CREATE /TN "MyDailyTask" /TR "C:/path/to/trigger/app.exe" /F /SC DAILY /SD mm/dd/yyyy /ST HH:mm /RI 60 /DU 24:00
正如您所见,只要我们的应用程序以管理员权限运行,我们就不需要提供用户名和密码。
关于C++:没有用户凭据的Windows每日任务计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24340976/