我正在开发一个需要获取最后一个活动窗口句柄的应用程序.假设我的应用程序正在运行,那么我想获取之前刚刚在我的应用程序之前打开的最后一个活动窗口句柄.
@ EDIT1:这不是重复的问题.我需要获取最后一个活动窗口的句柄而不是当前窗口.
这类似于 备用的SO问题,我假设您只是跟踪活动窗口,更改后便会知道之前的活动窗口
编辑,这基本上是从我链接的问题中复制的代码,该问题一直在寻找当前的活动窗口,但具有保留lastHandle并确定何时有新的lastHandle的逻辑。这不是经过验证的可编译实现:
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
static IntPtr lastHandle = IntPtr.Zero;
//This will be called by your logic on when to check, I'm assuming you are using a Timer or similar technique.
IntPtr GetLastActive()
{
IntPtr curHandle = GetForeGroundWindow();
IntPtr retHandle = IntPtr.Zero;
if(curHandle != lastHandle)
{
//Keep previous for our check
retHandle = lastHandle;
//Always set last
lastHandle = curHandle;
if(retHandle != IntPtr.Zero)
return retHandle;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7310 次 |
| 最近记录: |