2 Explorer horizontal/vertikal

    • Offizieller Beitrag

    Hi,
    um Dateien hin- und herzuschieben ist es oft notwendig 2 Explorerinstanzen zu öffnen.
    Da ich ungern die Fenster dann in der Größe anpasse und verschiebe, hab ich ein Skript geschrieben, das das erledigt.
    Ich rufe hier den Arbeitsplatz auf, das kann man natürlich anpassen und z.B. Eigene Dateien verwenden. Die CLSID dazu findet ihr in der Hilfe.
    Wird das Skript mit Parameter "/h" aufgerufen, werden die Fenster nebeneinander angeordnet auf voller Bildschirmgröße.
    Ohne Parameter (bzw. bei jedem anderen) werden die Fenster untereinander angeordnet.

    Spoiler anzeigen
    [autoit]

    Global $appHorizontal = False ; wenn True, horizontale Anordnung
    Global $aSize[3][5] ; [0]=Handle, [1]=Breite, [2]=Höhe, [3]=x, [4]=y
    $aSize[0][1] = @DesktopWidth
    $aSize[0][2] = @DesktopHeight
    If $CmdLine[0] > 0 Then
    If $CmdLine[1] = '/h' Then $appHorizontal = True
    EndIf
    If $appHorizontal Then
    $aSize[1][1] = @DesktopWidth/2
    $aSize[2][1] = @DesktopWidth/2
    $aSize[1][2] = @DesktopHeight
    $aSize[2][2] = @DesktopHeight
    $aSize[1][3] = 0
    $aSize[2][3] = @DesktopWidth/2
    $aSize[1][4] = 0
    $aSize[2][4] = 0
    Else
    $aSize[1][1] = @DesktopWidth
    $aSize[2][1] = @DesktopWidth
    $aSize[1][2] = @DesktopHeight/2
    $aSize[2][2] = @DesktopHeight/2
    $aSize[1][3] = 0
    $aSize[2][3] = 0
    $aSize[1][4] = 0
    $aSize[2][4] = @DesktopHeight/2
    EndIf
    Run ('Explorer.exe /n, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', '', @SW_HIDE)
    WinWaitActive('Arbeitsplatz')
    $aSize[1][0] = WinGetHandle('Arbeitsplatz')
    WinMove($aSize[1][0], '', $aSize[1][3], $aSize[1][4], $aSize[1][1], $aSize[1][2])
    WinSetTitle('Arbeitsplatz', '', 'Arbeitsplatz_1')
    Run ('Explorer.exe /n, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', '', @SW_HIDE)
    WinWaitActive('Arbeitsplatz')
    $aSize[2][0] = WinGetHandle('Arbeitsplatz')
    WinMove($aSize[2][0], '', $aSize[2][3], $aSize[2][4], $aSize[2][1], $aSize[2][2])
    WinSetTitle('Arbeitsplatz', '', 'Arbeitsplatz_2')
    WinSetState($aSize[1][0], '', @SW_SHOW)
    WinSetState($aSize[2][0], '', @SW_SHOW)

    [/autoit]
    • Offizieller Beitrag

    Hi,

    Spoiler anzeigen
    [autoit]

    Send('#m')
    _closeAllExplorer()
    ShellExecuteWait('explorer', @WindowsDir, '', '', @SW_MAXIMIZE)
    ShellExecuteWait('explorer', @ScriptDir, '', '', @SW_MAXIMIZE)
    Sleep(3000)
    DllCall("user32.dll", "int", "CascadeWindows", "int", 0, "int", 4, "int", 0, "int", 0, "int", 0); Cascade
    Sleep(3000)
    DllCall("user32.dll", "int", "TileWindows", "int", 0, "int", 1, "int", 0, "int", 0, "int", 0); Tile Horizontal
    Sleep(3000)
    DllCall("user32.dll", "int", "TileWindows", "int", 0, "int", 0, "int", 0, "int", 0, "int", 0); Tile Vertical
    Sleep(3000)
    _closeAllExplorer()

    Func _closeAllExplorer()
    Local $opt = Opt('WinTitleMatchMode', 4)
    Do
    until WinClose("[CLASS:ExploreWClass]") = 0 and WinClose("[CLASS:CabinetWClass]") = 0
    Opt('WinTitleMatchMode', $opt)
    EndFunc ;==>_closeAllExplorer

    [/autoit]

    Mega