Seite 1 von 1

PureBasic to go & ChatGPT4o

Verfasst: 10.06.2024 18:04
von tft
Wie der eine oder andere mitbekommen hat.
Benutze ich als Unterstützung ChatGPT. Mittlerweile geht es ganz gut. Ohne eigenen Kenntnisse, die zur
Fehlerbehandlung benötigt werden. Kommt man aber nicht weit. Ich möchte euch ein Beispiel zeigen.

Ich habe das Problem gehabt. Das die Funktion FindWindow() plötzlich ständig meinte, das ein Fenster von mir
geöffnet sei.

Ich bin dem Problem hinterhergejagt und habe Folgendes festgestellt.

FindWindow() unterscheidet nicht, Gross- und Kleinschreibung. Es war noch der Explorer mit einem Fenster gleichen Namens offen. Ich habe dann mithilfe von ChatGPT einen Scanner für die Fensternamen und die Programmzugehörigkeit zusammengestellt. Den möchte ich euch nicht vorenthalten.

Gruss TFT

Code: Alles auswählen

; PureBasic Musterprogramm zur Ausgabe aller geöffneten Fenster und ihrer Programme in der Konsole
; mit einem geöffneten Fenster zur Sicherstellung des Loops

#MainWindow = 0
#WindowTitleLength = 256
#ProgramNameLength = 260

; Definieren der Konstanten
#PB_Process_QueryInformation = $0400
#PB_Process_VMRead = $0010

; Laden der psapi.dll Bibliothek
If OpenLibrary(0, "psapi.dll")
  Global GetProcessImageFileName_.i = GetFunction(0, "GetProcessImageFileNameW") ; Unicode-Version der Funktion
EndIf

Procedure EnumerateWindowsCallback(hwnd, lParam)
  Protected windowTitle.s = Space(#WindowTitleLength)
  Protected processID
  Protected processHandle
  Protected programName.s = Space(#ProgramNameLength)
  Protected exeName.s
  
  If GetWindowText_(hwnd, @windowTitle, #WindowTitleLength) > 0
    If windowTitle <> "Default IME" And windowTitle <> "MSCTFIME UI"
      GetWindowThreadProcessId_(hwnd, @processID)
      processHandle = OpenProcess_(#PB_Process_QueryInformation | #PB_Process_VMRead, #False, processID)
      
      If processHandle
        If CallFunctionFast(GetProcessImageFileName_, processHandle, programName, #ProgramNameLength) > 0
          ; Kürze den Pfadnamen auf den Namen der EXE-Datei
          exeName = GetFilePart(programName)
          PrintN("Fensterhandle: " + Str(hwnd) + ", Fenstername: " + windowTitle + ", Programm: " + exeName)
        EndIf
        CloseHandle_(processHandle)
      EndIf
    EndIf
  EndIf
  
  ProcedureReturn #True
EndProcedure

Procedure EnumerateWindows()
  PrintN("Liste der geöffneten Fenster und ihrer Programme:")
  EnumWindows_(@EnumerateWindowsCallback(), 0)
EndProcedure

Procedure MainLoop()
  Protected userInput.s
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
    
    ClearConsole()
    EnumerateWindows()
    
    Print("Drücken Sie die Eingabetaste, um die Liste zu aktualisieren oder 'q' zum Beenden: ")
    userInput = Input()
    If userInput = "q"
      End
    EndIf
    
  ForEver
EndProcedure

; Hauptprogramm
If OpenWindow(#MainWindow, 0, 0, 400, 300, "Hauptfenster", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If OpenConsole()
    MainLoop()
    CloseConsole()
  EndIf
  CloseWindow(#MainWindow)
EndIf

; Schließen der psapi.dll Bibliothek
CloseLibrary(0)

Code TFT & ChatGPT

Re: PureBasic to go & ChatGPT4o

Verfasst: 18.08.2024 20:31
von es_91
Ich bin neugierig. Kann ChatGPT PureBasic programmieren? Was schreibt man der KI?

Re: PureBasic to go & ChatGPT4o

Verfasst: 19.08.2024 10:31
von SMaag
Fehler im Programmcode!
hier die korrigierte Zeile: (man muss den Stringpointer übergeben, nicht den String)

Zeile 30 im Code

Code: Alles auswählen


; original
If CallFunctionFast(GetProcessImageFileName_, processHandle, programName, #ProgramNameLength) > 0
; korrigiert
If CallFunctionFast(GetProcessImageFileName_, processHandle, @programName, #ProgramNameLength) > 0


Re: PureBasic to go & ChatGPT4o

Verfasst: 19.08.2024 14:08
von es_91
es_91 hat geschrieben: 18.08.2024 20:31 Ich bin neugierig. Kann ChatGPT PureBasic programmieren? Was schreibt man der KI?
Hab's gerade ausprobiert. Ich bin arbeitslos. Bessergesagt, mein Hobby wurde deindividualisiert.

Vielleicht sollte das Forum eine KI-Ecke bekommen.

Früher hab ich meinen Vater gefragt, wie mp3 funktioniert. Nun steht das Buch des unendlichen Abgekupfertwissens im Android-Regal.

Muss mal meinen Pfarrer fragen ob das mit Gott OK ist. Oder ich frag einfach die KI...

Wozu bin ich eigentlich zur Schule gegangen?

Re: PureBasic to go & ChatGPT4o

Verfasst: 20.08.2024 00:03
von jacdelad
es_91 hat geschrieben: 19.08.2024 14:08 Vielleicht sollte das Forum eine KI-Ecke bekommen.
Oh Gott, nein! Wieso denken eigentlich so viele Leute, dass "KI" auf einmal unsere Programme schreiben kann?

Re: PureBasic to go & ChatGPT4o

Verfasst: 21.08.2024 11:22
von tft
Ich benutze KI als Unterstützung. Aber wirklich programmieren kann das scheinbar noch nicht. Wenn ich den Prompt gut schreibe. Also genau beschreibe was ich möchte. Inklusive Ausnahmen und Besonderheiten. Dann sind die Ergebnisse gut. Aber ich muss halt selber wissen, was geht und was nicht. Sonst bekommt man nur 0815 vorlagen. Ist dann eher wie eine erweiterte Suchfunktion. Man lernt viel. Ich zumindest. Wenn du eine rekursive Routine schreibst und ChatGPT fragst. Was muss ich machen, um den vorliegenden Code vor einem Block zu schützen. Merkt man. Das CHatGPT nicht wirklich weis, wo das Problem liegt, das es beseitigen muss. Du musst es kleine klein beschreiben wo das Problem liegt und dann kommt ChatGPT auch auf eine Lösung. Diese sind aber meistens ..... unnötig kompliziert. Und berücksichtigen die Möglichkeiten der Sprache nicht. Aber als Assistent ist ChatGPT cool. Ich freue mich schon auf einen guten AVATAR.

Re: PureBasic to go & ChatGPT4o

Verfasst: 21.08.2024 12:36
von Kiffi
https://claude.ai/ ist auch ganz nett.