找回密码
 加入
搜索
查看: 4484|回复: 10

[系统综合] [已解决]请问关于窗口句柄的问题

  [复制链接]
发表于 2010-11-9 03:53:54 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2010-11-9 23:41 编辑

请问下这个窗口句柄是否有特定的类型呢?
用变量保存该值时窗口函数可以正常操作。
一旦江获取到的句柄值写入到文本中在读取使用旧无效了。

给各例子测试下:
local $fl=@scriptdir&"\hwnd.txt"

hotkeyset("+{j}","_setstate")
hotkeyset("+{k}","_exit")

while 1
sleep(500)
wend

func _setstate()
if fileexists($fl) then
$hwnd=fileread($fl)
msgbox(0,'show',WinSetState($hwnd,"",@sw_show))
msgbox(0,'',$hwnd)
filedelete($fl)
else
$hwnd=wingethandle(wingettitle(""))
msgbox(0,'hide',winsetstate($hwnd,"",@sw_hide))
msgbox(0,'',$hwnd)
filewrite($fl,$hwnd)
endif
endfunc
func _exit()
msgbox(0,'','')
exit
endfunc
当我用全局变量来保存窗口句柄值时就能正常隐藏/显示。

说明下:隐藏后我并没有打开或关闭其他窗口操作,按道理来说窗口句柄不会被改变。

求高手解答下,多谢!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-11-9 04:00:09 | 显示全部楼层
补充下,如果采用窗口标题(非据柄)进行隐藏/显示可正常操作。
但是考虑到某些窗口标题过长或存在相同标题等问题,因此选用据柄进行。
发表于 2010-11-9 13:08:31 | 显示全部楼层
一般来说,用ini保存比较合适
发表于 2010-11-9 14:32:13 | 显示全部楼层
可能是数据结构不同吧,获取到的结构是一幢多层建筑的话,写入后再读取的就是那层建筑的第一层了。。。。我自己的感觉。。。而且句柄是随机分配的,只能做临时之用,保存它没什么意义。。。。
 楼主| 发表于 2010-11-9 19:26:13 | 显示全部楼层
不管用ini;inf;txt都不可行,除了变量。
我需要保存窗口据柄肯定有所用处了。
一般针对一个窗口只有一个据柄,绝对不会改变的。
所以说,据柄是临时的也只能说该窗口关闭后从新打开的不同。
发表于 2010-11-9 20:10:04 | 显示全部楼层
貌似写入计事本就变质了!应该先转换成二进制再读!
发表于 2010-11-9 20:48:43 | 显示全部楼层
本帖最后由 pusofalse 于 2010-11-13 18:13 编辑

用HWnd函数转换成句柄再使用,有N多问这个问题的人。
把”据”改过来。
 楼主| 发表于 2010-11-9 23:35:49 | 显示全部楼层
sry,没注意,修改过来了。
请问下什么函数能实现这一转换过程呢
多谢!
 楼主| 发表于 2010-11-9 23:41:07 | 显示全部楼层
恩,找到答案了。
多谢!!!!
发表于 2010-11-14 16:46:12 | 显示全部楼层
版主威武,还从来没注意过函数HWnd,汗一个先
发表于 2010-12-21 22:38:23 | 显示全部楼层
没看懂呀!解决了也应该把解决后的贴出来
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-27 21:23 , Processed in 0.089265 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表