我正在 C#.net
中开发 Windows 服务,帐户:LocalSystem
,系统:Windows XP SP3
如果特定应用程序正在运行,我希望此服务检查所有当前登录的用户,如果没有,则以相应的用户名启动此应用程序。
I provide domain, name, password, but Start() throws Win32Exception exception "Access is denied"
process.StartInfo.Domain = domain;
process.StartInfo.UserName = name;
process.StartInfo.Password = password;
process.StartInfo.FileName = fileName;
process.StartInfo.UseShellExecute = false;
process.Start();
我提供其凭据的用户在管理员组中 - 如果手动启动,应用程序会成功运行。
这是以不同的方式完成的吗?
谢谢!
最佳答案
您如何检查正在运行的应用程序?在 Windows Vista 和更新版本中,服务和桌面是分开的。这可能意味着您无法访问所需的信息,并且该服务因此而崩溃。服务对话框中有一个“允许与桌面交互”或类似的复选框。您可能想尝试启用它。
关于c# - 从具有特定用户名的系统帐户启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566544/