使用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;理解从那里去的地方。任何帮助将不胜感激
答案 0 :(得分:0)
要设置资源管理器窗口的高度,宽度和位置,您需要在代码中的Left, Top, Width
对象上使用Height
和ie
属性。
您尝试使用的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
中找到。