Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AppWinStyle不适用于Process.start_C#_Vb.net_Windows_Process_Process.start - Fatal编程技术网

C# AppWinStyle不适用于Process.start

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

我正在尝试将AppWinStyle与Process.start一起使用,但它无法按预期工作。 下面的代码将打开文件1.txt,它将被最小化,没有焦点

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的等价物呢?没有等价物。