2017-01-18 149 views
3

我使用ControlClick而不是常規的鼠標事件爲AHK創建了一個腳本,以便在運行腳本時可以繼續使用我的鼠標執行其他任務。不過,我需要模擬一個鼠標點擊和拖動事件。使用ControlClick事件可以做到這一點嗎?AHK ControlClick並拖動?

我試着使用:

ControlClick, x365 y560, SM N910V,,,,D 
ControlClick, x365 y770, SM N910V,,,,U 

,但沒有運氣。

+0

只涉及一些基礎知識:您是否嘗試過實施[ControlClick的可靠性建議](https://autohotkey.com/docs/commands/ControlClick.htm#Reliability)?傳統方式(例如'MouseClickDrag'或常規點擊/ MouseMove)在該窗口中工作嗎?我假設你正在使用某種類型的電話模擬器。您的代碼是否可以在其他Windows資源管理器中工作? – MCL

+0

does not'controlsend'' {lbutton down}'工作? – Blauhirn

回答

1

不幸的是,由於ControlClick的工作原理,此功能不可用。它可以通過COM調用完成(例如,如果您點擊&將文件拖到窗口中)。我不記得我在網上發現的位置,但很確定它在AHK論壇上。

;window = target window, standard AHK window syntax works eg: "ahk_id hwnd" or just "WinTitle" 
;files = list of files to be dropped 
DropFiles(window, files*) 
{ 
    for k,v in files 
    memRequired+=StrLen(v)+1 
    hGlobal := DllCall("GlobalAlloc", "uint", 0x42, "ptr", memRequired+21) 
    dropfiles := DllCall("GlobalLock", "ptr", hGlobal) 
    NumPut(offset := 20, dropfiles+0, 0, "uint") 
    for k,v in files 
    StrPut(v, dropfiles+offset, "utf-8"), offset+=StrLen(v)+1 
    DllCall("GlobalUnlock", "ptr", hGlobal) 
    PostMessage, 0x233, hGlobal, 0,, %window% 
    if ErrorLevel 
    DllCall("GlobalFree", "ptr", hGlobal) 
} 

如果你給你的點擊和拖動的細節,我或許可以給你一個更容易變通。