๊ทธ๊ฒƒ์€ ์ €์˜€๊ตฌ์—ฐ


์˜คํ† ํ•ซํ‚ค 1.1 ๊น”์•„์„œ F10 ๋ˆŒ๋ฅด๋ฉด ํ˜„์žฌ ํด๋” ๊ธฐ์ค€์œผ๋กœ code . <- ๊นŒ์ง€ ์ž๋™์œผ๋กœ ํ•ด์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ.



์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๊ฑธ ์™œ ์•ˆ๋งŒ๋“ค์—ˆ๋‚˜ ์‹ถ๋”๋ผ๊ณ .


์ผ๋‹จ '๋‚˜๋Š”' ์ž˜ ๋˜๋‹ˆ๊นŒ ๊ณต์œ ํ•ด๋ด„.ย 


์ผ๋‹จ vscode ์ฒซ ์„ค์น˜ํ•  ๋•Œ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์œผ๋ฉด PATH ํ™˜๊ฒฝ๋ณ€์ˆ˜์— code๊ฐ€ ์ž๋™์œผ๋กœ ๋“ฑ๋ก๋˜๊ฒŒ ๋˜์žˆ๋Š”๋ฐ ๊ทธ๋ ‡๊ฒŒ ๋˜์žˆ์œผ๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๋“ฏ ํ•จ


+ ์›๋“œ๋ผ์ด๋ธŒ ๋•Œ๋ฌธ์— ๊ฒฝ๋กœ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ํ•˜๋Š” ๋“ฑ ์ข€ ๋ช‡๊ฐ€์ง€ ๊ดด๋ž„ํ•œ ์—์™ธ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿผ ์•Œ์•„์„œ ์ˆ˜์ •ํ•ด์„œ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ.



ํŠน์ • ํด๋” ( ์œˆ๋„์šฐ ํƒ์ƒ‰๊ธฐ ) ์—์„œ ctrl + l ๋ˆ„๋ฅด๋ฉด ์ฃผ์†Œ์ฐฝ์ด ํ•˜์ด๋ผ์ดํŠธ ๋˜๊ณ  ๊ฑฐ๊ธฐ์„œ ๋ณดํ†ต cmd ์น˜๊ณ  ์ฝ˜์†” ์—ด๊ณ 


code .


( ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๋“ฑ๋ก๋œ code ์‹คํ–‰ - vscode ์‹คํ–‰ + ์‹คํ–‰ ํ•  ๋–„ ์ธ์ž๋Š” '.' ์„ ๋„ฃ์–ด์„œ ์‹คํ–‰ํ•ด๋ผ. '.' ์€ ํ˜„์žฌ ํด๋”๋ฅผ ์˜๋ฏธ )


์ด๋Ÿฐ ์‹์œผ๋กœ ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ์ด๊ฑธ ์Šคํฌ๋ฆฝํŒ…ํ•  ์ƒ๊ฐ ์•ˆํ•˜๋‹ค ๋ฐฉ๊ธˆ ์ƒ๊ฐ๋‚˜์„œ ๋งŒ๋“ฌ


์•„๋ž˜๋‚ด์šฉ ๊ผญ utf-8 (BOM)์œผ๋กœ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , userName์— ํ˜„์žฌ '์‚ฌ์šฉ์ž๋ช…' ์ ์–ด๋‘๋ฉด ๋จ



; =============================================================================

; ์Šคํฌ๋ฆฝํŠธ ์ •๋ณด & ์ฃผ์˜์‚ฌํ•ญ (2026๋…„ ๊ธฐ์ค€)

; =============================================================================


; AutoHotkey ๋ฒ„์ „ย  ย  ย : v1.1.x (v2 ํ˜ธํ™˜ ์•ˆ ๋จ - v2 ๋ฌธ๋ฒ• ์‚ฌ์šฉ ๊ธˆ์ง€)

; ์ฃผ์š” ํ˜ธํ™˜์„ฑย  ย  ย  ย  ย : Windows 10 / Windows 11 (ํƒญ ๊ธฐ๋Šฅ ํฌํ•จ)

; ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝย  ย  ย  ย  ย : Windows 11 23H2 ~ 24H2 ๋นŒ๋“œ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€์ฆ๋จ

; ๊ฒฝ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐฉ์‹ย  : ์ฃผ์†Œ์ฐฝ ํฌ์ปค์Šค(Alt+D) + Ctrl+C ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ

;ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย โ†’ Windows 11 ํƒญ/OneDrive/ํŠน์ˆ˜ ํด๋”์—์„œ๋„ ๋น„๊ต์  ์•ˆ์ •์ 


; ์ฃผ์˜ & ์˜ˆ์™ธ ์ƒํ™ฉ

; 0. UTF-8 (BOM) ์œผ๋กœ ํŒŒ์ผ์ด ์ €์žฅ๋˜์–ด์•ผ๋งŒ ๋ฌธ์ œ์—†์ด ๋“ฑ๋ก ๋จ

; 1. ๋น ๋ฅธ ์•ก์„ธ์Šค / This PC / ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ / ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ธŒ / ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

;ย  ย  โ†’ ๊ฒฝ๋กœ ๋ณต์‚ฌ๊ฐ€ ์•ˆ ๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ

; 2. OneDrive ๋™๊ธฐํ™” ํด๋” (ํŠนํžˆ ํด๋ผ์šฐ๋“œ ์ „์šฉ ํŒŒ์ผ)

;ย  ย  โ†’ ๊ฒฝ๋กœ๊ฐ€ "OneDrive - ํšŒ์‚ฌ๋ช…" ํ˜•ํƒœ๋กœ ๋‚˜์™€ FileExist() ์‹คํŒจ ๊ฐ€๋Šฅ

; 3. ์ฃผ์†Œ์ฐฝ์— "๊ฒ€์ƒ‰ ์ค‘..." ๋˜๋Š” "์ž‘์—… ์ค‘..." ์ƒํƒœ

;ย  ย  โ†’ ClipWait ํƒ€์ž„์•„์›ƒ ๋˜๋Š” ์ž˜๋ชป๋œ ๋ฌธ์ž์—ด ๋ณต์‚ฌ๋  ์ˆ˜ ์žˆ์Œ

; 4. ๋‹ค์ค‘ ๋ชจ๋‹ˆํ„ฐ + Explorer ์ฐฝ์ด ๋น„ํ™œ์„ฑ ์ƒํƒœ์—์„œ F10 ๋ˆ„๋ฆ„

;ย  ย  โ†’ SendInput์ด ์ œ๋Œ€๋กœ ์•ˆ ๋จนํž ์ˆ˜ ์žˆ์Œ (WinActive ์ฒดํฌ๋กœ ๋ฐฉ์–ด)

; 5. UAC(๊ด€๋ฆฌ์ž ๊ถŒํ•œ) ์ฐฝ์ด๋‚˜ ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ์ฐจ๋‹จ

;ย  ย  โ†’ SendInput ๋ธ”๋ก โ†’ Sleep ์‹œ๊ฐ„ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ #InputLevel ์กฐ์ • ๊ณ ๋ ค

; 6. ํด๋ฆฝ๋ณด๋“œ ํžˆ์Šคํ† ๋ฆฌ(Win+V) ํ™œ์„ฑํ™” ์‹œ ๊ฐ„ํ—์  ๊ฐ„์„ญ ๊ฐ€๋Šฅ

; 7. Sleep 200ms โ†’ ๋А๋ฆฐ PC์—์„œ๋Š” 300~500ms๋กœ ๋Š˜๋ ค์•ผ ์•ˆ์ •์ ์ผ ์ˆ˜ ์žˆ์Œ


; ๋””๋ฒ„๊น… ํŒ

; - showDebugMsg := true ๋กœ ์„ค์ •ํ•˜๋ฉด ์„ฑ๊ณต ์‹œ์—๋„ ๋ฉ”์‹œ์ง€๋ฐ•์Šค ํ™•์ธ ๊ฐ€๋Šฅ

; - ๊ฒฝ๋กœ๊ฐ€ ์ด์ƒํ•˜๋ฉด ์ˆ˜๋™์œผ๋กœ Explorer โ†’ Alt+D โ†’ Ctrl+C โ†’ Win+V ๋ˆŒ๋Ÿฌ์„œ

;ย  ย ํด๋ฆฝ๋ณด๋“œ์— ์‹ค์ œ๋กœ ๋ญ๊ฐ€ ๋ณต์‚ฌ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”


; =============================================================================


#NoEnv

#SingleInstance Force

SendMode Input

SetWorkingDir %A_ScriptDir%


; === ์„ค์ • ๋ถ€๋ถ„ (์—ฌ๊ธฐ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋จ) ===

userName := ""ย  ย ; โ† ๋ณธ์ธ Windows ์œ ์ €๋ช…์œผ๋กœ ๋ฐ”๊พธ์„ธ์š”

; ๋˜๋Š” ์ž๋™์œผ๋กœ ํ˜„์žฌ ๋กœ๊ทธ์ธ ์œ ์ €๋ช… ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ฃผ์„ ํ’€๊ธฐ

; userName := A_UserName


; VS Code ์‹คํ–‰ ํŒŒ์ผ ๊ฒฝ๋กœ (userName ๋ณ€์ˆ˜ ์‚ฌ์šฉ)

vscodeExe := "C:\Users\" . userName . "\AppData\Local\Programs\Microsoft VS Code\Code.exe"


; ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€๋ฐ•์Šค ๋„์šธ์ง€ ์—ฌ๋ถ€ (true๋กœ ๋ฐ”๊พธ๋ฉด ์„ฑ๊ณตํ•  ๋•Œ๋„ ๋ฉ”์‹œ์ง€ ๋‚˜์˜ด)

showDebugMsg := false


GetActiveExplorerPath() {

ย  ย  originalClipboard := ClipboardAll

ย  ย  Clipboard := ""


ย  ย  SendInput !d

ย  ย  Sleep 200

ย  ย  SendInput ^c

ย  ย  ClipWait 1


ย  ย  path := Clipboard

ย  ย  Clipboard := originalClipboard


ย  ย  if (path != "") {

ย  ย  ย  ย  path := RegExReplace(path, "^(์ฃผ์†Œ:|Address:|๊ฒ€์ƒ‰:|Search:)\s*", "")

ย  ย  ย  ย  path := Trim(path)

ย  ย  }


ย  ย  return path

}


#IfWinActive ahk_class CabinetWClass

F10::

ย  ย  path := GetActiveExplorerPath()


ย  ย  ; ์„ฑ๊ณต ์ผ€์ด์Šค โ†’ ๊ธฐ๋ณธ์ ์œผ๋กœ ์กฐ์šฉํžˆ ์ฒ˜๋ฆฌ

ย  ย  if (path != "" && FileExist(path) && InStr(FileExist(path), "D")) {

ย  ย  ย  ย  if FileExist(vscodeExe) {

ย  ย  ย  ย  ย  ย  Run, "%vscodeExe%" "%path%", , UseErrorLevel

ย  ย  ย  ย  ย  ย  if (ErrorLevel != 0) {

ย  ย  ย  ย  ย  ย  ย  ย  ; ์‹คํ–‰ ์‹คํŒจ ์‹œ์—๋งŒ MsgBox

ย  ย  ย  ย  ย  ย  ย  ย  MsgBox, 16, VS Code ์‹คํ–‰ ์‹คํŒจ,ย 

(

๊ฒฝ๋กœ๋Š” ๊ฐ€์ ธ์™”์œผ๋‚˜ VS Code๋ฅผ ์—ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

ErrorLevel: %ErrorLevel%

๊ฒฝ๋กœ: %path%


์ง์ ‘ ํ™•์ธํ•ด๋ณด์„ธ์š”.

)

ย  ย  ย  ย  ย  ย  } else if (showDebugMsg) {

ย  ย  ย  ย  ย  ย  ย  ย  MsgBox, 64, ์„ฑ๊ณต (๋””๋ฒ„๊ทธ),ย 

(

๊ฒฝ๋กœ: %path%

VS Code ์‹คํ–‰ ์™„๋ฃŒ

)

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  } else {

ย  ย  ย  ย  ย  ย  ; Code.exe ๋ชป ์ฐพ์Œ โ†’ ํ•ญ์ƒ ์—๋Ÿฌ MsgBox

ย  ย  ย  ย  ย  ย  MsgBox, 16, VS Code ์‹คํ–‰ ํŒŒ์ผ ์—†์Œ,ย 

(

Code.exe๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ํ™•์ธ: %vscodeExe%


์Šคํฌ๋ฆฝํŠธ ์ƒ๋‹จ์˜ userName ๋ณ€์ˆ˜๋ฅผ ๋ณธ์ธ Windows ์œ ์ €๋ช…์œผ๋กœ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.

๋˜๋Š” VS Code ์„ค์น˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ™•์ธ ๋ถ€ํƒ๋“œ๋ ค์š”.

)

ย  ย  ย  ย  }

ย  ย  } else {

ย  ย  ย  ย  ; ๊ฒฝ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ โ†’ ํ•ญ์ƒ MsgBox

ย  ย  ย  ย  MsgBox, 16, ๊ฒฝ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹คํŒจ,ย 

(

ํ˜„์žฌ ํด๋” ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.


ํ™•์ธ์‚ฌํ•ญ:

- ์ฃผ์†Œ์ฐฝ์— ํฌ์ปค์Šค๊ฐ€ ์ œ๋Œ€๋กœ ๊ฐ”๋Š”์ง€ (Alt+D โ†’ Ctrl+C)

- ์ผ๋ฐ˜ ๋กœ์ปฌ ํด๋”(C:\Temp ๋“ฑ)์—์„œ ์‹œ๋„ํ–ˆ๋Š”์ง€

- ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋œ ๋‚ด์šฉ์ด ์‹ค์ œ ๊ฒฝ๋กœ์ธ์ง€


ํด๋ฆฝ๋ณด๋“œ ๋‚ด์šฉ: %path%

)

ย  ย  }

return

#IfWinActive