Titel des aktiven Fensters auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Re: Titel des aktiven Fensters auslesen

Beitrag von Angelo »

Meine Lösung ist nun, dass ich durch die Simualtion eines Mausklicks das Fenster, das im Vordergrund ist, sozusagen als aktives Fenster wiederherstelle. Und dann funktioniert der Code von RSBasic einwandfrei:

Code: Alles auswählen

mouse_event_(#MOUSEEVENTF_LEFTDOWN,0,0,0,0)

Delay(100)

CurrentWindow = GetForegroundWindow_()
CurrentWindowLength = GetWindowTextLength_(CurrentWindow)+1
WindowTitel$ = Space(CurrentWindowLength)
GetWindowText_(CurrentWindow, @WindowTitel$, CurrentWindowLength)
MessageRequester("Titel des aktiven Fensters", WindowTitel$)
PB 5.50; Win 7
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Titel des aktiven Fensters auslesen

Beitrag von Imhotheb »

vielleicht hilft dir das weiter:

Code: Alles auswählen

EnableExplicit

Procedure.s GetWindowTitle_(hwnd)
  
  If IsWindow_(hwnd)  ; prüfen ob es ein Window-Handle ist
    Protected temp.s
    Protected length = GetWindowTextLength_(hwnd)+1
    temp = Space(length)
    GetWindowText_(hwnd, @temp, length) 
    ProcedureReturn temp
  Else
    ProcedureReturn ""    
  EndIf
  
EndProcedure


;Define hwnd = GetActiveWindow_()
Define i, result.s, hwnd = GetForegroundWindow_()


For i = 1 To 5
  result + Str(i) + ". Window-Handle: " + Str(hwnd) + " / Window-Titel: " + GetWindowTitle_(hwnd) + Chr(10)
  hwnd = GetWindow_(hwnd, #GW_HWNDPREV) ; hwnd auf letztes Fenster setzen (Z-Order)
  
  If hwnd < 1
    result + Str(i+1) + ". Window-Handle ist 0"
    Break
  EndIf
Next

MessageRequester("Window-Handles", result)
weil einfach einfach einfach ist ... mach' ich es anders
Antworten