Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

2 Explorerfenster nebeneinander anzeigen


  • Please log in to reply
3 replies to this topic
winniepuh77
  • Members
  • 31 posts
  • Last active: Apr 16 2015 09:41 PM
  • Joined: 24 Jan 2014

Hab mir mal ein kleines Script geschrieben, das 2 Arbeitsplatz-/Explorerfenster nebeneinander anzeigt.

Das Script funktioniert mit alles Auflösungen, da am Anfang die eingestellte Auflösung ausgelesen und dann mittels Variablen verarbeitet wird.

 

Die anzuzeigenden Verzeichnisse kann man oben im Code mit den Variablen fenster_links und fenster_rechts festlegen.

 

Für Anmerkungen / Verbesserungsvorschläge bin ich immer offen :-)

 

Hier das Script:

; -- 2 Explorerfenster nebeneinander anzeigen
; -- Das Script funktioniert mit allen Auflösungen



; -- Pfade zu den zu öffnenden Fenstern festlegen (kann beliebig geändert werden)

fenster_links := "c:\users"
fenster_rechts := "c:\my documents"


;-- Monitorgrösse bestimmen

SysGet, Mon1, Monitor, 1

fenster_links_hoehe := Mon1Bottom
fenster_rechts_start_x := (Mon1Right / 2)
fenster_rechts_hoehe := Mon1Bottom


; -- Variablen festlegen --

SetTitleMatchMode, 2


fenster_links_x = 0
fenster_links_y = 0
fenster_links_breite = %fenster_rechts_start_x%
fenster_links_hoehe = %fenster_links_hoehe%

fenster_rechts_x = %fenster_rechts_start_x%
fenster_rechts_y = 0
fenster_rechts_breite = %fenster_rechts_start_x%
fenster_rechts_hoehe = %fenster_rechts_hoehe%

; -- Variablen berechnen --

StringLen, pfadlaenge_fenster_links, fenster_links
StringLen, pfadlaenge_fenster_rechts, fenster_rechts

laenge_fenster_name_links := pfadlaenge_fenster_links - 3
laenge_fenster_name_rechts := pfadlaenge_fenster_rechts - 3

StringRight, fenster_name_links, fenster_links, laenge_fenster_name_links
StringRight, fenster_name_rechts, fenster_rechts, laenge_fenster_name_rechts



; -- Fenster links anzeigen

Run, %fenster_links%
Sleep 1000
WinMove, %fenster_name_links%, , %fenster_links_x%, %fenster_links_y%, %fenster_links_breite%, %fenster_links_hoehe%



; -- Fenster rechts anzeigen

Run, %fenster_rechts%
Sleep 1000
WinMove, %fenster_name_rechts%, , %fenster_rechts_x%, %fenster_rechts_y%, %fenster_rechts_breite%, %fenster_rechts_hoehe%




winniepuh77
  • Members
  • 31 posts
  • Last active: Apr 16 2015 09:41 PM
  • Joined: 24 Jan 2014

ok, ich sehe gerade, dass es scheinbar nicht immer funktioniert.  Also genauer gesagt, nicht bei jedem beliebigen Ordner/Verzeichnis Namen.

 

Das Fenster wird ztw, einfach nicht verschoben. Ich weiss nicht warum.

 

Vielleicht sieht ja jemand meinen Fehler und hat die Lösung dafür ??!!



nnnik
  • Members
  • 1625 posts
  • Last active: Apr 11 2017 02:13 PM
  • Joined: 28 Jul 2012
Du solltest lieber mit der HWND arbeiten.
Dann hast du das Problem der sich wechselnden Fenster namen nicht.
Du könntest allerdings auch mit ActiveX arbeiten was noch schöner wäre.

Visit the new forum ahkscript.org.

http://ahkscript.org


winniepuh77
  • Members
  • 31 posts
  • Last active: Apr 16 2015 09:41 PM
  • Joined: 24 Jan 2014

Du solltest lieber mit der HWND arbeiten.
Dann hast du das Problem der sich wechselnden Fenster namen nicht.
Du könntest allerdings auch mit ActiveX arbeiten was noch schöner wäre.

 

Vielen Dank :-)

 

Der Tipp mit HWND war klasse. Jetzt funktioniert alles perfekt. Dadurch hab ich sogar die ganzen Variablen der Fensternamen Erkennung eingespart .

 

Hab dann noch schnell eine Funktion eingebaut, die prüft, ob die anzuzeigenden Verzeichnisse überhaupt existieren (Falls man sich vertippt hat, oder das Verzeichnis auf dem PC mal gelöscht wir) . Falls eines der beiden Verzeichnisse nicht existiert, gibt's eine entsprechende MsgBox  und das Programm wird beendet

 

Es kommt jetzt kein harter Abbruch mit Fehlermeldung seitens AHK.

 

Hier das aktualisierte Script:

; -- 2 Explorerfenster nebeneinander anzeigen
; -- Das Script funktioniert mit allen Auflösungen


;-- Monitorgroesse bestimmen

SysGet, Mon1, Monitor, 1

fenster_links_hoehe := Mon1Bottom
fenster_rechts_start_x := (Mon1Right / 2)
fenster_rechts_hoehe := Mon1Bottom

SetTitleMatchMode, 2

; -- Hier stehen die anzuzeigenden Pfade

fenster_links := "C:\Users\"
fenster_rechts := "C:\"



;-- prüfen, ob die Pfade existieren --

IfNotExist, %fenster_links%
	{
    MsgBox, Das linke Verzeichnis existiert nicht.
	ExitApp
	}

IfNotExist, %fenster_rechts%
	{
    MsgBox, Das rechte Verzeichnis existiert nicht.
	ExitApp
	}


fenster_links_x = 0
fenster_links_y = 0
fenster_links_breite = %fenster_rechts_start_x%
fenster_links_hoehe = %fenster_links_hoehe%

fenster_rechts_x = %fenster_rechts_start_x%
fenster_rechts_y = 0
fenster_rechts_breite = %fenster_rechts_start_x%
fenster_rechts_hoehe = %fenster_rechts_hoehe%


; -- Fenster links anzeigen

Run, %fenster_links%
Sleep 1000

WinGet, AktivID, ID, A
WinMove, ahk_id %AktivID%, , %fenster_links_x%, %fenster_links_y%, %fenster_links_breite%, %fenster_links_hoehe%


; -- Fenster rechts anzeigen

Run, %fenster_rechts%
Sleep 1000

WinGet, AktivID, ID, A
WinMove, ahk_id %AktivID%, , %fenster_rechts_x%, %fenster_rechts_y%, %fenster_rechts_breite%, %fenster_rechts_hoehe%