PB versteht bestimmte API-befehle nicht !?!

Anfängerfragen zum Programmieren mit PureBasic.
Dr.Pixel
Beiträge: 90
Registriert: 12.08.2005 12:38

Beitrag von Dr.Pixel »

Leider kommt immer noch der gleiche Fehler:
[ERROR] Line: 5
[ERROR] Invalid memory access

Line 5: Class.s = Space(#BufferSize)


Warum gibt Pb hier einen Fehler aus und im Programm "AllWindowsBrowser.pb" aus dem Codearchiv gibt es keine Probleme?
Das muss ich nun wirklich nicht verstehen!
Vielleicht sollte man das Codearchiv aktualisieren,
denn ich hatte bei vielen Sourcecodes Probleme!

Gruss Dr. Pixel
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

das sollte nun aber funktionieren:

Code: Alles auswählen

#BufferSize = 2048

Procedure.s GetClassName(handle.l)
  Class.s = Space(#BufferSize)
  GetClassName_(handle, @Class, Len(Class))
  ProcedureReturn Left(Class, Len(Class))
EndProcedure

Procedure.s GetTitle(handle)
  Name.s = Space(#BufferSize)
  GetWindowText_(handle, @Name, Len(Name))
  ProcedureReturn Left(Name, Len(Name))
EndProcedure

Procedure EnumProc(handle.l, lParam.l)
  
  Class$ = GetClassName(handle)
  Title$ = GetTitle(handle)
  
  If lParam
    Debug "  Child: " + Title$ + " (" + Class$ + ")"
  Else
    Debug "Parent: " + Title$ + " (" + Class$ + ")"
  EndIf
   
  EnumChildWindows_(handle, @EnumProc(), 1)
  
  ProcedureReturn #True

EndProcedure


EnumWindows_(@EnumProc(), 0)
a²+b²=mc²
Dr.Pixel
Beiträge: 90
Registriert: 12.08.2005 12:38

Beitrag von Dr.Pixel »

Yep, klappt.
Danke Dir Kiffi.
Antworten