如何用Visual FoxPro枚举桌面Win7上的active windows
How to enumerate active windows on the desktop Win7 with Visual FoxPro
我需要枚举桌面 windows 以获取 Internet Explorer 等应用程序的句柄。我想出了一种方法,通过将密钥发送到桌面来模拟调用任务切换机制的 ALT+TAB。我激活每个 window 以便我可以获得句柄和标题。然后我使用标题来确定这是否是我感兴趣的 window。但这是一个丑陋的解决方案。
我知道“EnumThreadWindows function
”与“EnumThreadWndProc callback function
”一起工作,但我不知道如何在 VFP 中实现它。特别是,我不知道如何在函数调用中暗示 DeskTop。
BOOL WINAPI EnumThreadWindows(
_In_ DWORD dwThreadId,
_In_ WNDENUMPROC lpfn,
_In_ LPARAM lParam
);
第一个参数“dwThreadId
”表示线程的ID,我能想到的是windows是DeskTop的children。那么我该如何指定呢?
如果有人对 Window 函数有一些经验,如果你知道如何在这里帮助我,我将不胜感激
丹麦
"Listing child windows for the Windows desktop" news2news.com 处的 VFP 示例代码是否符合您的要求?:
http://www.news2news.com/vfp/?example=27&PHPSESSID=0544069194f7f507abc54ddebcbe26a0
我需要枚举桌面 windows 以获取 Internet Explorer 等应用程序的句柄。我想出了一种方法,通过将密钥发送到桌面来模拟调用任务切换机制的 ALT+TAB。我激活每个 window 以便我可以获得句柄和标题。然后我使用标题来确定这是否是我感兴趣的 window。但这是一个丑陋的解决方案。
我知道“EnumThreadWindows function
”与“EnumThreadWndProc callback function
”一起工作,但我不知道如何在 VFP 中实现它。特别是,我不知道如何在函数调用中暗示 DeskTop。
BOOL WINAPI EnumThreadWindows(
_In_ DWORD dwThreadId,
_In_ WNDENUMPROC lpfn,
_In_ LPARAM lParam
);
第一个参数“dwThreadId
”表示线程的ID,我能想到的是windows是DeskTop的children。那么我该如何指定呢?
如果有人对 Window 函数有一些经验,如果你知道如何在这里帮助我,我将不胜感激
丹麦
"Listing child windows for the Windows desktop" news2news.com 处的 VFP 示例代码是否符合您的要求?:
http://www.news2news.com/vfp/?example=27&PHPSESSID=0544069194f7f507abc54ddebcbe26a0