我使用ControlClick为AHK创建了一个脚本,而不是常规的鼠标事件,这样我就可以在运行脚本的同时继续使用鼠标执行其他任务。但是,我需要模拟鼠标单击和拖动事件。使用ControlClick事件可以做到这一点吗?
我尝试使用:
ControlClick, x365 y560, SM N910V,,,,D
ControlClick, x365 y770, SM N910V,,,,U但没那么走运。
发布于 2017-01-26 19:07:45
不幸的是,由于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)
}如果您详细说明了您正在单击和拖动的内容,我可能会给您一个更简单的变通方法。
https://stackoverflow.com/questions/41718301
复制相似问题