如何用VC控制某一软件的按钮
如何用VC控制某一软件的按钮,这个软件不知道按钮ID,不知道类名,只知道按钮的名称,如何获取他的句柄?并发送消息?那位大侠知道,能给出一个例子吗?我想说明的是获取按钮的句柄,不是窗口的句柄回复 楼主 daijiarong
按钮也是窗口,也有窗口句柄,方法如下:1.先用EnumWindows 枚举所有窗口,在其回调函数中找到对话框窗口句柄。
2.再调用EnumChildWindows枚举该对话框中的子窗体,找到相应的按钮窗口句柄。
3.然后该干什么就干什么。
程序代码:
#include <Windows.h> #include <tchar.h> #include <iostream> using namespace std; BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) { if (hwnd == NULL) { return FALSE; } TCHAR szTitle[MAX_PATH] = {0}; GetWindowText(hwnd, szTitle, ARRAYSIZE(szTitle)); if (_tcsicmp(szTitle, _T("取消")) == 0) { SetWindowText(hwnd, _T("修改按钮文字")); int z = 0; } return TRUE; } BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam) { if (hwnd == NULL) { return FALSE; } TCHAR szTitle[MAX_PATH] = {0}; GetWindowText(hwnd, szTitle, ARRAYSIZE(szTitle)); if (_tcsicmp(szTitle, _T("查找")) == 0) { EnumChildWindows(hwnd, EnumChildProc, NULL); } return TRUE; } int main(int,char**) { EnumWindows(EnumWindowsProc, NULL); cin.get(); return EXIT_SUCCESS; }
测试:
打开notepad.exe ,随便输入点什么,按Ctrl+F,然后执行上面的代码。