冥界3大法王 发表于 2023-5-15 17:39

通过类名得到窗口标题残缺

我要测试的窗口是x64dbg

var
h: HWND;
arr: array of Char;
begin
h := FindWindow('Qt5QWindowIcon', nil);
// ShowMessage(IntToStr(h));   这个是得到的句柄
GetWindowText(h, @arr, SizeOf(arr));
ShowMessage(arr);    //可是得到的结果却是x64dbg
end;


{:301_974:}

冥界3大法王 发表于 2023-5-15 18:26

好像是开那个插件造成的。。。
但虚拟机里没有,也只能通过遍历所有窗口的方式 解决一部分。

fanssong 发表于 2023-5-15 20:17

冥界3大法王 发表于 2023-5-15 18:26
好像是开那个插件造成的。。。
但虚拟机里没有,也只能通过遍历所有窗口的方式 解决一部分。

是不是返回变量容器长度不够

冥界3大法王 发表于 2023-5-15 20:27

fanssong 发表于 2023-5-15 20:17
是不是返回变量容器长度不够

不知道啊,换其他的程序都正常啊。
后来我通过遍历所有窗口+过滤字符判断解决

fanssong 发表于 2023-5-15 20:29

冥界3大法王 发表于 2023-5-15 20:27
不知道啊,换其他的程序都正常啊。
后来我通过遍历所有窗口+过滤字符判断解决

给这个变量先申请个内存

冥界3大法王 发表于 2023-5-15 20:31

fanssong 发表于 2023-5-15 20:29
给这个变量先申请个内存

@fanssong
不会啊,专家先开一个x64dbg窗口
给我表演下实现,谢谢。{:301_974:}

无闻无问 发表于 2023-5-15 21:37

本帖最后由 无闻无问 于 2023-5-15 21:39 编辑

FindWindow有些窗口是取不到的,可用EnumWindows枚举句柄试试……

还有是不是缓冲区设置有问题,只得到一部分,你把大小设个1024看看……

冥界3大法王 发表于 2023-5-15 21:55

无闻无问 发表于 2023-5-15 21:37
FindWindow有些窗口是取不到的,可用EnumWindows枚举句柄试试……

还有是不是缓冲区设置有问题,只得到 ...

试了不成,我主要嫌代码的实现太长了。{:301_1008:}
页: [1]
查看完整版本: 通过类名得到窗口标题残缺