98/2000下切换前台窗口

     阅读 486 次    更新时间:2014/4/18    
Write by :lu0

Write by :lu0

98/2000下,有个公开的函数SetForegroundWindow,用于切换前台窗口.但是事实上,SetForegroundWindow并不能用于和其他进程的窗口协同工作,通常情况下SetForegroundWindow会调用FlashWindowEx来闪烁目标窗口,代表已经切换了窗口,但是这不是我们需要的.网络上有一些顶尖高手使用修改窗口切换的系统规则后,用SetForegroundWindow切换到其他进程的窗口,但是现在,我们有了UNDOCUMENTED的另外一个USER32函数: 
SwitchToThisWindow(...); 
来完成这项工作. 
那么原型是怎么的呢? 下面就来揭晓了...... 
void WINAPI SwitchToThisWindow ( 
                  HWND hWnd,   // Handle to the window that should be activated 
                  BOOL bRestore // Restore the window if it is minimized 
                  ); 
由于没有原型和库,我们在使用时通常用动态联接法. 
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL); 
PROCSWITCHTOTHISWINDOW SwitchToThisWindow; 
HMODULE hUser32 = GetModuleHandle("user32"); 
SwitchToThisWindow = (PROCSWITCHTOTHISWINDOW)GetProcAddress(hUser32, "SwitchToThisWindow"); 
这样,我们的任务就完成了. 
 
 

Copyright 2003-2008 All Rights Reserved 自由风工作室 版权没有 [湘ICP备06002185号]
.