Seite 1 von 1

aktuellen Fenstertitel auslesen

Verfasst: Dienstag 22. Januar 2008, 17:35
von draci
Hi Forum!
Ich möchte den Titel des Aktuellen Fensters (momentan im Fokus) auslesen.
(Ich meine ein fremdes Fenster ! )

Weiß jemand wie ichb das möglichst einfach mit Python machen kann?

draci :D

Verfasst: Dienstag 22. Januar 2008, 18:07
von DER Olf
Ja, ist sogar ziemlich einfach.
Wie gut kennst du dich mit win32 Programmierung aus?

Auf codeproject.com findest du einige Beispiele wie man sowas macht.
(manko: sind fast alle in C++, seltener C, manchmal auch C#)
Du brauchst auf jeden Fall die win32 extentions für Python.

gruß, olf

Edit: Natürlich vorrausgesetzt, du benutzt Windows. Ansonsten wirst du (unter Linux/UNIX) auf die XLib zurückgreifen müssen.

Falls du doch windows verwendest brauchst du folgende Funktionen:

win32gui.GetCursorPos
win32gui.WindowFromPoint
win32gui.GetWindowText

Viel Erfolg ;)

Verfasst: Dienstag 22. Januar 2008, 19:26
von fred.reichbier
Mit welchem Desktop denn? Für Gnome kannst du dafür wnck verwenden.

Verfasst: Dienstag 22. Januar 2008, 19:31
von Python 47
Eventuell geht es auch hiermit:

http://pypi.python.org/pypi/pywinauto/0.3.7

Verfasst: Dienstag 22. Januar 2008, 19:33
von Hyperion
Wenn man mit einem Toolkit programmiert, bietet dieses idR Funktionen dafür an (a la getTitle() o.ä.)! Evtl. wollte er darauf hinaus?

Verfasst: Mittwoch 23. Januar 2008, 16:46
von DER Olf
Hyperion hat geschrieben:Wenn man mit einem Toolkit programmiert, bietet dieses idR Funktionen dafür an (a la getTitle() o.ä.)! Evtl. wollte er darauf hinaus?
Korrekt lesen ;)
Ich möchte den Titel des Aktuellen Fensters (momentan im Fokus) auslesen.
(Ich meine ein fremdes Fenster ! )
in der Regel kommst mit einem Toolkit bei fremden Fensters nich soo weit, wobei ich mir vorstellen kann, dass wxWidgets da einiges Anbieten kann und schon "weiter" ins System eindringen kann, d.h. die Adresse oder ID eines beliebigen Fensters (aus einem fremden Prozess) erhalten. Dazu bietet bspw. die winapi die oben genannten (recht komfortablen) Funktionen.

Verfasst: Donnerstag 24. Januar 2008, 15:34
von mulder
mal so als kurzen einwurf ..

gibt es fuer pywinauto eine annehmbare docu???

Verfasst: Donnerstag 24. Januar 2008, 16:02
von draci
Danke für die Antworten!
Ich verwende Windows XP :oops: aber wenigstens kein Vista :D

Wenn ich's hin bekomme, poste ich wie's geht!!!

Draci

:wink:

Verfasst: Donnerstag 24. Januar 2008, 21:55
von DER Olf
langeweile...

Code: Alles auswählen

import win32gui

pt = win32gui.GetCursorPos() # mausposition auf dem screen
hwnd = win32gui.WindowFromPoint(pt) # hol dir das handle des fensters ;)
if hwnd != 0: # gueltig?
	title = win32gui.GetWindowText(hwnd) # text holen is ziemlich einfach
	print "Handle: 0x%x" % hwnd
	print "Titel: %s" % title
das ganze sollte natürlich schon in ner schleife sein oder in nem Timer.

grüße, olf

Verfasst: Samstag 8. März 2008, 16:34
von draci
Sorry, hab nicht mehr dran gedacht :oops:
Reichlich spät, aber vielleicht hilft es mal jemandem :wink:

Code: Alles auswählen

import win32gui
titel=win32gui.GetWindowText(win32gui.GetForegroundWindow()) 

Verfasst: Samstag 8. März 2008, 17:29
von birkenfeld
DER Olf hat geschrieben:Dazu bietet bspw. die winapi die oben genannten (recht komfortablen) Funktionen.
Was ist da dran besonders komfortabel?

Verfasst: Samstag 8. März 2008, 17:56
von Leonidas
birkenfeld hat geschrieben:Was ist da dran besonders komfortabel?
Im Gegensatz zum Rest der Win API wird einem da nicht sofort schlecht. Das ist für WinAPI-Verhältnisse komfortabel ;)