读书人

线程中的FindWindow在win7停查找不到指

发布时间: 2013-10-22 16:17:03 作者: rapoo

线程中的FindWindow在win7下查找不到指定窗口句柄
delphi中我在udp监听服务线程中用到了FindWindow函数来查找桌面打开窗口的句柄,用法h := FindWindow('TForm1', ’窗口1‘);在xp系统下运行能正常找到句柄值,但是放到win7下或者windows2003上运行后就查找不到句柄值了,但这个用法不放到线程中而在工程.exe的启动入口处调用在win7下则能正常找到句柄值,难道和win7下线程运行的保护机制有关,需要如何使用呢?有遇到这种问题的吗?
[解决办法]
应该不会吧,看下会不会是在FindWindow前就报错了,加个log把Handle记录或显示出来。
[解决办法]
你确定你的进程是以当前用户运行的?
不同的用户有不同的用户空间
同一用户还可以有多个桌面
FindWindow只能找当前线程所在桌面的句柄,如果用户不同或桌面不同,都找不到
[解决办法]
我在win7 64位系统上使用过,没问题呀,我也是在线程中findwindow,正常。
[解决办法]
我也出现这样的问题,真心觉得是不是Win7的问题,我用GetforegeroundWindow函数获取当前窗体句柄才行,

读书人网 >.NET

热点推荐