2017-01-18 8 views
3

通常のマウスイベントではなく、ControlClickを使用してAHK用のスクリプトを作成し、スクリプトを実行中にマウスを使用して他のタスクを実行できるようにしました。しかし、私はマウスクリックとドラッグイベントをシミュレートする必要があります。 ControlClickイベントを使用してこれを行うことは可能ですか?AHK Controlクリックしてドラッグしますか?

私が使用してみました:

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 Explorerのような他のウィンドウでも使えますか? – MCL

+0

'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) 
} 

クリックしてドラッグしていることを具体的に説明すると、おそらくもっと簡単に回避できます。

関連する問題