我正在尝试编写一个脚本,将当前正在播放的文件从 Winamp 放入 Tabbles(一个文件标记软件http://tabbles.net)我找到了这个例子,但它没有多大帮助: http://www.autohotkey .com/board/topic/41467-make-ahk-drop-files-into-other-applications/
如果您有文件路径,如何在程序中生成文件放置事件(例如“拖放”而不进行拖动)?谢谢你。
我正在尝试编写一个脚本,将当前正在播放的文件从 Winamp 放入 Tabbles(一个文件标记软件http://tabbles.net)我找到了这个例子,但它没有多大帮助: http://www.autohotkey .com/board/topic/41467-make-ahk-drop-files-into-other-applications/
如果您有文件路径,如何在程序中生成文件放置事件(例如“拖放”而不进行拖动)?谢谢你。
如果您希望在不实际执行的情况下模拟拖放操作,MouseClickDrag
可以使用以下代码:
; Drop test.txt into an *existing* notepad window
; Modify the class to match Tabbles window class
PostMessage, 0x233, HDrop("C:\test.txt"), 0,, ahk_class Notepad
HDrop(fnames,x=0,y=0) {
fns:=RegExReplace(fnames,"\n$")
fns:=RegExReplace(fns,"^\n")
hDrop:=DllCall("GlobalAlloc","UInt",0x42,"UPtr",20+StrLen(fns)+2)
p:=DllCall("GlobalLock","UPtr",hDrop)
NumPut(20, p+0) ;offset
NumPut(x, p+4) ;pt.x
NumPut(y, p+8) ;pt.y
NumPut(0, p+12) ;fNC
NumPut(0, p+16) ;fWide
p2:=p+20
Loop,Parse,fns,`n,`r
{
DllCall("RtlMoveMemory","UPtr",p2,"AStr",A_LoopField,"UPtr",StrLen(A_LoopField))
p2+=StrLen(A_LoopField)+1
}
DllCall("GlobalUnlock","UPtr",hDrop)
Return hDrop
}
在 AHK_L 中测试。让我知道这是否有帮助!