aktuellen Fenstertitel auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

Dienstag 22. Januar 2008, 17:35

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
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds

[url]http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a[/url]

[url=http://www.tty1.net/smart-questions_de.html]Wie man richtig Fragen stellt[/url]
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Dienstag 22. Januar 2008, 18:07

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 ;)
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Dienstag 22. Januar 2008, 19:26

Mit welchem Desktop denn? Für Gnome kannst du dafür wnck verwenden.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Dienstag 22. Januar 2008, 19:31

Eventuell geht es auch hiermit:

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

Thomas :-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 22. Januar 2008, 19:33

Wenn man mit einem Toolkit programmiert, bietet dieses idR Funktionen dafür an (a la getTitle() o.ä.)! Evtl. wollte er darauf hinaus?
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Mittwoch 23. Januar 2008, 16:46

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.
mulder
User
Beiträge: 49
Registriert: Montag 15. Oktober 2007, 10:36
Wohnort: nürnberg

Donnerstag 24. Januar 2008, 15:34

mal so als kurzen einwurf ..

gibt es fuer pywinauto eine annehmbare docu???
" schlimmer als stress ist, keinen zu haben"
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

Donnerstag 24. Januar 2008, 16:02

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:
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds

[url]http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a[/url]

[url=http://www.tty1.net/smart-questions_de.html]Wie man richtig Fragen stellt[/url]
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Donnerstag 24. Januar 2008, 21:55

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
Benutzeravatar
draci
User
Beiträge: 53
Registriert: Dienstag 26. September 2006, 18:13

Samstag 8. März 2008, 16:34

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()) 
Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. - Linus Torvalds

[url]http://groups.google.com/group/pt.comp.so.linux/msg/9eb7db59e32fe08a[/url]

[url=http://www.tty1.net/smart-questions_de.html]Wie man richtig Fragen stellt[/url]
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Samstag 8. März 2008, 17:29

DER Olf hat geschrieben:Dazu bietet bspw. die winapi die oben genannten (recht komfortablen) Funktionen.
Was ist da dran besonders komfortabel?
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 8. März 2008, 17:56

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 ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten