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

aktuellen Fenstertitel auslesen

Beitragvon draci » 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

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

Wie man richtig Fragen stellt
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » 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

Beitragvon fred.reichbier » 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

Beitragvon Python 47 » 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: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » 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

Beitragvon DER Olf » 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

Beitragvon mulder » 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

Beitragvon draci » 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



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



Wie man richtig Fragen stellt
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » 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

Beitragvon draci » 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



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



Wie man richtig Fragen stellt
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » 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/
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder