我需要我的winform程序作为另一个用户运行(它将在任务调度程序下运行)而不是登录用户。我怀疑问题是我的应用程序是基于gui而不是基于命令行(这有什么不同)所以gui需要加载做它的事情然后关闭。这可能是XP或Vista吗?
由于
答案 0 :(得分:5)
计划任务可以“作为”指定用户运行,该用户可以与登录用户不同。
您可以在创建任务时指定此用户,也可以通过编辑现有任务的属性来指定。
答案 1 :(得分:1)
如果你的应用程序需要作为一个已经完成的任务运行,那么它就没有真正的用户界面。作为最低限度,它应该能够通过命令行运行。
最好的方法是将UI与实际处理分开,以便您仍然可以根据需要以交互方式运行它。这也可以使您的应用程序更容易测试。
编辑:编辑进行打字和感知
答案 2 :(得分:0)
我会投票给第一个选项,或提供额外的可能性:在您的代码中使用模拟。虽然这可能有点过分/不符合您的需求。
答案 3 :(得分:0)
您可以执行该程序的另一种方法是以编程方式根据配置文件甚至数据库连接更改用户。一个示例项目是代码项目:
http://www.codeproject.com/KB/cs/runas.aspx
希望这有帮助。
答案 4 :(得分:0)
您正在寻找Process.Start方法。其中一个重载接受用户名/密码对。将使用这些用户凭据创建该过程。
var app = Process.Start(@"c:\path\to\some\app.exe", userName, password, domainOrEmptyString);