Seite 1 von 1

Wurde ein neues Fenster geöffnet?

Verfasst: 15.06.2006 18:07
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! /:->

Verfasst: 15.06.2006 18:20
von PBZecke
Vieleicht doch, mit Findwindow findest Du das handle des Hauptfensters der
Anwendung, und mit FindWindowEx suchst Du dann nach deren Childwindows

Verfasst: 15.06.2006 18:31
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!

Verfasst: 15.06.2006 18:49
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")