TC官方合作论坛

标题: 求教大神 我的窗口句柄为空 怎么回事代码如下 [打印本页]

作者: 1142169220    时间: 2012-9-7 19:08
标题: 求教大神 我的窗口句柄为空 怎么回事代码如下
空间 线程操作
//定义默认空间
整型 线程句柄
逻辑型 是否暂停
//先定义一个函数 线程方法
功能 整型 线程方法()
字符型 返回值=系统.枚举("Notepad",1)
字符型[] 字符句柄集=字符型[1] //需要先初始化一次
逻辑型 是否成功=字符串.分割(返回值,"|",字符句柄集)
整型 c1,i=0
数组.大小(字符句柄集,c1)
循环(i<c1)
    线程操作.向窗口发送字符(字符句柄集)
    i=i+1
循环结束
返回 0
功能结束


功能 整型 向窗口发送字符(字符型 字符句柄)
    字符型 返回值=系统.枚举("字符句柄",3)
    字符型[] 字符句柄集=字符型[1] //需要先初始化一次
    逻辑型 是否成功=字符串.分割(返回值,"|",字符句柄集)
    整型 c1,i=0,句柄
数组.大小(字符句柄集,c1)
循环(i<c1)
如果(窗口.类名(转换.字符型转整型(字符句柄集,0))=="Edit")
    句柄=转换.字符型转整型(字符句柄集)
    跳出
如果结束
i=i+1
循环结束
窗口.提交按键(句柄,13)
窗口.提交字符串(句柄,"hepan"+转换.整型转字符型(句柄))
窗口.提交按键(句柄,13)
返回 0
功能结束

作者: 1142169220    时间: 2012-9-7 19:09
为什么提示 句柄不能为空啊   话说这章节 我也不是很理解 求大神指点
作者: 陌上青衣。    时间: 2012-9-7 19:19
对枚举结果判断下,

如果内容为空, 返回
作者: 1142169220    时间: 2012-9-7 19:23
回复 3楼陌上青衣。的帖子

好的我加进去试一试
作者: 1142169220    时间: 2012-9-7 19:30
整型 a=转换.字符型转整型(返回值,0)
如果(a==0)
    辅助.消息框("错了")   
如果结束
这个判断加在上面  运行后只显示2个数字 89898|767868  然后显示 转换失败 怎么回事
作者: 陌上青衣。    时间: 2012-9-7 19:35
直接判断 返回值
如果(返回值=="")
作者: 1142169220    时间: 2012-9-7 19:44
回复 6楼陌上青衣。的帖子

好的
作者: 1142169220    时间: 2012-9-7 19:45
功能 整型 线程方法()
字符型 返回值=系统.枚举("Notepad",1)
如果(返回值=="")
    辅助.消息框("失败")
如果结束                              直接弹出窗口句柄不能为空!青衣大神 !
作者: 1142169220    时间: 2012-9-7 19:53
我刚又检查了一下 枚举是有效的  肯定是下面的代码出了问题
作者: 1142169220    时间: 2012-9-7 19:58
字符型[] 字符句柄集=字符型[1]  这一句写在这里到底什么意思啊
作者: 陌上青衣。    时间: 2012-9-7 20:02
用句柄前的可能为空的时候之前都判断
作者: 1142169220    时间: 2012-9-7 20:13
那我检查到底哪一行出错了
作者: guang19890303    时间: 2012-9-7 20:13
用排除法   不所有可能出错的地方先排除  你把后台输入 先换成弹出窗  如果没问题 证明你得后台输入有问题 没有的话  逆向一步步 找错误
作者: 1142169220    时间: 2012-9-7 20:17
回复 11楼陌上青衣。的帖子

功能 整型 向窗口发送字符(字符型 字符句柄)
    字符型 返回值=系统.枚举("字符句柄",3)
    字符型[] 字符句柄集=字符型[1] //需要先初始化一次
    如果(返回值=="")
        辅助.消息框("没有句柄")
这判断的时候出错了 返回值为空
作者: 陌上青衣。    时间: 2012-9-7 20:21
那检查下  为什么没有枚举到原因吧.

这个得自己分析.
作者: 1142169220    时间: 2012-9-7 20:26
回复 15楼陌上青衣。的帖子

大神别走啊 !! 我哪里知道 啊  搞了半天才来求助了 5555~:
作者: guang19890303    时间: 2012-9-7 20:27


我试了  帮你找到了怎么回事   第一你语法有错误什么不说了   最重要的是 你向窗口发送字符的句柄 是记事本父级别的句柄 你得再次调用一下枚举然后把枚举类型改成3 用根据父级别窗口句柄来枚举子窗口句柄 找到记事本 相对与类名找到的父级别句柄的子句柄也就是  记事本的输入区句柄  你直接用父窗口句柄发送字符当然找不到了   因为父级别的句柄根本不会接收windows的后台发送消息  
再有 发送字符 一定要是整型句柄 而你上面的是字符串数组  你得先转成整型数组才行啊




复制代码


作者: 1142169220    时间: 2012-9-7 20:35
回复 0楼1142169220的帖子

字符型 返回值=系统.枚举("字符句柄",3) 无语了 原来是2个分号 多了 写
应该是
字符型 返回值=系统.枚举(字符句柄,3)
参数是不能带引号的
作者: 1142169220    时间: 2012-9-7 22:35
回复 17楼guang19890303的帖子

谢谢了 我会好好看的
作者: 1142169220    时间: 2012-9-7 22:46
回复 13楼guang19890303的帖子

我学这才学到高级篇第四课  就仿照这个做了一个文本输入 你能给我讲讲这些原理么 关于后台什么的
和这个线程控制多个文本输入




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