uptask 发表于 2008-11-4 02:09:41

能向隐藏的窗口发送消息吗?

就是我用AU3运行了一个程序,我设成了隐藏,那程序里有对框,我能向那对话框里发送消息吗?

liongodmien 发表于 2008-11-4 09:43:33

用控件函数!

uptask 发表于 2008-11-6 00:42:32

能来个例子吗?

比如操作记事本.

liongodmien 发表于 2008-11-6 08:54:59

  为了让你能看到结果:

Run('notepad.exe','',@SW_MINIMIZE)
WinWait('无标题 - 记事本','')
ControlSend('无标题 - 记事本','','Edit1','HELP YOU')
;~ 或
ControlSetText('无标题 - 记事本','','Edit1','以后要多看帮助')

uptask 发表于 2008-11-7 00:12:14

:face (22): 我说的是隐藏~不是最小化.

WinWait 是要有窗口,并且是当前激活的.

隐藏的是没窗口,怎么操作?你误解我的意思了.

sanhen 发表于 2008-11-7 01:02:02

4楼的并没有误解。而误解的只是楼上的。

f4李文杨 发表于 2008-11-7 02:28:50

4楼写的没有错只是楼没有理解吧!

xsw123 发表于 2008-11-7 16:29:49

Run('notepad.exe')
WinWait('无标题 - 记事本','')
sleep(1000)
WinSetState ( '无标题 - 记事本', "", @SW_hide)
ControlSetText('无标题 - 记事本','','Edit1','以后要多看帮助')
;~ ControlSend('无标题 - 记事本','','Edit1','HELP YOU')
sleep(2000)
WinSetState ( '无标题 - 记事本', "", @SW_show)

kob5891 发表于 2008-11-7 16:56:39

那么当用 ControlSend 和 ControlSetData 传送时有 乱码 怎么办啊?
还有别的方法吗?

xsw123 发表于 2008-11-7 18:16:46

发现一个现象,ControlSetText发送消息后,记事本不认为已经改变内容了。

yellow881 发表于 2008-11-7 22:45:54

我也正想问问这个问题~~我的是这样,但还是有窗口,大家来说说看。
Run("ghost.exe","",@SW_HIDE)
WinWaitActive("OneKey Ghost Y3.2", "还原系统")
ControlSetText("OneKey Ghost Y3.2", "还原系统", "TEdit1", $varPath)

yellow881 发表于 2008-11-8 20:54:01

我为什么就是不能隐藏运行~~
要自动运行的程序总是弹出来:

Dim $varGhost,$varPath,$handle
$varGhost=IniRead("setup.ini","ghostVer","ghost","")
$varPath=iniread("setup.ini","paths","path","")
Run("ghost.exe","",@SW_HIDE)
WinWait("OneKey Ghost Y3.2", "还原系统")
AutoItSetOption("WinTitleMatchMode", 4)
$handle = WinGetHandle("classname=OneKey", "还原系统");获取窗口的句柄
ControlSetText($handle, "还原系统", "TEdit1", $varPath)

我现在已改成用控件输入,又获取窗口标题为句柄了,还是不行,郁闷。

有没有老师来实例说说呢~~

[ 本帖最后由 yellow881 于 2008-11-8 20:59 编辑 ]

liongodmien 发表于 2008-11-8 22:24:25

原帖由 xsw123 于 2008-11-7 18:16 发表 http://www.autoitx.com/images/common/back.gif
发现一个现象,ControlSetText发送消息后,记事本不认为已经改变内容了。
嗯,是啊,所以古人云,温故而知新,就是要让我们不断的尝试...有时候一些问题是靠试出来的

liongodmien 发表于 2008-11-8 22:34:06

原帖由 yellow881 于 2008-11-7 22:45 发表 http://www.autoitx.com/images/common/back.gif
我也正想问问这个问题~~我的是这样,但还是有窗口,大家来说说看。
Run("ghost.exe","",@SW_HIDE)
WinWaitActive("OneKey Ghost Y3.2", "还原系统")
ControlSetText("OneKey Ghost Y3.2", "还原系统", "TEdit1",...
不知道你运行这个程序是怎么样的,所以不能有什么好办法提出,但如果你想不显现窗口起码不要用WinWaitActive(),用WinWait()或干脆按已知标题连续的设置隐藏WinSetState('OneKey Ghost Y3.2','',@SW_HIDE)直到确定窗口已经加载完为止...

yellow881 发表于 2008-11-9 09:23:54

很感谢楼上的老师,用你的方法是成功了,但另一个问题又出来了
就是关不掉窗口,用了WinKill 关也不行

[ 本帖最后由 yellow881 于 2008-11-9 09:29 编辑 ]
页: [1] 2
查看完整版本: 能向隐藏的窗口发送消息吗?