본문 바로가기
programming language/Autohotkey

Autohotkey 에서 COM 을 사용하여 현재 열린 탐색기의 폴더 찾기

by __observer__ 2017. 2. 24.
반응형
탐색기의 주소를 알고 싶은 경우 탐색기에서 ALT + D 를 누른 후에 주소 값을 복사 하면 됩니다. 

Autohotkey 로 탐색기의 주소를 알고 싶은 경우에도 위의 내용을 코딩해 주면 되겠죠. 


해당 내용은 아래와 같을 겁니다. 



send, !d
sleep, 1000
send ^c

그런데 클립보드를 사용하다 보면 이상하게 주소가 저장이 안 될 때가 있습니다. 

그래서 COM 을 사용해 보기로 했습니다. 

Autohotkey 에서 COM 을 사용하여 현재 열린 탐색기의 폴더 주소를 아는 방법은 아래와 같습니다.

#NoEnv
#SingleInstance force

#a::   ; Shortcut : WIN + A
hwnd := WinExist("A")
WinGetClass class, ahk_id %hwnd%

if (class="CabinetWClass" or class="ExploreWClass")
{

for window, in ComObjCreate("Shell.Application").Windows
{
try
{
if (window.hwnd==hwnd)
{
sel := window.LocationURL

sel := RegExReplace(sel,"file:///","")
foldername := RegExReplace(sel,"/","\")
foldername := RegExReplace(foldername,"%20"," ")

Clipboard:=foldername
MsgBox,,, % foldername,1

break
}
}
}
}
return

위 코드를 실행 시킨 후에 탐색기를 연 상태에서 WIN + A 를 누르면 아래와 같이 msgbox 가 1 초간 열렸다가 꺼지고 클립보드에 폴더의 주소가 저장 됩니다.




반응형

댓글