关于获取其它程序的控件内容的问题。谢谢 1、用spy++看该程序的编辑框,类型是EDIT,但是SPY++却没能获得他的内容,显示是一个黑色的方块,但实际上编辑框里是有一长串文本的;这种情况是否意味着就没办法读取edit文本了呢?2、如果程序里的的控件是自定义类型的treeview,有没有办法获得他的内容啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试这个/******************************************************************* 文件名 :WinMain.cpp 创建者 :hankcs 创建时间 :2010-6-26 18:45:49 功能描述 :获取其他程序中的文本Demo,打开记事本输入随便 几个字符来测试本程序 ******************************************************************/#include <windows.h>#include <stdio.h>BOOL CALLBACK EnumChildWindowsProc(HWND hwndChild, LPARAM lParam) // 枚举子窗体的函数{ CHAR szClassName[MAX_PATH]; ::GetClassNameA(hwndChild, szClassName, sizeof(szClassName)/sizeof(CHAR)); if(stricmp(szClassName, "Edit") == 0) { ::SendMessage(hwndChild, WM_GETTEXT, (WPARAM)sizeof(szClassName)/sizeof(CHAR), (LPARAM)szClassName); MessageBox(NULL, szClassName, "Debug", MB_OK); } return (true);}BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { char wtitle[512]; GetWindowText(hwnd, wtitle, sizeof(wtitle)); if (strstr(wtitle , "记事本")) //窗口标题含有特定字符 { EnumChildWindows(hwnd, EnumChildWindowsProc, NULL); } return (true);}///////////////////////////WinMain//////////////////////////////////int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ EnumWindows(EnumWindowsProc, 0); return 0;}///////////////////////////End Sub////////////////////////////////// SPY++却没能获得他的内容,显示是一个黑色的方块-----------有可能EDIT进行处理了,可能自己HOOK了WM_GETTEXT消息,并返回黑色的方块,所有旧这样了,只能用其他方法了 如何判断用户对对话框进行了操作? 求助 关于画图!!! 子对话框层叠的控制问题 vs2005创建MFC项目出现系统问题 小弟是菜鸟一只,最近要开发虚拟驱动,如文件过滤,现在要学习,要怎么入手,要有什么资料和书籍 一下代码连接SQL出错怎么处理? 难!难!难!高分求编写视频聊天程序源代码或思路 http://yacsoft.com/cn/tu/ 包你满意 到CSDN学VC一个星期,多了一只小三角,散分庆祝!!(大家给点学VC和MFC的意见哈) WIN7中,软件参数保存到哪个文件夹呢? 紧急求助,请各位大虾帮帮忙啊,拜托了! 直方图的绘制
文件名 :WinMain.cpp
创建者 :hankcs
创建时间 :2010-6-26 18:45:49
功能描述 :获取其他程序中的文本Demo,打开记事本输入随便
几个字符来测试本程序
******************************************************************/
#include <windows.h>
#include <stdio.h>BOOL CALLBACK EnumChildWindowsProc(HWND hwndChild, LPARAM lParam) // 枚举子窗体的函数
{
CHAR szClassName[MAX_PATH];
::GetClassNameA(hwndChild, szClassName, sizeof(szClassName)/sizeof(CHAR));
if(stricmp(szClassName, "Edit") == 0)
{
::SendMessage(hwndChild, WM_GETTEXT, (WPARAM)sizeof(szClassName)/sizeof(CHAR), (LPARAM)szClassName);
MessageBox(NULL, szClassName, "Debug", MB_OK);
}
return (true);
}BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char wtitle[512];
GetWindowText(hwnd, wtitle, sizeof(wtitle));
if (strstr(wtitle , "记事本")) //窗口标题含有特定字符
{
EnumChildWindows(hwnd, EnumChildWindowsProc, NULL);
}
return (true);
}///////////////////////////WinMain//////////////////////////////////
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
EnumWindows(EnumWindowsProc, 0);
return 0;
}
///////////////////////////End Sub//////////////////////////////////
-----------
有可能EDIT进行处理了,可能自己HOOK了WM_GETTEXT消息,并返回黑色的方块,所有旧这样了,只能用其他方法了