windows explorer auslesen ??

Anfängerfragen zum Programmieren mit PureBasic.
shutdown27
Beiträge: 15
Registriert: 28.08.2010 15:58
Kontaktdaten:

windows explorer auslesen ??

Beitrag von shutdown27 »

gibt es eine möglichkeit wie ich herausfinden kann wo fenster auf dem bildschirm sind

weil ich habe ein durchsichtiges fenster mit einem character drin und würde diesen gerne auf den
fenstern rumlaufen lassen

danke für jede antwort :)
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: windows explorer auslesen ??

Beitrag von edel »

Du koenntest EnumWindows_ dafuer nehmen.

Beispiel :

Code: Alles auswählen

Procedure EnumWindowsProc(hwnd,lParam)  
  Protected style.i
  Protected rc.rect
  Protected buffer.s = Space(255)
  
  style = GetWindowLong_(hwnd, #GWL_STYLE) 
  
  If style & #WS_VISIBLE And Not style & #WS_CHILD
    GetWindowRect_(hwnd, rc)        
    
    Debug rc\right - rc\left
    Debug rc\bottom - rc\top
    Debug "-----"
    
  EndIf
  
  ProcedureReturn #True
EndProcedure


EnumWindows_(@EnumWindowsProc(), 0)
shutdown27
Beiträge: 15
Registriert: 28.08.2010 15:58
Kontaktdaten:

Re: windows explorer auslesen ??

Beitrag von shutdown27 »

ja das hat mir schonmal geholfen die koordinaten hab ich jez danke ^^

kann ich auch den namen von dem fenster irgendwie bekommen?
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: windows explorer auslesen ??

Beitrag von HeX0R »

shutdown27
Beiträge: 15
Registriert: 28.08.2010 15:58
Kontaktdaten:

Re: windows explorer auslesen ??

Beitrag von shutdown27 »

wow danke
heisst dieses _ das es aus der win api is oder so??

sorry bin noch n anfänger
wie benutze ich das?

ich habe das so in das script eingefügt:

Code: Alles auswählen

Procedure EnumWindowsProc(hwnd,lParam)  
  Protected style.i
  Protected rc.rect
  Protected buffer.s = Space(255)
  
  style = GetWindowLong_(hwnd, #GWL_STYLE) 
  
  If style & #WS_VISIBLE And Not style & #WS_CHILD
    GetWindowRect_(hwnd, rc)        
    
    Debug rc\right - rc\left
    Debug rc\bottom - rc\top
    Debug lol
    If MessageRequester("blabla",Str(rc\left)+","+Str(rc\top)+","+Str(rc\right)+","+Str(rc\bottom)+","+Str(rc)+","+Str(lol)+" - "+Str(GetWindowText_(hwnd,1,-1)),1)=2
      End
    EndIf
  EndIf
  
  ProcedureReturn #True
EndProcedure
aber es gibt immer 0 aus
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: windows explorer auslesen ??

Beitrag von HeX0R »

shutdown27 hat geschrieben:wow danke
heisst dieses _ das es aus der win api is oder so??
Genau
shutdown27 hat geschrieben: sorry bin noch n anfänger
wie benutze ich das?
Auch von Anfängern kann man erwarten, dass sie sich das was jemand verlinkt auch durchlesen.
Dort steht nirgends, dass man den Befehl mit 1,-1 als Parameter füttern soll...

Code: Alles auswählen

Procedure EnumWindowsProc(hwnd, lParam)
	Protected style
	Protected rc.rect
	Protected buffer.s = Space(255)

	style = GetWindowLongPtr_(hwnd, #GWL_STYLE)

	If style & #WS_VISIBLE And Not style & #WS_CHILD
		GetWindowRect_(hwnd, rc)
		GetWindowText_(hwnd, @buffer, Len(buffer))

		Debug buffer
		Debug rc\right - rc\left
		Debug rc\bottom - rc\top
		Debug "-----"

	EndIf

	ProcedureReturn #True
EndProcedure


EnumWindows_(@EnumWindowsProc(), 0)
Antworten