C++:没有用户凭据的Windows每日任务计划

标签 c++ windows scheduled-tasks

我知道 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/

相关文章:

c++ - 理解一点代码

c++ - 混合调用约定会导致编译错误

c++ - 缺少用户定义的to_string()的编译时检测

c++ - 无法断开和重新连接套接字(C++,winsock2)

ruby - 如何每月在 Heroku 运行一次 Scheduler 插件?

c# - 从 global.asax vs quartz.net 运行定时器

c++ - OpenSSL 的 rsautl 无法加载使用 PEM_write_RSAPublicKey 创建的公钥

备用 Windows Safari 字体的 css 代码

windows - 有没有办法使用 Perl 脚本更改 Windows 文件夹图标?

python - 使用 Python 的 MRQ 库执行重复任务