首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

获取其他程序中listbox的内容乱码,是被加密了吗?该怎么解决

2012-02-04 
获取其他程序中listbox的内容乱码,是被加密了吗? - C++ Builder / Windows SDK/API这个程序原来可以用LB_G

获取其他程序中listbox的内容乱码,是被加密了吗? - C++ Builder / Windows SDK/API
这个程序原来可以用LB_GETTEXT获得内容,
后来升级新版本以后LB_GETTEXT获取的内容是乱码,

C/C++ code
SendMessage(hListBox,   LB_GETTEXT,  0,    (LPARAM)text);


程序下载

C/C++ code
HWND hMain = FindWindow("drcom_2133",   "Dr.COM 宽带认证客户端 (v3.71)(d14)");HWND hListBox = FindWindowEx(hMain,   0,   "ListBox",   NULL);


获取的内容都是类似
8d?
`c?
衎?
燼?
館?
X^?
鳽?
癎?
这样的乱码

对应的十六进制
3864
6063
D062
A061
F05E
585E
F85A
B047

不知道有什么方法能还原出来原来的字符串。
大家帮帮忙,谢谢!

[解决办法]
你得到的数据:3864 6063 D062 A061 F05E 585E F85A B047 既非gbk也不是unicode
可能程序升级后你得到的hListBox 是错的,跟踪一下程序看看



[解决办法]
LZ解决了嘛?结果怎么样?
[解决办法]
有没有用Microsoft VC6.0带的Spy++查看你这个窗口的内容,这样对比下,只是建议!

代码本身看不出问题,再说你的程序在老版本上运行良好!,你只能看看这个新版本的窗口里面的内容

到底和老版本有啥区别!我只是建议!
[解决办法]
你用spy++ Lite 看看,先定位主窗口,再看子窗口(它把其它控件看成是子窗口),这样一层层找,可以找到你要的ListBox,再没有title 的情况下,可能会定位到其它ListBox去了,因为程序中可能会有unvisible的控件存在。
你这样试一下,给它贴上内容,看你要定位的窗口内容是否变化,以确定是你要找的窗口就是它:
Clipboard()->SetTextBuf(“呵呵,找到你了!”); 
PostMessage( hListBox, WM_PASTE, 0, 0); 

热点排行