【发布时间】:2019-03-26 17:49:20
【问题描述】:
我想使用特定的用户帐户从控制台启动应用程序,但不显示窗口。我已经阅读了有关此主题的多篇 Stack Overflow 文章,但建议的解决方案似乎都不适合我。我可以启动应用程序,但在传递用户名/密码时,我无法阻止弹出窗口。
我设法让以下代码在我的计算机 (Windows 10) 上运行,但它无法在目标计算机 (Windows 7) 上运行。
目标框架:.NET 4.5.2
代码在使用输出类型控制台应用程序的无窗口 WPF 应用程序中执行,因为普通控制台应用程序无法运行。
private void StartProcess(string appPath, string user, SecureString password, string domain)
{
var processStartInfo = new ProcessStartInfo
{
FileName = appPath,
WorkingDirectory = Path.GetDirectoryName(appPath),
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden,
Password = password,
UserName = user,
Domain = domain,
RedirectStandardError = false,
RedirectStandardOutput = false
};
Process.Start(processStartInfo);
}
我的应用程序将从控制台启动,目标也是一个控制台应用程序。
如何确保进程在后台运行,而在 Windows 7 下不出现窗口?
部分文章:
【问题讨论】:
-
为什么这被标记为 WPF ?
-
请附上一些您尝试过但没有成功的文章的链接。例如,Running an application as different user 提到了 PsExec 的使用,Run Code as a different user 提到了 P/Invoke 的使用。
-
@Peregrine 来自 OP“代码在无窗口 WPF 应用程序中执行”
-
@HereticMonkey:称它为 WPF 至少是有问题的。最好包含有关环境的信息,但这似乎主要与
CreateNoWindow = true未按预期工作的进程有关。 -
@Christopher... 所以编辑问题并删除标签。不知道为什么没有人这样做......
标签: c#