2017-01-11 11 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(); 
      } 

Windowsエクスプローラのすべてを言うことである、私が間違っているなら、私を修正しますが、このコードはSHDocVw.ShellWindowsのウィンドウのすべてをループを切り取らし、「エクスプローラ」のすべての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; 
    } 
} 

また、あなたは、両方がC:\Windows\System32で見つけることができSHDOCVW.DLLとのShell32.dllの両方への参照を追加することを確認する必要があります。

関連する問題