2

我正在尝试编写一个脚本,将当前正在播放的文件从 Winamp 放入 Tabbles(一个文件标记软件http://tabbles.net)我找到了这个例子,但它没有多大帮助: http://www.autohotkey .com/board/topic/41467-make-ahk-drop-files-into-other-applications/

如果您有文件路径,如何在程序中生成文件放置事件(例如“拖放”而不进行拖动)?谢谢你。

4

1 回答 1

2

如果您希望在不实际执行的情况下模拟拖放操作,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 中测试。让我知道这是否有帮助!

于 2013-06-18T13:40:45.313 回答