Hallo,
Gibt es eigentlich eine Möglichkeit rauszufinden welche Fenster grad auf dem desktop offen sind, unter win XP? (ich bräcuhte am besten eine Liste mit den titeln der fenster...)
Danke,
jo
offene fenster unter XP?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Schau mal in sleepplayer.py in die Klasse ``PlayerController``. Dort wird ``win32gui.EnumWindows`` verwendet um in ``_enum`` die hWnd und die PID eines bestimmten Fensters zu bekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Code: Alles auswählen
import ctypes
hwnd = None
while True:
hwnd = ctypes.windll.user32.FindWindowExA(None, hwnd, None, None)
if hwnd == 0:
break
else:
val = u"\0" * 1024
ctypes.windll.user32.GetWindowTextW(hwnd, val, len(val))
val = val.replace(u"\000", u"")
if val:
print repr(val)
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Naja, C-APIs "direkt" über ctypes anzusprechen ist zwar schnell, kann aber halt nicht pythonisch sein.
Strings kannst du dort nun mal nicht anders zurückgeben.
Strings kannst du dort nun mal nicht anders zurückgeben.
Hm, nachdem es ctypes anscheinend nicht für py 2.5 gibt hab ich mir mal pythonwin angeguckt - aber ich finde einfach keine dokumentation dazu, hat da zufällig einer eine, oder einen Link??
Aber schonmal danke für die Tips!
Gruss,
Jo
Aber schonmal danke für die Tips!
Gruss,
Jo
Ich möchte, nachdem ich ein bestimmtes Fenster gefunden habe (eine Dialog Box), diese bearbeiten, d.h. ich würde gerne Einstellungen an diesem Dialog Feld vornehmen. Zum Beispiel eine Check-Box aktivieren, den Fokus auf einen anderen Button setzen um die Box mit diesem Button zu beenden. Also einen kleinen Dialog modifizieren und sofort wieder beenden, so dass der User möglichst wenig davon mitbekommt.
Schon mal danke im vorraus....
Schon mal danke im vorraus....
Mh, liest sich ein bisschen wie eine Bestellung
Aber auch hier nützt ctypes....
it's magic
PS: Willkommen im Forum !
Aber auch hier nützt ctypes....
Code: Alles auswählen
In [8]: import ctypes
In [9]: ctypes.windll.user32.SetCursorPos(100, 100)
PS: Willkommen im Forum !
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Bestellung? Dann rück mal raus mit deiner Adresse für die Rechnung!jo_hb hat geschrieben:Naja, danke für den Hinweis. Danke auch für die Bestellung von Tython, das wäre nämlich direkt auch meine nächste Frage gewesen...
Also ich hab dieses böse Wort nur wegen...
Gruss,
Jo
...benutzt. Würde nie auf die Idee kommen meine Fragen hier als Bestellung zu verstehen und danke dir nochmal für deine sehr hilfreichen tips!Zap hat geschrieben:Mh, liest sich ein bisschen wie eine Bestellung
Gruss,
Jo
Ich glaube ich brauche nochmal Hilfe in dieser Sache: Die Liste, die ich mit dem Script von weiter oben bekomme ist ja endlos lang - wie finde ich denn raus, welche davon wirkliche 'Fenster' sind?
Das Fenster dass ich nämlich suche gibt es auf meinem Bildschirm nur einmal, in der Liste taucht der Name / text des Fensters aber 14 mal auf. Von dem auf meinem Schirm müsste ich dann wissen WO auf dem Bildschirm es sich befindet, und wie gross es ist. Hab mich jetzt schon eine ganze Weile damit beschäftigt aber ich kriegs nicht hin, veers, du scheinst da ja ziemlich fit zu sein, wär's machbar dass du dein Beispiel von unten um diese Funktionen erweiterst?
Das Fenster dass ich nämlich suche gibt es auf meinem Bildschirm nur einmal, in der Liste taucht der Name / text des Fensters aber 14 mal auf. Von dem auf meinem Schirm müsste ich dann wissen WO auf dem Bildschirm es sich befindet, und wie gross es ist. Hab mich jetzt schon eine ganze Weile damit beschäftigt aber ich kriegs nicht hin, veers, du scheinst da ja ziemlich fit zu sein, wär's machbar dass du dein Beispiel von unten um diese Funktionen erweiterst?
Das liegt einfach daran, das vieles was du siehst nicht nur *ein* fenster ist.jo_hb hat geschrieben:Ich glaube ich brauche nochmal Hilfe in dieser Sache: Die Liste, die ich mit dem Script von weiter oben bekomme ist ja endlos lang - wie finde ich denn raus, welche davon wirkliche 'Fenster' sind?
Das Fenster dass ich nämlich suche gibt es auf meinem Bildschirm nur einmal, in der Liste taucht der Name / text des Fensters aber 14 mal auf. Von dem auf meinem Schirm müsste ich dann wissen WO auf dem Bildschirm es sich befindet, und wie gross es ist. Hab mich jetzt schon eine ganze Weile damit beschäftigt aber ich kriegs nicht hin, veers, du scheinst da ja ziemlich fit zu sein, wär's machbar dass du dein Beispiel von unten um diese Funktionen erweiterst?
Viele Anwendungsfenster bestehen aus einer unmenge von subfenstern.
Auserdem würde ich für sowas eh pywinauto empfehlen.
moin moin,
hab da mal noch ne Frage. Und zwar verwende ich zur Bearbeitung eines Dialoges Watsup und pywinauto, das klappt auch völlig reibungslos, jedoch ist es mit beiden Modulen nicht möglich, eine Check-Box zu setzen.
Also entweder ich hab da etwas übersehen oder das ist einfach hier nicht mit drin, hat da jemand nen schlauen Tipp für mich?
Danke
hab da mal noch ne Frage. Und zwar verwende ich zur Bearbeitung eines Dialoges Watsup und pywinauto, das klappt auch völlig reibungslos, jedoch ist es mit beiden Modulen nicht möglich, eine Check-Box zu setzen.
Also entweder ich hab da etwas übersehen oder das ist einfach hier nicht mit drin, hat da jemand nen schlauen Tipp für mich?
Danke
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
Möglicherweise findet sich die Antwort hier: Suchergebnis in der Mailingliste.