2

我有一个名为 ProLaunch.exe 的应用程序。如果用户在指定时间段内没有执行任何操作,我想在其中获取活动窗口并关闭它。应用程序中的计时器将用于此目的。

如何获取活动窗口并关闭它?

4

2 回答 2

7

如果我正确理解了这个问题,您可以为此使用 Win32 API GetActiveWindow。这应该适用于 Forms 和 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 回答