FindWindow 使用
查找指定窗口 TCHAR szTitle[MAX_PATH] = {0};
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ //修改窗口标题 ::SetWindowText(hwnd,"新的窗口标题");
}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
} 窗口控制 TCHAR szTitle[MAX_PATH] = {0};
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ typedef void (WINAPI *PSWITCHTOTHISWINDOW) (HWND,BOOL); PSWITCHTOTHISWINDOW SwitchToThisWindow; HMODULE hUser32=LoadLibrary("user32.dll"); SwitchToThisWindow=(PSWITCHTOTHISWINDOW)GetProcAddress(hUser32,"SwitchToThisWindow"); //切换窗口 SwitchToThisWindow(hwnd,false); Sleep(3000); //关闭窗口 ::SendMessage(hwnd,WM_CLOSE,0,0);
}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
} 查找子窗口 TCHAR szTitle[MAX_PATH] = {0};
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ //查找子窗口 HWND hEdit = FindWindowEx(hwnd,NULL,"Edit",""); //设置标题 ::SetWindowText(hEdit,"文本框新的标题"); //修改内容 ::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)"新的内容");
}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
} TCHAR szTitle[MAX_PATH] = {0};
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ //查找子窗口 HWND hEdit =::GetDlgItem(hwnd,0x3E9); //获取内容 ::SendMessage(hEdit,WM_GETTEXT,MAX_PATH,(LPARAM)szTitle); //修改内容 ::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)"新的内容");
}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
}
//
枚举子窗口 BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam)
{ TCHAR szTitle[MAX_PATH] = {0}; ::GetWindowText(hWnd,szTitle,MAX_PATH); MessageBox(NULL,szTitle,"[子窗口]",MB_OK); return true;
} VOID EnumChildWindow()
{ TCHAR szTitle[MAX_PATH] = {0}; HWND hWnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger")); if(hWnd != NULL) { ::EnumChildWindows(hWnd,EnumChildProc,0); } else { ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK); }
}
/
枚举所有打开窗口 BOOL CALLBACK EnumOpenWindowProc(HWND hWnd,LPARAM lParam)
{ TCHAR szTitle[MAX_PATH] = {0}; ::GetWindowText(hWnd,szTitle,MAX_PATH); MessageBox(NULL,szTitle,"[窗口]",MB_OK); if(strcmp(szTitle,"飞鸽传书 IP Messenger") == 0) { MessageBox(NULL,szTitle,"[窗口]",MB_OK); return FALSE; } return TRUE;
}
VOID EnumOpenWindows()
{ EnumWindows(EnumOpenWindowProc,NULL);
}
/
隐藏控制台 #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 模拟鼠标单击 TCHAR szTitle[MAX_PATH] = {0};
RECT r;
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ HWND hButton = FindWindowEx(hwnd,NULL,"Button","刷新(&R)");//获取窗口坐标::GetWindowRect(hButton,&r);printf("%d %d",r.left,r.top);//设置鼠标的位置::SetCursorPos(r.left+10,r.top+10);Sleep(2000);//鼠标左键单击mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//点下左键 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//松开左键
}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
}
///
模拟键盘点击(搜索:键盘键与虚拟键码对照表) TCHAR szTitle[MAX_PATH] = {0};
RECT r;
HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger"));
if(hwnd != NULL)
{ //HWND hButton = FindWindowEx(hwnd,NULL,"Button","刷新(&R)");HWND hEdit =::GetDlgItem(hwnd,0x3E9);//获取窗口坐标::GetWindowRect(hEdit,&r);//设置鼠标的位置::SetCursorPos(r.left+1,r.top+1);Sleep(1000);//鼠标左键单击mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//点下左键 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//松开左键//模拟键盘keybd_event(97,0,0,0);keybd_event(97,0,KEYEVENTF_KEYUP,0);Sleep(1000);keybd_event(66,0,0,0);keybd_event(66,0,KEYEVENTF_KEYUP,0);Sleep(1000);keybd_event(16,0,0,0);keybd_event(67,0,0,0);keybd_event(67,0,KEYEVENTF_KEYUP,0);keybd_event(16,0,KEYEVENTF_KEYUP,0);}
else
{ ::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
}
FindWindow 使用相关推荐
- C#用 SendKyes 结合 Process 或 API FindWindow、SendMessage(PostMessage) 等控制外部程序
Win32 平台是 消息驱动模式 .Net 框架是 事件驱动模式 标题所指的 "控制外部程序",外部程序是指与本程序无内在相关性的另外一个程序 基于上面提到的,对于.NET的win ...
- mfc 子窗体任何消息都不触发_winform让窗体一直显示在桌面上以及FindWindow
想写个程序在电脑桌面上一直显示,类似一个小贴士,提示自己要做的事情等.遇到了技术难题就是怎样把窗体固定在桌面上,经过长时间的搜索和尝试,终于达到了想要的效果,其中涉及到windowsAPI的使用. 先 ...
- IsWindow,findwindow
IsWindow 函数功能:该函数确定给定的窗口句柄是否识别一个已存在的窗口. 因数原型:BOOL IsWindow(HWND hWnd): 参数: hWnd:被测试窗口的句柄. 返回值:如果窗口句柄 ...
- 句柄操作窗体_winform让窗体一直显示在桌面上以及FindWindow
想写个程序在电脑桌面上一直显示,类似一个小贴士,提示自己要做的事情等.遇到了技术难题就是怎样把窗体固定在桌面上,经过长时间的搜索和尝试,终于达到了想要的效果,其中涉及到windowsAPI的使用. 先 ...
- C#-invoke与sendmessage,findWindow的阻塞实验
虽然模态对话框阻塞了顶层窗体,但是仍然可以通过findwindow查找顶层窗体句柄,并使用sendmessage向顶层窗体发送消息并执行消息内的逻辑(验证实例如下) public partial cl ...
- 利用FindWindow和SendMessage进程通信
利用FindWindow和SendMessage,特此记下. 首先说FindWindow. FindWindow返回与指定字符创相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄.函数原型为: ...
- vb中findwindow的疑惑
目的是学习使用findwindow的方法 |问题是程序运行得不到正确答案 步骤是 : 'Module Module1 //模块中声明findwindow Declare Function FindW ...
- [vb]FindWindow使用方法
FindWindow使用方法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ Declare Function FindWindow Lib "user32" Alias & ...
- error C2440 无法转换到 AFX_PMSG mfc自定义信号及实现 PostMessage FindWindow
这两天在用自定义信号,期间除了一些问题,看似简单,实际上花了我好长时间.也是因为本身没怎么用过mfc,纯粹是被赶鸭子上架,赶上来的. 奔着分享和记录的目的,希望碰到同样问题的猿们快速解决问题. 首先说 ...
- VS调试FindWindow的HWND出现unused<无法读取内存>
一.无法读取内存 自动窗口显示如下: 二..cpp文件 #include<windows.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTAN ...
最新文章
- 云炬随笔20210714(1)
- 云原生实时数仓首次在2020双11核心数据场景落地
- php 接口日志,PHP 开发 APP 接口--错误日志接口
- 教你实现一个朴实的Canvas时钟效果
- 一些实用博客的分享(ES6详解,echart属性详解)
- 进一步优化SPA的首屏打开速度(模块化与懒载入) by 嗡
- MySQL8.0.22解压安装教程
- 二、jdk命令之javah命令(C Header and Stub File Generator)
- webmax的剪切面和正对相机设置 图例
- css less使用
- Mac批量恢复废纸篓文件
- 详解CI、CD相关概念
- 基于最大子覆盖问题的文本摘要实验
- ps图案叠加怎么添加图案?Photoshop图案如何使用?
- openGL入门(二)用openGL绘制带有对角线的正六边形
- 关于2-3-4树和红黑树的简单理解
- ppt中如何合并流程图_PPT流程图文件的合并
- html ---烟花
- 数据库设计(电商平台)
- 安卓进不去系统如何备份数据