C# AppWinStyle不适用于Process.start
我正在尝试将AppWinStyle与Process.start一起使用,但它无法按预期工作。 下面的代码将打开文件1.txt,它将被最小化,没有焦点C# AppWinStyle不适用于Process.start,c#,vb.net,windows,process,process.start,C#,Vb.net,Windows,Process,Process.start,我正在尝试将AppWinStyle与Process.start一起使用,但它无法按预期工作。 下面的代码将打开文件1.txt,它将被最小化,没有焦点 Shell("notepad D:\1.txt", AppWinStyle.MinimizedNoFocus) 但下面的代码将打开1.txt,重点放在它上面。它不会被最小化 Process.Start("D:\1.txt", AppWinStyle.MinimizedNoFocus) 为什么会这样?请帮助我用流程解决此问题。启动: Proces
Shell("notepad D:\1.txt", AppWinStyle.MinimizedNoFocus)
但下面的代码将打开1.txt,重点放在它上面。它不会被最小化
Process.Start("D:\1.txt", AppWinStyle.MinimizedNoFocus)
为什么会这样?请帮助我用
流程解决此问题。启动:
Process.Start("D:\1.txt", AppWinStyle.MinimizedNoFocus)
请参见此处的所有重载:
要使用进程.Start
实现此功能,请使用进程startInfo.WindowStyle
,将其设置为进程WindowStyle.Minimized
顺便说一下,AppWinStyle
枚举器是特定于Shell
函数的:
指示调用时调用的程序要使用的窗口样式
Shell
功能
否使用进程进行此类重载。启动
:
Process.Start("D:\1.txt", AppWinStyle.MinimizedNoFocus)
请参见此处的所有重载:
要使用进程.Start
实现此功能,请使用进程startInfo.WindowStyle
,将其设置为进程WindowStyle.Minimized
顺便说一下,AppWinStyle
枚举器是特定于Shell
函数的:
指示调用时调用的程序要使用的窗口样式
Shell
功能
样板示例:
using System;
using System.Diagnostics;
class Program {
static void Main(string[] args) {
var psi = new ProcessStartInfo("notepad.exe");
//psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);
}
}
运行一次以确保其正常工作,然后删除注释并观察结果。您将短暂看到记事本窗口闪烁,但它会立即再次终止。可能取决于Windows版本,我描述了Windows 8.1的情况
GUI应用程序获取您通过其指定的ProcessWindowsStyle,nCmdShow参数传递您指定的值。应用程序对该值的实际操作完全取决于应用程序。样板实现是将其传递给ShowWindow()调用,该调用使其主窗口可见
使用ProcessWindowsStyle.Hidden通常是非常有问题的,一个正确编写的GUI应用程序会忽略它,就像记事本一样。因为您要求它做的是启动程序,但不显示任何窗口,甚至不显示任务栏按钮。换言之,您要求它变成一个僵尸,一个运行时用户无法访问它的进程。用户唯一可能做的事情是运行任务管理器并终止进程
所以,当然,这肯定是行不通的。不应该。一个样板示例:
using System;
using System.Diagnostics;
class Program {
static void Main(string[] args) {
var psi = new ProcessStartInfo("notepad.exe");
//psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);
}
}
运行一次以确保其正常工作,然后删除注释并观察结果。您将短暂看到记事本窗口闪烁,但它会立即再次终止。可能取决于Windows版本,我描述了Windows 8.1的情况
GUI应用程序获取您通过其指定的ProcessWindowsStyle,nCmdShow参数传递您指定的值。应用程序对该值的实际操作完全取决于应用程序。样板实现是将其传递给ShowWindow()调用,该调用使其主窗口可见
使用ProcessWindowsStyle.Hidden通常是非常有问题的,一个正确编写的GUI应用程序会忽略它,就像记事本一样。因为您要求它做的是启动程序,但不显示任何窗口,甚至不显示任务栏按钮。换言之,您要求它变成一个僵尸,一个运行时用户无法访问它的进程。用户唯一可能做的事情是运行任务管理器并终止进程
所以,当然,这肯定是行不通的。不应该这样。如果我使用ProcessWindowsStyle.Minimized,那么它将最小化到任务栏,但焦点将设置在它上。那么什么是AppWinStyle.MinimizedNoFocus的等价物呢?如果我使用ProcessWindowsStyle.Minimized,那么它将最小化到任务栏,但焦点将设置在它上。那么什么是AppWinStyle.MinimizedNoFocus的等价物呢?如果我使用ProcessWindowsStyle.Minimized,那么它将最小化到任务栏,但焦点将设置在它上。那么什么是AppWinStyle.MinimizedNoFocus的等价物呢?没有等价物。如果我使用ProcessWindowsStyle.Minimized,它将被最小化到任务栏,但焦点将被设置在它上面。那么什么是AppWinStyle.MinimizedNoFocus的等价物呢?没有等价物。