5

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

4

1 回答 1

4

好的,我想出了答案!

我没有意识到这一点,但我一直在使用第三方任务计划程序托管包装器(自从我编写代码的那部分以来已经有一段时间了),这就解释了为什么很难找到帮助!刚才我偶然发现了那个页面,他们的例子正是我所需要的!上下文中的详细解决方案可以在这里找到,但关键部分是:

// 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;

感谢您尝试提供帮助!

于 2012-01-19T20:41:31.203 回答