kxing 发表于 2012-1-8 10:44:06

[已解决]为何au3程序无法托盘点击

本帖最后由 kxing 于 2012-1-11 13:16 编辑

请问为什么au3写的程序用systray_udf.au3的函数无法点击呢?

点击代码:
#include <SysTray.au3>

$index=_SysTrayIconIndex("a.exe")
msgbox(0,'',$index)
$pos=_SysTrayIconPos($index)
mouseclick("right",$pos, $pos,1,0)
被点击的a.exe程序代码:
while 1
sleep(1000)
wend
麻烦帮忙解决,多谢!!!

kxing 发表于 2012-1-8 10:45:05

只要是获取au3程序的index就是 -1
其他程序到很正常。。。。。

hzxymkb 发表于 2012-1-8 14:31:29

看帮助文档啊

zxxputian2 发表于 2012-1-8 14:38:23

设定opt就可以

kxing 发表于 2012-1-8 17:47:45

能说说具体哪一个选项吗?
谢了。。。。

kxing 发表于 2012-1-9 23:22:05

谁能回答下吗,多谢啦。。。。

半芯竹 发表于 2012-1-9 23:33:13

本帖最后由 半芯竹 于 2012-1-9 23:41 编辑

#include "SysTray.au3"
Opt("WinSearchChildren", 1)
_SysTray_ClickItem("qq.exe", "right", 1)
Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1)
      Local $k_pos = MouseGetPos()
      Local $posTray = WinGetPos(_FindTrayToolbarWindow())
      Local $index = _SysTrayIconIndex($iTitle)

      If $index <> -1 Then
                Local $pos = _SysTrayIconPos($index)
                If $pos = -1 Then
                        $pos = _SysTrayIconPos($index)
                        If $pos = -1 Then Exit
                EndIf
                MouseMove($pos, $pos, 0)
                Sleep(100)
                MouseClick("right")
                MouseMove($k_pos, $k_pos, 0)
                        Else
                              MsgBox(0,'错误提示','未找到指定程序,请确定是否正确运行了此程序')
      EndIf
      EndFunc   ;==>_SysTray_ClickItem以下为SysTray.au3 自己保存在程序运行目录。

半芯竹 发表于 2012-1-9 23:46:43

回复 6# kxing


    要学会搜索啊,老大。。自己想要点击左键的话,将right更改为left。。。

kxing 发表于 2012-1-10 21:40:12

回复 8# 半芯竹


   
难道我表达有问题,还是我没看懂你的意思。
点击qq是没问题的,但是要点击用au3写的程序就不行了。
明白我意思吗,上面那段a.exe代码你编译成exe后用au3点他看看。。。

半芯竹 发表于 2012-1-10 22:18:19

本帖最后由 半芯竹 于 2012-1-10 22:19 编辑

回复 9# kxing


    用我的发的那些点击代码完全没有问题。把你的A.EXE代码测试N次。正常……

kxing 发表于 2012-1-11 13:15:58

你的头文件还不一样....
多谢啦!!!
页: [1]
查看完整版本: [已解决]为何au3程序无法托盘点击