设置Windows资源管理器的高度,宽度和屏幕位置

时间:2017-01-11 21:11:36

标签: c# windows-explorer

使用c#我试图设置Windows资源管理器窗口的大小和位置我启动了我的程序。我已经看了一下SetWindowPos,但我认为这对Windows资源管理器来说效果不错。我已经遇到过这段代码,我认为它会做我需要的但我不知道如何使用它。

SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
            string filename;
            ArrayList windows = new ArrayList();
            foreach (SHDocVw.InternetExplorer ie in shellWindows)
            {
                filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
                if (filename.Equals("explorer"))
                {
                    ie.WindowSetHeight += Ie_WindowSetHeight;
                    Console.WriteLine(ie.HWND.ToString());
                }
                Console.ReadLine();
            }

如果我错了,请纠正我,但是这段代码在SHDocVw.ShellWindows中的所有窗口中循环并打印出所有" explorer"的HWND,也就是说所有的Windows资源管理器窗口到控制台。在查看ie.的不同部分时,我遇到了" WindowSetHeight"," WindowSetWidth"," WindowSetTop"和' WindowSetResizeable"。只是根据名称判断这些声音就像我想要使用的那样,但是当我试图设置它们的值时,它说它们需要跟随+=-=,我可以&# 39;理解从那里去的地方。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

要设置资源管理器窗口的高度,宽度和位置,您需要在代码中的Left, Top, Width对象上使用Heightie属性。

您尝试使用的WindowSetHeight是一个事件,当设置窗口高度时会触发该事件,请参阅MSDN reference

这是一个代码示例,它打开一个浏览器窗口到驱动器C的根目录,然后设置窗口的位置和大小(以及恰好打开的任何其他资源管理器窗口)。

Process.Start( @"c:\");

foreach (SHDocVw.InternetExplorer window in new SHDocVw.ShellWindows())
{
    if (Path.GetFileNameWithoutExtension(window.FullName).ToLowerInvariant() == "explorer")
    {
        window.Left = 150;
        window.Top = 200;
        window.Width = 800;
        window.Height = 600;
    }
}

此外,您需要确保添加对ShDocVW.dll和Shell32.dll的引用,这些引用都可以在C:\Windows\System32中找到。