Mein allerallererstes Skript... nix besonderes, aber ich dachte mir vielleicht kann's jemand gebrauchen.
Habe eine Möglichkeit gesucht 2 Explorer-Fenster am Bildschirm nebeneinander anzuordnen.... klar, kenn ich Total Commander und diverse andere Tools...
Aber mittlererweile hab ich mich schon so an den Standard-Windows-Explorer (mit all seinen Makken) gewöhnt, dass mir diese rudimentäre Lösung hier meisten reicht:
Spoiler anzeigen
; Win-Explorer im Pfad "Bilbiotheken" (Standard bei Win7)
$links = "\explorer.exe"
; Explorer im Pfad Computer
$rechts = "\explorer.exe /root,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Opt("WinTitleMatchMode", 4)
[/autoit] [autoit][/autoit] [autoit]; BlockInput(1)
Run(@WindowsDir & $links)
WinWaitActive("[Class:CabinetWClass]")
$title = WinGetTitle("[Class:CabinetWClass]")
WinSetTitle($title, "", $title & " - links")
Send("{LWINDOWN}{LEFT}")
Send("{LWINUP}")
Run(@WindowsDir & $rechts)
Sleep(2000)
WinWaitActive("[Class:CabinetWClass]")
$title = WinGetTitle("[Class:CabinetWClass]")
WinSetTitle($title, "", $title & " - rechts")
Send("{LWINDOWN}{RIGHT}")
Send("{LWINUP}")
; BlockInput(0)
Das Ergbnis sollte dann so aussehen:
Spoiler anzeigen
[Blockierte Grafik: http://oi52.tinypic.com/2uzt1mo.jpg]
Blöderweise wird der Datei-Explorer in Windows standardmäßig als ein Prozess gestartet und die Fenster-Titel entsprechen den Pfaden, die gerade angezeigt werden...
Das macht es ein bisschen schwieriger... das wurde schon mal hier besprochen, ohne wirklich zufriedenstellende Lösung...
Habe die in Windows 7 neu eingeführte Tastenkombination (WIN + pfeil links od. rechts) verwendet... daher funktioniert es auch nur mit Win7... jaja, total n00big
Ich erlaube mir - weil's hier grad so gut rein passt, die viel elegantere Lösung von BugFix aus einem dem oben gennanten Thread nochmal zu zitieren:
Spoiler anzeigen
#include <Array.au3>
Opt("WinTitleMatchMode", 4)
Local $WinList = WinList("CLASSNAME=ExploreWClass")
Local $count = $WinList[0][0], $ListOld, $aHwnd[2], $j = 0
If $count Then $ListOld = $WinList
ShellExecute("explorer.exe")
ShellExecute("explorer.exe")
Do
$WinList = WinList("CLASSNAME=ExploreWClass")
Sleep(50)
Until $WinList[0][0] = $count +2
Opt("WinTitleMatchMode", 1) ; wichtig, sonst können die Window Funcs nicht mit dem Handle arbeiten!
If $count Then
For $i = 1 To $WinList[0][0]
_ArraySearch($ListOld, $WinList[$i][1], 0, 1, 0, 0, 1, 1)
If @error Then
$aHwnd[$j] = $WinList[$i][1]
$j = 1
EndIf
Next
Else
$aHwnd[0] = $WinList[1][1]
$aHwnd[1] = $WinList[2][1]
EndIf
WinMove($aHwnd[0],"",0,0,@DesktopWidth/2,@DesktopHeight-480-60) ; left
WinMove($aHwnd[1],"",@DesktopWidth/2,0,@DesktopWidth/2,@DesktopHeight-480-60) ; right
Die funktioniert bei mir jedoch nur, wenn ich statt ExploreWClass "CabinetWClass" verwende, also
Local $WinList = WinList("CLASSNAME=CabinetWClass")
Sobald ich das Skript ein zweites Mal ausführe, funktioniert das bei mir nicht mehr...
Bei der Lösung mit WIN+pfeiltaste kann ich das Skript auch mehrmals ausführen mit dem gewünschten Ergebnis.