2016-04-22 21 views
2

私は何かプログラムをしてからしばらくしていました。他のアプリケーションを最大限に活用し、最小限に抑えるためにコードについて研究していました。だから私は何か基本的なものを見つけました。ここに私が持っているものがあります。私がやったFindWindowメソッドを生成したいと思っていました。今はすべてがうまく見え、メッセージを受け取って実行しようとしました。ここからどこに行くのかわからない。私が見つけた元のスレッドはこれを言及しなかった。他のアプリケーションを最大限に活用/最小化

enter image description here

private const int SW_SHOWNORMAL = 1; 
private const int SW_SHOWMINIMIZED = 2; 
private const int SW_SHOWMAXIMIZED = 3; 

[DllImport("user32.dll")] 
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
static void Main(string[] args) 
{ 
    // retrieve Notepad main window handle 
    IntPtr hWnd = FindWindow("Notepad", "Untitled - Notepad"); 
    if (!hWnd.Equals(IntPtr.Zero)) 
    { 
     // SW_SHOWMAXIMIZED to maximize the window 
     // SW_SHOWMINIMIZED to minimize the window 
     // SW_SHOWNORMAL to make the window be normal size 
     ShowWindowAsync(hWnd, SW_SHOWMAXIMIZED); 
    } 
} 

private static IntPtr FindWindow(string p, string p_2) 
{ 
    throw new NotImplementedException(); 
} 

答えて

1

方法は、あなたがそれはこの場合Main()に呼び出されるメソッドでそれをキャッチする必要がスローを持っているあなたの方法FindWindow()とまず、。

今、私はあなたの継承階層

  1. のSystem.Object
  2. のSystem.Exception
  3. System.SystemException
  4. System.NotImplementedException

Asを投稿ここで、クラスをNotImplementedExceptionisエラーを言って、あなたはメソッドを実装し、行を削除する必要があります: `throw new NotImplemente dException();

最後に、実装オプションを投稿します。ウィンドウアプリケーションのタイトルが必要です。ところで

public static IntPtr FindWindow(string titleName) 
    { 
     Process[] pros = Process.GetProcesses("."); 
     foreach (Process p in pros) 
      if (p.MainWindowTitle.ToUpper().Contains(titleName.ToUpper())) 
       return p.MainWindowHandle; 
     return new IntPtr(); 
    } 

は、hereは、最大化/最小化する他のアプリケーションについては、別の問題である

関連する問題