Wurde ein neues Fenster geöffnet?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Wurde ein neues Fenster geöffnet?

Beitrag von roherter »

Wie kann ich herausbekommen ob ein anderes Programm ein fenster öffnet,dh. ein Programm welches nicht über mein Programm gestartet wurde.

Findwindow kenne ich aber das hilft mir hier ja noch nicht weiter! /:->
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag von PBZecke »

Vieleicht doch, mit Findwindow findest Du das handle des Hauptfensters der
Anwendung, und mit FindWindowEx suchst Du dann nach deren Childwindows
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich kenne EnumWindows_() nicht, denke aber das man damit alle Windows durchgehen kann und würde ähnlich wie PBKlette arbeiten: Speicher doch alle Fenster in einer LinkedList und vergleiche laufend!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

> ich kenne EnumWindows_() nicht

jetzt schon: :lol: :lol:

Code: Alles auswählen



Procedure.l EnumProcedure(WindowHandle.l,Parameter.l)
  Shared EnumHandle.l
  Shared EnumName.s
  
  Title.s = Space(200)
  GetWindowText_(WindowHandle,@Title,200)
  
  If FindString(Title,EnumName,1)
    EnumHandle = WindowHandle
    ProcedureReturn 0  ; stoppt die suche
  Else
    EnumHandle = 0
    ProcedureReturn 1 ; lässt sie weiterlaufen
  EndIf
  
EndProcedure

Procedure FindWindow(Name.s)
  Shared EnumName
  Shared EnumHandle
  EnumName = Name
  EnumWindows_(@EnumProcedure(),0)
  ProcedureReturn EnumHandle
EndProcedure


Debug FindWindow("PureBasic")
Bild
Antworten