windw2 发表于 2009-10-31 15:58:53

请高手看下后台鼠标移动点击

本帖最后由 windw2 于 2009-11-1 07:19 编辑

为了实现鼠标在后台能够移动并点击,并不影响当前自己键盘和鼠标的问题,我在论坛上看了很久,始终理不清头绪,如下程序,请高手帮忙。

#include <PostMessage_UDF.au3>
Run("mspaint.exe")      启动画图板程序
$hwnd=wingethandle("classname=mspaintapp")   获得画图板窗口的句柄
_MouseClick($CtrlHandle, "left", 30,30)                  在后台画图板窗口坐标30,30处左键点击
sleep(2000)
_MouseClick($CtrlHandle, "left", 50,30)                  在后台画图板窗口坐标50,30处左键点击
sleep(2000)
_MouseClick($CtrlHandle, "left", 60,30)                   在后台画图板窗口坐标60,30处左键点击
sleep(2000)
_MouseClick($CtrlHandle, "left", 300,300)               在后台画图板窗口坐标300,300处左键点击
sleep(2000)
_MouseClick($CtrlHandle, "left", 500,300)               在后台画图板窗口坐标500,300处左键点击
sleep(2000)
_MouseClick($CtrlHandle, "left", 600,300)               在后台画图板窗口坐标600,300处左键点击
sleep(2000)

为什么在画图版上一点反应也没有,我用autoit最主要就是为了这个功能,再系统学autoit也觉得太麻烦了,请高手帮下忙,谢谢了!

sxd 发表于 2009-10-31 17:07:53

wingethandle("")

windw2 发表于 2009-10-31 17:54:38

谢谢楼上帮忙纠正错误,不过试了下还是不行,可能程序中还有错误,麻烦再看看,谢谢!

ZEROBOYS 发表于 2009-10-31 19:11:19

抱歉 我是台灣的,兩地口語 不是相同

您是想玩背景滑鼠? 在小畫家嗎?

倘若是我可以引我完整範例給你...

windw2 发表于 2009-10-31 19:14:53

楼上的台湾朋友,能给我范例吗?不甚感谢!可发我邮箱:zrxswfbm@hotmail.com

ZEROBOYS 发表于 2009-10-31 19:44:04

5# windw2

喔...馬上去寫,30分鐘內交件,內容為
於小畫家中...直線、橫點的畫線(是採集點擊式完成,拖曳式理論上,有可能請自行學習)

windw2 发表于 2009-10-31 19:54:45

麻烦了,不过关键是能实现鼠标的后台移动,点击,而不影响前台的键盘和鼠标的操作,小画家只是为了实验这个功能。

ZEROBOYS 发表于 2009-10-31 20:51:15

拍謝 跟外掛論壇的人聊開了,一下子忘記...這是抽論壇內的文章,改寫出來的...請您這樣做
一、開啟小畫家
二、執行以下的程式碼
三、點後台執行...
※ 倘若有不OK的地方,關鍵僅有一行
$WinHandle=ControlGetHandle("","","Afx:1000000:81")

#include <PostMessage_UDF.au3>
#include <GUIConstants.au3>

opt("guiOneventMode",1)      ;事件模式
$outWindow=GUICreate("Background key test",300,300,50,50)      ;創建一個演示窗口
GUISetOnEvent($gui_event_close,"Close_Click",$OutWindow)      ;窗口關閉事件

$BtnNotepad=GUICtrlCreateButton("新建一個記事本",50,50,150,25)      ;
GUICtrlSetOnEvent($BtnNotepad,"CreateNotepad")      ;創建一個記事本

$BtnInsert=GUICtrlCreateButton("後台鍵盤輸入",50,100,180,25)
GUICtrlSetOnEvent($BtnInsert,"InsertKeyValue")      ;在上面創建的記事本中輸入字符
GUISetState(@sw_show)

;創建記事本的函數
Func CreateNotepad()
      Run("Notepad.exe")
EndFunc

;向創建的記事本中插入字符的函數
Func InsertKeyValue()
      ;下面這個取得句柄的方法是關鍵,如果自己不知道Class的名字,可以借助 Autoit Window Info
      ;詳細的信息在第二個選項卡control中
$WinHandle=ControlGetHandle("","","Afx:1000000:81")

      If $WinHandle<1 Then
                MsgBox(0,"Error","句柄錯誤")
                GUIDelete()
                Exit
      EndIf
      ;後台開始發送按鍵信息,如果你想觀察得更仔細點,可以把循環值設置大一些,SLEEP的值也設置大一些
      ;這樣可以更清楚的體會後台發送的效果,當本程序在發送時,你可以在別的窗口處理別的事務,絲毫不影響
      For $i=1 to 100
                                _MouseClick (String($WinHandle),"left",$i*10,$i*5)
                                _MouseClick (String($WinHandle),"left",$i*5,$i*10)
;~               _SendText(String($WinHandle),"9")
                Sleep (10)
      Next
EndFunc

;關閉GUI的函數
Func Close_Click()
      Exit
EndFunc

While 1
      Sleep (500)
WEnd

sxd 发表于 2009-10-31 21:33:00

嗯 要把消息发送给 绘图控件 而不是发给窗口

windw2 发表于 2009-10-31 21:34:51

谢谢了,我这就研究调试。

ZEROBOYS 发表于 2009-10-31 21:48:50

谢谢了,我这就研究调试。
加油..我相信小畫家部份,你有這次範例,可以輕易成功的!
至於sxd的這句「嗯 要把消息发送给 绘图控件 而不是发给窗口」

也或許是我這陣子困境的主因,Autoit3 在沒有完整控件支援下,相容度、實用度,有一定可以降至最低...這也產生
在XP任何標準程式下,玩轉鍵盤、滑鼠,都完美演出...
在遊戲模式下,簡直是殘花敗柳...

windw2 发表于 2009-10-31 22:15:36

$WinHandle=ControlGetHandle("","","Afx:1000000:81")
这句的确很难理解,其实我不需要有一个启动界面,我自己可以做个快捷键启动后台鼠标运行,比如pgup启动,pgdn暂停,这功能我可以实现。
只是我不知道$WinHandle怎样定义如果我只是这样:
$WinHandle=wingethandle("")
For $i=1 to 100
                              _MouseClick (String($WinHandle),"left",$i*10,$i*5)
                              _MouseClick (String($WinHandle),"left",$i*5,$i*10)
                      Sleep (10)
      Next

但还是没成功,望指教!

windw2 发表于 2009-10-31 22:51:50

前面不好意思,
$WinHandle=ControlGetHandle("","","Afx:1000000:81")
For $i=1 to 100
                              _MouseClick (String($WinHandle),"left",$i*10,$i*5)
                              _MouseClick (String($WinHandle),"left",$i*5,$i*10)
                      Sleep (10)
      Next
已经能实现我所要的功能,谢谢各位了!

ZEROBOYS 发表于 2009-10-31 23:09:59

加油QQ 去結帖吧, 恭喜您畢業了... 準備陷入其他的地獄

foolbyrd 发表于 2009-11-1 15:14:00

这个我也想学.感觉挺有用的
页: [1] 2
查看完整版本: 请高手看下后台鼠标移动点击