4

我有这个方法可以正常工作:

 private static void OpenFolder(string fileName)
    {

        var fol= new ProcessStartInfo("Explorer.exe", "/select," + fileName);
        Process.Start(fol);
    }

但是我怎样才能将新的打开窗口设置为最大化呢?我看到了 WindowStyle 属性,但没有看到 WindowState。

4

3 回答 3

3

这段代码对我有用。

System.Diagnostics.Process prc = new System.Diagnostics.Process();
prc.StartInfo.FileName = windir + @"\explorer.exe";
prc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;

注意: ProcessWindowStyle 的命名空间System.Diagnostics

这是我使用的完整代码:

string myDocspath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string windir = Environment.GetEnvironmentVariable("WINDIR");
System.Diagnostics.Process prc = new System.Diagnostics.Process();
prc.StartInfo.FileName = windir + @"\explorer.exe";
prc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
prc.StartInfo.Arguments = myDocspath;
prc.Start();
于 2013-07-25T04:56:09.540 回答
3

WindowStyle是您必须使用的,在开始该过程之前添加以下行。

 fol.WindowStyle = ProcessWindowStyle.Maximized;

来自 MSDN:

Hidden: 隐藏的窗口样式。窗口可以是可见的,也可以是隐藏的。系统通过不绘制它来显示一个隐藏的窗口。如果一个窗口被隐藏,它实际上是被禁用的。隐藏窗口可以处理来自系统或其他窗口的消息,但它不能处理来自用户的输入或显示输出。通常,应用程序可能会在自定义窗口外观时隐藏新窗口,然后将窗口样式设置为 Normal。要使用 ProcessWindowStyle.Hidden,ProcessStartInfo.UseShellExecute 属性必须为 false。

Maximized:最大化的窗口样式。默认情况下,系统会放大一个最大化的窗口,以便它填满屏幕,或者在子窗口的情况下,是父窗口的客户区。如果窗口有标题栏,系统会自动将其移动到屏幕顶部或父窗口客户区的顶部。此外,系统禁用了窗口的大小边框和标题栏的窗口定位功能,因此用户无法通过拖动标题栏来移动窗口。

最小化:最小化的窗口样式。默认情况下,系统会将最小化的窗口缩小为其任务栏按钮的大小,并将最小化的窗口移动到任务栏。

正常: 正常的可见窗口样式。系统在屏幕上的默认位置显示一个具有 Normal 样式的窗口。如果窗口可见,用户可以向窗口提供输入并查看窗口的输出。通常,应用程序可能会在自定义窗口外观时将新窗口初始化为 Hidden 样式,然后将窗口样式设为 Normal。

MSDN:http: //msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle.aspx

于 2013-07-25T04:56:11.373 回答
0

这应该可以解决问题

process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
于 2013-07-25T04:49:56.507 回答