c# - 从具有特定用户名的系统帐户启动进程

标签 c# .net windows-services process

我正在 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/

相关文章:

c# - 在Office功能区控件中实现颜色选择器

c# - LINQ:不支持将 var 作为方法参数传递

c# - 使用 C# 读取 Windows 事件日志(Source != ProviderName != SourceName)

c# - 如何发出并行 HTTP 请求

c# - 已尝试附加或添加不是新 Linq to Sql 错误的实体

c# - Winform应用程序在XP系统上闪烁

.net - .NET 中的 XML 序列化选项

c# windows service process.start 收藏

c# - 为什么我无法安装我的 Windows 服务 - 指定的服务已经存在

java - GUI 连接到 Java Windows 服务