<F5> to switch between views.
Replace with hotkey of your choice
cleaned up function:
Code:
GroupAdd, Explorer, ahk_class CabinetWClass
GroupAdd, Explorer, ahk_class ExploreWClass
#IfWinActive, ahk_group Explorer
*F5::_VIEW(WinActive())
Return
_VIEW(hwnd) {
views=0x7029,0x702b,0x702c,0x702d,0x702e
StringSplit,view_,views,`,
static view
view++
If view > %view_0%
view=1
SendMessage,0x111,% view_%view%,0,,ahk_id %hwnd%
}
alternate noisy version (can be applied to explorer list views):
Code:
GroupAdd, Explorer, ahk_class CabinetWClass
GroupAdd, Explorer, ahk_class ExploreWClass
#IfWinActive, ahk_group Explorer
*F5::Goto, CHANGE_VIEW
Return
CHANGE_VIEW:
MouseGetPos,x,y,winid,ctrlid,2
Sleep,0
WM_COMMAND=0x111
ODM_VIEW_ICONS =0x7029
ODM_VIEW_LIST =0x702b
ODM_VIEW_DETAIL=0x702c
ODM_VIEW_THUMBS=0x702d
ODM_VIEW_TILES =0x702e
views=%ODM_VIEW_ICONS%,%ODM_VIEW_LIST%,%ODM_VIEW_DETAIL%,%ODM_VIEW_THUMBS%,%ODM_VIEW_TILES%
StringSplit,view_,views,`,
view+=1
If view>5
view=1
changeview:=view_%view%
ControlGet,listview,Hwnd,,,ahk_id %ctrlid%
parent:=listview
Loop
{
parent:=DllCall("GetParent","UInt",parent)
If parent=0
Break
SendMessage,%WM_COMMAND%,%changeview%,0,,ahk_id %parent%
}
return