Hi Experts:
When I navigate the left navigation pane of Windows Explorer using keyboard, I want it to open the highlighed folder and display its subfolders on the right pane. This is a Windows XP feature, but don't know why MS removed it from Windows 7 and 10. Can anyone help? Perferrably, COM model method.
Also can anyone tell me how to scroll the left pane and the right pane of Explorer using COM object method? If you can also point me to some Explorer COM model tutorials, that'd be great.
Thanks a lot!!
Windows Explorer: How to open the folder when I navigate on the left pane? Topic is solved
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
In case you are not aware of this, Microsoft has updated the old File Manager to work on Windows 10, and it is available for download at the Microsoft store.
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
Hi boiler,boiler wrote: ↑11 Apr 2021, 11:53In case you are not aware of this, Microsoft has updated the old File Manager to work on Windows 10, and it is available for download at the Microsoft store.
Thanks for your reply. Yes, I know that, but I don't like it.
Can you or anyone else answer my questions?
Thanks!!
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
This doesn't use COM, but it does what you describe when using the up/down arrow keys to navigate the left pane in File Explorer:
If you want to use COM, this reference from Microsoft may help.
Code: Select all
#If ExplorerTreeFocus()
$Up::Send, {Up}{Enter}
$Down::Send, {Down}{Enter}
ExplorerTreeFocus() {
ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe
ToolTip, % "Focused control: " FocusedCtrl
return FocusedCtrl = "SysTreeView321"
}
If you want to use COM, this reference from Microsoft may help.
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
Hi boiler,boiler wrote: ↑12 Apr 2021, 10:38This doesn't use COM, but it does what you describe when using the up/down arrow keys to navigate the left pane in File Explorer:Code: Select all
#If ExplorerTreeFocus() $Up::Send, {Up}{Enter} $Down::Send, {Down}{Enter} ExplorerTreeFocus() { ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe ToolTip, % "Focused control: " FocusedCtrl return FocusedCtrl = "SysTreeView321" }
If you want to use COM, this reference from Microsoft may help.
Thanks again for your solution! Yes, this is a nice and simple solution, but not practical at least to me. Very often I need to quickly walk through the folder list (on the navigation pane) from top to bottom or from bottom to top by pressing and holding the up/down keys, but the solution respond too slow.
Is there any other solutions?
Also, thanks for the COM reference. But I'm afraid I don't have enough knowledge to understand that. For example, how can AHK link to that. If you could point out some simpler tutorials, that'd be great!!
Re: Windows Explorer: How to open the folder when I navigate on the left pane? Topic is solved
@boiler: Cool indeed!
@leihu: Try this version:
@leihu: Try this version:
Code: Select all
#MaxThreads 1
#If ExplorerTreeFocus()
~Up::
~Down::SetTimer, OpenPane, -250 ; you can adjust this value (e.g.: -150 to -500)
ExplorerTreeFocus() {
ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe
ToolTip, % "Focused control: " FocusedCtrl
return FocusedCtrl = "SysTreeView321"
}
OpenPane() {
Send, {Enter}
}
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
Oh, by the way, I just noticed I left the ToolTip in there. It was just for verification while I wrote it, so it should be removed in the event you find rommmcek’s nice modification to your liking.
Regarding the COM approach, I might take a shot at it later, but often those things can be tricky. Perhaps another member who is better at using those methods will reply.
Regarding the COM approach, I might take a shot at it later, but often those things can be tricky. Perhaps another member who is better at using those methods will reply.
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
@rommmcekrommmcek wrote: ↑12 Apr 2021, 11:38@boiler: Cool indeed!
@leihu: Try this version:Code: Select all
#MaxThreads 1 #If ExplorerTreeFocus() ~Up:: ~Down::SetTimer, OpenPane, -250 ; you can adjust this value (e.g.: -150 to -500) ExplorerTreeFocus() { ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe ToolTip, % "Focused control: " FocusedCtrl return FocusedCtrl = "SysTreeView321" } OpenPane() { Send, {Enter} }
@boiler
Hi There!
Yes! This one works even though it's not ideal. If I set the number too small, it's not smooth enough; if it's too big, it delays too much when I release the keys. But it works. It's usable! BTW, I also added Left and Right as I often press the left key to quickly jump to parent folders.
@boiler as for the COM method, sample code would be great. But if you can point me to some documents, that's also helpful as I cannot find the starting point to get started. BTW, I did COM programming in C/C++ for a year or so about ten years ago.
If anyone else can help with COM, please!
Finally, thank you both. You're great!!
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
Further improvement:
Code: Select all
#If ExplorerTreeFocus()
~Up::
~Down::SetTimer, OpenPane, -250 ; set to your liking
ExplorerTreeFocus() {
ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe
;ToolTip, % "Focused control: " FocusedCtrl
return FocusedCtrl = "SysTreeView321"
}
OpenPane() {
if !GetKeyState("Up", "P") && !GetKeyState("Down", "P")
Send, {Enter}
}
Re: Windows Explorer: How to open the folder when I navigate on the left pane?
rommmcek wrote: ↑15 Apr 2021, 14:38Further improvement:Code: Select all
#If ExplorerTreeFocus() ~Up:: ~Down::SetTimer, OpenPane, -250 ; set to your liking ExplorerTreeFocus() { ControlGetFocus, FocusedCtrl, ahk_class CabinetWClass ahk_exe explorer.exe ;ToolTip, % "Focused control: " FocusedCtrl return FocusedCtrl = "SysTreeView321" } OpenPane() { if !GetKeyState("Up", "P") && !GetKeyState("Down", "P") Send, {Enter} }
@rommmcek
Hi rommmcek,
Sorry, just saw your improved post. Thank you very much!!
HL
Who is online
Users browsing this forum: filipemb and 278 guests