2013-06-15 4 views
1

나는 Tabbles로 윈앰프에서 현재 재생중인 파일 I이 예제를 발견 (소프트웨어 http://tabbles.net 태그 파일)을 삭제하는 스크립트를 작성하는 것을 시도하고 있지만별로 도움이되지 않았다 http://www.autohotkey.com/board/topic/41467-make-ahk-drop-files-into-other-applications/AHK 스크립트를 사용하여 현재 재생중인 파일을 winamp에서 다른 프로그램으로 끌어서 놓는 방법은 무엇입니까?

당신은 어떻게 생성합니까 파일 경로가있는 경우 프로그램에서 '끌어서 놓기'와 같은 파일 놓기 이벤트가 발생합니까? 감사합니다.

+0

코드를 게시하고 실패한 위치를 설명하십시오. 또한 AHK 버전을 사용하고 있습니까? – MCL

+0

사용자 입력을 모방하지 않아도됩니다. 파일을 시작 매개 변수로 사용하여 .exe를 실행하면 충분합니다. 프로세스를 자동화하는 방법에 대해 문서를 확인 했습니까? – MCL

+0

큰소리로 생각해보십시오. WinGetTitle을 사용하고 창 제목에서 파일 이름을 추출하여이를 사용하여 두 번째 응용 프로그램에 공급할 수 있습니다. AHK Windows Spy를 사용하여 Windows 타이틀이 현재 재생중인 파일을 추출하기에 충분한 데이터를 제공하는지 확인하십시오. –

답변

0

당신이 실제로 MouseClickDrag는 다음과 같은 코드를 사용할 수 있습니다 수행하지 않고 드래그 앤 드롭 동작을 모방하고자하는 경우 : AHK_L에서 테스트

; 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 
} 

. 이것이 도움이되었는지 알려주세요!

+0

엘리엇 감사합니다, 작동합니다! 문제는 내가 Windows 8을 사용하고 있다는 것이 었습니다. 일단 Win7에서 시도해 보니 모든 것이 원활하게 진행되었습니다. 어떤 이유로 Win8에서는 작동하지 않습니다. –

+0

이제 Winamp에서 파일 경로를 복사하는보다 우아한 해결책을 찾을 수만 있다면. 지금 나는 재생 목록에서 파일을 클릭하고 선택한 다음 Ctr + E (편집 재생 목록 항목 창 열기), Ctr + C (파일 경로 복사), Esc (창 닫기) 등의 스크립트를 실행해야합니다. AHK WindowSpy를 통해 Winamp는 경로가 아닌 파일 재생의 ID3 태그 정보 만 표시한다는 것을 알았습니다. –

+0

@MCL Tabbles 소프트웨어는 매개 변수를 허용하지 않습니다. 먼저 시도했습니다. 나는 AHK_L을 사용하고 있습니다. 끝나면 스크립트를 게시 할 것입니다. 고맙습니다. –