获取.net应用程序的活动窗口

时间:2012-08-18 14:51:11

标签: c# .net windows

我有一个名为ProLaunch.exe的应用程序。我想在其中获取活动窗口并在用户未执行任何操作的情况下关闭它。应用程序中的计时器将用于此目的。

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

2 个答案:

答案 0 :(得分:4)

如果我理解正确,您可以使用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);
}

答案 1 :(得分:1)