1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
<<.copy>>
;; -> init
ShellApp := ComObjCreate("Shell.Application")
GroupAdd, Explorer, ahk_class CabinetWClass
GroupAdd, Explorer, ahk_class ExploreWClass
;; -> library
Explorer(hwnd := "")
{
global ShellApp
if (hwnd = "")
WinGet, hwnd, id, A
for window in ShellApp.Windows
if (window.hwnd = hwnd)
return window
return -1
}
;; -> body
#IfWinActive ahk_group Explorer
^n::Run, % "explorer /n,""" Explorer().Document.Folder.Self.path """"
^p::Run, % "cmd /k cd /d """ Explorer().Document.Folder.Self.path """"
+^p::
path := Explorer().Document.Folder.Self.path
Run, % "C:\Documents and Settings\All Users\Start Menu\Programs\Microsoft Visual Studio 2010 Express\Visual Studio Command Prompt (2010).lnk"
WinWait, ahk_class ConsoleWindowClass
SendInput, % "cd " path "{Return}"
return
LAlt & Up::
RAlt & Up::
e := Explorer()
path := e.Document.Folder.Self.path
if (InStr(path, "::{") = 1)
return
slash := InStr(path, "\", 0, 0)
if (slash = StrLen(path))
slash := InStr(path, "\", 0, 0, 2)
if (slash = 0)
parent = ::{20D04FE0-3AEA-1069-A2D8-08002B30309D} ; My Computer
else
parent := SubStr(path, 1, slash)
e.Navigate(parent)
return
LAlt & Down::
RAlt & Down::
path := Explorer().Document.Folder.Self.path
if (InStr(path, "::{") = 1)
return
Explorer().Navigate(path) ; go to real path of folder
return
^+n::
FileCreateDir, % Explorer().Document.Folder.Self.path "\New Folder"
SendInput, {F5}New Folder{F2}
return
^!n::
FileAppend,, % Explorer().Document.Folder.Self.path "\New Text Document.txt"
SendInput, {F5}New Text Document.txt{F2}
return
^h::
SSF_SHOWALLOBJECTS := 0x0001
VarSetCapacity(SHELLSTATE, 32, 0)
DllCall("Shell32\SHGetSetSettings", "Ptr", &SHELLSTATE, "UInt", SSF_SHOWALLOBJECTS, "Int", false)
NumPut(NumGet(SHELLSTATE) ^ (1 << 0), SHELLSTATE,, "Int")
DllCall("Shell32\SHGetSetSettings", "Ptr", &SHELLSTATE, "UInt", SSF_SHOWALLOBJECTS, "Int", true)
WinGet, win, List, ahk_group Explorer
Loop, % win
PostMessage, 0x111, 41504,,, % "ahk_id " win%A_Index% ; refresh
return
^q::PostMessage, 0x111, 30210, 0,, A ; sort by name
^w::PostMessage, 0x111, 30213, 0,, A ; sort by modified
^e::PostMessage, 0x111, 30212, 0,, A ; sort by type
^t::PostMessage, 0x111, 30214, 0,, A ; sort by created
^g::PostMessage, 0x111, 30209, 0,, A ; show in groups
^s::PostMessage, 0x111, 28717, 0,, A ; thumbnails
^d::PostMessage, 0x111, 28713, 0,, A ; icons
^i::PostMessage, 0x111, 28718, 0,, A ; tiles
^l::PostMessage, 0x111, 28715, 0,, A ; list
^f::PostMessage, 0x111, 28716, 0,, A ; details
#IfWinActive
;; -> .copy
test
|