2

ProLaunch.exe という名前のアプリケーションがあります。ユーザーが指定された期間操作を実行していない場合は、アクティブなウィンドウを取得して閉じたいと思います。この目的のために、アプリケーションのタイマーが使用されます。

アクティブなウィンドウを取得して閉じるにはどうすればよいですか?

4

2 に答える 2

7

質問を正しく理解していれば、Win32APIGetActiveWindowを使用できます。これは、フォームアプリとWPFアプリの両方で機能するはずです。

[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();

[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, IntPtr msg, int wParam, int lParam);

public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;

// close the active window using API        
private void FindAndCloseActiveWindow()
{
 IntPtr handle=GetActiveWindow();
 SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0);
}
于 2012-08-18T15:01:01.833 に答える
2

試す

Form.ActiveForm

http://msdn.microsoft.com/de-de/library/system.windows.forms.form.activeform.aspx

于 2012-08-18T14:59:45.593 に答える