gpt4 book ai didi

c# - 如何在 C# 中使用 TaskScheduler 设置 "run only if logged in"和 "run as"?

转载 作者:太空狗 更新时间:2023-10-29 23:25:45 25 4
gpt4 key购买 nike

我有使用 C# TaskManager 对象创建任务的代码。在 Windows 7 上它工作正常,但在 Windows XP(可能还有其他 Windows)上它根本不起作用,因为该任务的默认用户是系统,因此没有用于显示 GUI 的 session 。如果我在控制面板小部件中手动修改创建的任务以将作业设置为仅在用户登录时运行并且仅针对特定用户运行,那么一切正常。但是尽管进行了数小时的搜索,我还是没有看到在 C# 对象中设置这些选项的选项。有人知道现有对象的解决方案吗?我不想重写所有内容以手动运行调度程序 EXE 并通过命令行传递内容。

最佳答案

好的,我找到答案了!

我没有意识到,但我一直在使用第三方 Task Scheduler Managed Wrapper (自从我编写那部分代码以来已经有一段时间了)这就解释了为什么很难找到帮助!刚才我偶然发现了那个页面,他们的示例中正是我所需要的! detailed solution in context can be found here ,但关键部分是:

// Create a new task definition and assign properties
TaskDefinition td = ts.NewTask();
td.Principal.UserId = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
td.Principal.LogonType = TaskLogonType.InteractiveToken;

感谢您的帮助!

关于c# - 如何在 C# 中使用 TaskScheduler 设置 "run only if logged in"和 "run as"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com