Chinaunix首页 | 论坛 | 博客
  • 博客访问: 627664
  • 博文数量: 603
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-17 11:04
文章分类

全部博文(603)

文章存档

2011年(1)

2008年(602)

我的朋友

分类:

2008-09-17 11:18:34

[教学] 在VC中如何列举所有窗口

#include "windows.h"
#include "Winuser.h"
#include

WORD g_pid = 0;
WORD g_cm = 0;
BOOL g_bFound = FALSE;
BOOL g_bDone = FALSE;
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam );

int main(int argc, char* argv[])
{

if(argc < 3)
{
printf("\nerror");
return -1;
}

g_pid = (WORD)atol(argv[1]);
g_cm = (WORD)atol(argv[2]);

EnumWindows(EnumWindowsProc , 0); //枚举窗口

if(g_bFound)printf("Window Found!\n");
else printf("Window Not Found!\n");

if(g_bDone)printf("PostMessage Done!");
else printf("PostMessage Failed!");

return 0;
}

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam )
{
//这里是我写的处理程序, 可以改成你想要的

if(::IsWindow(hwnd))
{
DWORD dwProcessId;
GetWindowThreadProcessId(hwnd,&dwProcessId);
if (dwProcessId == g_pid)
{
if(::PostMessage(hwnd, WM_COMMAND, g_cm, 0))g_bDone = TRUE;
g_bFound = TRUE;
}
}

return TRUE;

}
//我最近要用这个就找了个,,分享一下


--------------------next---------------------

阅读(493) | 评论(0) | 转发(0) |
0

上一篇:显示可打印版本

下一篇:下一主题

给主人留下些什么吧!~~