- 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
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)