2017-01-11 36 views
0

使用C#我試圖設置Windows資源管理器窗口的大小和位置,我開始了我的程序的屏幕位置。我已經看了一些SetWindowPos,但我不認爲這對Windows資源管理器太好。我已經遇到此位的代碼,我認爲它會做什麼,我需要,但我不知道如何使用它。設置高度,寬度和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和打印所有的「資源管理器」,這是說所有的Windows資源管理器的的HWND窗口到控制檯。一旦尋找到的ie.不同部分我會遇到「WindowSetHeight」,「WindowSetWidth」,「WindowSetTop」和「WindowSetResizeable」,只是由名字來看,這些聽起來像我想到底該怎麼用,但是當我試圖設置他們說他們需要跟着+=-=,我無法理解從哪裏去。任何幫助將不勝感激

回答

0

要設置資源管理器窗口的高度,寬度和位置需要使用代碼中ie對象上的Left, Top, WidthHeight屬性。

您試圖使用的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找到。