不幸的是,由於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)
}
如果你給你的點擊和拖動的細節,我或許可以給你一個更容易變通。
只涉及一些基礎知識:您是否嘗試過實施[ControlClick的可靠性建議](https://autohotkey.com/docs/commands/ControlClick.htm#Reliability)?傳統方式(例如'MouseClickDrag'或常規點擊/ MouseMove)在該窗口中工作嗎?我假設你正在使用某種類型的電話模擬器。您的代碼是否可以在其他Windows資源管理器中工作? – MCL
does not'controlsend'' {lbutton down}'工作? – Blauhirn