Jump to content
Sign in to follow this  

Windows Explorer - Open folder in new window with middle mouse click

Recommended Posts



I'm using the software WindowTabs and would like to open a folder in a new window.

WindowTabs then makes a new tab out of that window.

This would be similar behavior like in firefox.

My question is, how can I can open a folder in a new window with a wheelclick (middle mouse button).

Can I emulate the string + double click?

Can I use the windows api, due that I don't have to emulate something?


Share this post

Link to post
Share on other sites

You could just Run() or ShellExecute() an explorer.exe commandline:

EXPLORER.EXE [/n][/e][,/root,<object>][[,/select],<sub object>]

/n: Opens a new window in single-paned (My Computer) view for each item

selected, even if the new window duplicates a window that is

already open.

/e: Uses Windows Explorer view. Windows Explorer view is most similar

to File Manager in Windows version 3.x. Note that the default view

is Open view.

/root,<object>: Specifies the root level of the specified view. The

default is to use the normal namespace root (the

desktop). Whatever is specified is the root for the

display. Can be a UNC network path.

/select,<sub object>: Specifies the folder to receive the initial

focus. If "/select" is used, the parent folder

is opened and the specified object is selected.


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post

Link to post
Share on other sites

#include <WinAPI.au3>
#include <GuiListView.au3>

HotKeySet('{ESC}', '_EXIT')

Global Const $tagMSLLHOOKSTRUCT = 'int X;int Y;uint;uint;uint;ulong_ptr'
Global Const $WM_MOUSEMOVE      = 0x0200
Global Const $WM_LBUTTONDOWN             = 0x0201
Global Const $WM_LBUTTONUP                  = 0x0202
Global Const $WM_LBUTTONDBLCLK     = 0x0203
Global Const $WM_RBUTTONDOWN             = 0x0204
Global Const $WM_RBUTTONUP                  = 0x0205
Global Const $WM_RBUTTONDBLCLK              = 0x0206
Global Const $SHELLDLL_DefView        = "SHELLDLL_DefView"

Dim $hMHook, $pMHook, $hHook
Dim $iDiff = TimerInit()

$hMHook = DllCallbackRegister('LowLevelMouseProc', 'long', 'int;wparam;lparam')
$pMHook = DllCallbackGetPtr($hMHook)

$hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, $pMHook, _WinAPI_GetModuleHandle(0))

While 1

Func _EXIT()

Func OnAutoItExit()

Func LowLevelMouseProc($iCode, $iwParam, $ilParam)
    Local $tMSLLHOOKSTRUCT = DllStructCreate($tagMSLLHOOKSTRUCT, $ilParam)
    Local $hWnd
    If $iCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $iCode, $iwParam, $ilParam)
    If $iwParam = 0x0207 Then
            $hWnd = _WinAPI_WindowFromPoint($tMSLLHOOKSTRUCT)
            If _WinAPI_GetClassName(_WinAPI_GetParent($hWnd)) = $SHELLDLL_DefView And _
                _WinAPI_IsClassName($hWnd, $__LISTVIEWCONSTANT_ClassName) Then
                Local $avArray = _GUICtrlListView_HitTest($hWnd)
                If $avArray[0] > -1 Then
                    $filename=_GUICtrlListView_GetItemText($hWnd, $avArray[0])
                ;   if Stringright($filename,3)="au3" then

                        if ControlGetFocus('Program Manager','') = "SysListView321" then ShellExecute("C:\windows\explorer.exe",'"'&@DesktopDir&$filename&'"')
                        if ControlGetFocus("[class:ExploreWClass]") = "SysListView321" or ControlGetFocus("[class:CabinetWClass]")= "SysListView321"  then ShellExecute("C:\windows\explorer.exe",'"'&ControlGetText("", "", "Edit1")&$filename&'"')
                        ConsoleWrite(_GUICtrlListView_GetItemText($hWnd, $avArray[0]) & @LF)
                        return 1
                ;   EndIf
    Return _WinAPI_CallNextHookEx($hHook, $iCode, $iwParam, $ilParam)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.