Тема: AHK: Доступ к контекстному меню
Как можно вызвать пункт контекстного меню проводника (ahk_class #32768) что бы сменить вид файлов (например на список id 31006). Естественно не симулируя клавиши
Для обычного окна проводника отлично работает этот код
#Numpad1::PostMessage, 0x111, 28747,,ShellTabWindowClass1, ahk_class CabinetWClass ; Таблица
#Numpad2::PostMessage, 0x111, 28751,,ShellTabWindowClass1, ahk_class CabinetWClass ; Крупные значки
#Numpad3::PostMessage, 0x111, 28749,,ShellTabWindowClass1, ahk_class CabinetWClass ; Огромные значки
Нашел в глубинах интернета эту тему - https://autohotkey.com/board/topic/96655-changing-folder-view-to-detail/
F10::
ControlGet, ctrlid,hwnd,, SysListView321, A
ControlGet,hwnd_child,hwnd,,,ahk_id %ctrlid%
parent:=DllCall("GetParent","UInt",hwnd_child)
PostMessage,0x111,0x702c,0,,ahk_id %parent% ;set listview mode detail
sleep 20
PostMessage, 0x111, 30213,,, ahk_id %parent% ; sort Date modified
sleep 20
PostMessage, 0x111, 30213,,, ahk_id %parent% ; to get sort reversed
return
Но он не везде срабатывает. Дело в том, что разные программы открывают вроде как разный подвиды окон (Open/ Save/ Save as )
Например блокнот при сохранении открывает один, а фотошоп другой. В блокноте скрипт сработал, в Фотошопе нет.
Кроме того у меня "sort Date modified" и " to get sort reversed" вообще нигде не работают - но это и не важно.
Чтоб было понятно о чем речь, что я хочу "нажать" желательно без вызова на экран (чтоб не мельтешило, "прямой" командой)
Я так понимаю надо из "родителя" (главное окно ahk_class #32770) вызвать "ребенка" ?
Я в принципе хочу понять как оно работает.