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.
Titel des aktiven Fensters
Titel des aktiven Fensters
PB 5.50; Win 7
Re: Titel des aktiven Fensters
Vielleicht hilft dieser Code weiter:
Bzw. versuch mal mit dem Klassenname "OpusApp". (Getestet mit Word 2003)
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)
Re: Titel des aktiven Fensters
Vielen Dank, RSBasic! - Dein Code funktioniert einwandfrei. Den Klassennamen für Word kannte ich nicht.
Wieder etwas dazu gelernt!

Wieder etwas dazu gelernt!

PB 5.50; Win 7
Re: Titel des aktiven Fensters
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
ShoWin: http://www.rsbasic.de/temp/ShoWin.exe
WinSpy: http://www.rsbasic.de/temp/WinSpy.exe