Seite 1 von 1

Titel des aktiven Fensters

Verfasst: 25.04.2011 19:16
von Angelo
Hallo,

ich habe MS-Word geöffnet und die Titelzeile des Word-Fensters lautet beispielsweise "test.doc - Microsoft Word". Wie kann ich dann mittles PB diese Titelzeile auslesen? Mit PB-Funktionen wie GetWindowTitle() geht es ja nicht, weil diese Funktionen sich auf PB-Anwendungen beziehen. Mit den Api-Befehlen GetForegroundWindow() zur handle-Bestimmung und anschließendem GetWindowText() bin ich auch nicht weitergekommen (das durch GetForegroudWindow ausgespuckte Handle stimmt nicht mit dem Handle überein, welches FindWindow_(0, "test.doc - Microsoft Word") liefert). Wäre toll, wenn irgendjemand noch eine Idee hat.

Re: Titel des aktiven Fensters

Verfasst: 25.04.2011 19:22
von RSBasic
Vielleicht hilft dieser Code weiter:

Code: Alles auswählen

EnableExplicit

Procedure.s GetForegroundWindowTitle()
  Protected hwnd
  Protected Length
  Protected *Buffer
  
  hwnd=FindWindow_("OpusApp",#Null)
  Length = GetWindowTextLength_(hwnd)+1
  *Buffer = AllocateMemory(Length)
  GetWindowText_(hwnd,*Buffer,Length)
  
  ProcedureReturn PeekS(*Buffer)
EndProcedure

MessageRequester("","Titel: "+GetForegroundWindowTitle(),0)
Bzw. versuch mal mit dem Klassenname "OpusApp". (Getestet mit Word 2003)

Re: Titel des aktiven Fensters

Verfasst: 25.04.2011 19:29
von Angelo
Vielen Dank, RSBasic! - Dein Code funktioniert einwandfrei. Den Klassennamen für Word kannte ich nicht. :oops:
Wieder etwas dazu gelernt! :D

Re: Titel des aktiven Fensters

Verfasst: 25.04.2011 19:35
von RSBasic
Um beispielsweise den Klassennamen zu ermitteln, kann ich dir folgende Anwendungen empfehlen, falls du weitere Sachen in diese Richtung machen möchtest:
ShoWin: http://www.rsbasic.de/temp/ShoWin.exe
WinSpy: http://www.rsbasic.de/temp/WinSpy.exe

Re: Titel des aktiven Fensters

Verfasst: 25.04.2011 19:58
von Angelo
Super!