TC官方合作论坛

标题: 求助 系统.枚举 检测进程句柄得不到正确的句柄 [打印本页]

作者: 猫熊    时间: 2013-8-10 15:11
标题: 求助 系统.枚举 检测进程句柄得不到正确的句柄
如题
使用系统.枚举
老是检测不到 进程句柄.高手帮我看看是不是我用错了 .
空间 te44
//默认空间

整型 程序句柄,顶程序句柄

功能 检测程序句柄()//枚举检测进程名
    程序句柄=系统.枚举("notepad.exe",2)
    顶程序句柄=窗口.顶层窗口句柄()
   
功能结束


功能 开始_点击()
   
    te44.检测程序句柄()
   
    辅助.消息框("记事本句柄"&程序句柄&",顶程序句柄"&顶程序句柄)
    窗口.最大化(程序句柄)
    窗口.置顶(程序句柄,真)
   
   
功能结束

//退出按钮_点击操作
功能 退出_点击()
   
    辅助.退出()
功能结束

空间结束
//空间结束语句

作者: 猫熊    时间: 2013-8-10 15:17
这个是帮助里面的,我贴出来了,
name: 名称(根据类型来提供,比如模式0:需要的就是窗口标题(如:计算器,注意有些窗口没有窗口名) 1:类名(通过AB抓抓或者窗口返回类名等函数获取,注意有些窗口没有类名) 2:进程名(通过任务管理器中查看得到,如"QQ.exe","YY.exe")
type:
0: 窗口名枚举窗口句柄
1: 类名枚举窗口句柄
2: 进程名枚举进程句柄
3: 父窗口句柄枚举子窗口句柄 (参数1为空串,如系统.枚举("",3)将以桌面句柄为父窗口句柄)

应为记事本之类的有时候窗口标题不一样,所以才用了进程名检测.
作者: 187144831    时间: 2013-8-10 15:26
回复 2楼猫熊的帖子

你是如何判定没有枚举到呢?
消息框 无内容?
我复制你的代码 获取到了句柄
只是最大化和置顶无效而已
作者: 猫熊    时间: 2013-8-10 15:33
谢谢187144831帮忙,
我运行程序发现,记事本的句柄每一次都是480左右,有时候是478.
[attach]10561[/attach]

作者: 猫熊    时间: 2013-8-10 15:36
回复 3楼187144831的帖子

再次运行,句柄会依次+4.
我很是迷茫呀.
我用的是64位win7不知道和这个有原因没有
作者: 498518599    时间: 2013-8-10 16:39
我一般用3
作者: 猫熊    时间: 2013-8-10 16:46
我一般用3
498518599 发表于 2013-8-10 16:39:44
3: 父窗口句柄枚举子窗口句柄 (参数1为空串,如系统.枚举("",3)将以桌面句柄为父窗口句柄)
这个看不懂,不会用,能举个例子吗?谢谢了.

其实我就是对记事本程序操作,有时候记事本打开文件了,标题会改变要不我就根据窗口名找了.

不知道有什么好的方法没有?

作者: 猫熊    时间: 2013-8-10 18:08
刚去虚拟机里试了一下,xp的系统还是不行.
作者: 498518599    时间: 2013-8-11 00:42
那你就枚举进程
作者: 猫熊    时间: 2013-8-12 15:46
回复 9楼498518599的帖子

我就是用的枚举进程呀!
程序句柄=系统.枚举("notepad.exe",2)

得到的句柄老是480,很是奇怪的.
作者: 猫熊    时间: 2013-8-12 16:56
知道问题所在了.这么简单的一个问题就是没有人告诉.看来不花钱就是没有人说呀.

错误就在与 定义的整型的变量接收枚举的值,枚举出来的数值是字符型,我没有转换,也怪我没有仔细看调试输出窗口的变量类型.
整型接收字符型数值他也不提示错误,怪我不仔细呀.




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1