Aid*_*dal 6 c# windows console process.start windowless
我现在已经尝试了几个方法来隐藏新进程的窗口(在这种情况下它只是用于测试的notepad.exe),但是无论我尝试什么,它都无法工作.
我现在读了许多帖子都说同样的,为什么它不适合我呢?
我有一个控制台应用程序,应该启动其他进程而不显示他们的窗口.
我试图让我的控制台应用程序启动notepad.exe没有窗口,但它只是无法正常工作.
ProcessStartInfo info = new ProcessStartInfo("path to notepad.exe");
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.CreateNoWindow = true;
info.UseShellExecute = false;
Process proc = Process.Start(info);
Run Code Online (Sandbox Code Playgroud)
我也试过使用info.WindowStyle的各种设置,我试图将我的控制台应用程序配置为Windows应用程序,但是我做的并不重要,子进程总是打开一个窗口.
这是不允许从控制台应用程序或这里有什么问题 - 任何人都可以对此有所了解吗?
我在Windows 7 x64上使用.NET 4.0
根据我的经验,每当我启动"cmd.exe"时,以下工作.
info.CreateNoWindow = true;
info.UseShellExecute = false;
Run Code Online (Sandbox Code Playgroud)
它似乎不适用于"notepad.exe".它也与其他应用程序失败,例如"excel.exe"和"winword.exe".
但这有效:
ProcessStartInfo info = new ProcessStartInfo("notepad.exe");
info.WindowStyle = ProcessWindowStyle.Hidden;
Process proc = Process.Start(info);
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
窗口可以是可见的或隐藏的.系统通过不绘制来显示隐藏的窗口.如果窗口被隐藏,则会被有效禁用.隐藏窗口可以处理来自系统或其他窗口的消息,但它无法处理来自用户或显示输出的输入.通常,应用程序可以在自定义窗口外观时隐藏新窗口,然后使窗口样式为" 正常".要使用ProcessWindowStyle.Hidden,ProcessStartInfo.UseShellExecute属性必须为false.
当我测试它时,我没有必要设置UseShellExecute = false.
| 归档时间: |
|
| 查看次数: |
6012 次 |
| 最近记录: |