Sonderzeichen chr(124)

Anfängerfragen zum Programmieren mit PureBasic.
Tommy_
Beiträge: 8
Registriert: 07.05.2008 09:16

Sonderzeichen chr(124)

Beitrag von Tommy_ »

Versuche ein externes Fenster über PB (v3.80) zu schließen.

Dazu benutze ich diesen code

Code: Alles auswählen

hwnd = FindWindow_(#Null, Fenstertitel$+chr(124))
If hwnd
  PostMessage_(hwnd,#WM_CLOSE,0,#True)
Else
  Debug "Nicht gefunden!"
EndIf
Leider enthält der Name des Fensters das Sonderzeichen | (124) und wird dadurch nicht gefunden.Wenn ich das Programm schrittweise ausführe und mir die Variablen im Debugger anschaue sehe ich das das Zeichen einfach nicht dargestellt wird.


Was hat es mit dem Zeichen | auf sich ?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

wenn es im debugger nicht dargestellt wird, woher weißt du das es das 124er zeichen ist ?

und wenn es ein | ist, wieso schreibst du ihn nicht einfach mit in den Fenstertitel$

es würde vllt mehr helfen wenn du uns noch den Titel postest
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

am chr(124) liegt es glaub ich nicht

Code: Alles auswählen

Global Fenstertitel$
Fenstertitel$ = "test"+Chr(124)
Procedure Fenster(dummy)
  OpenWindow(0, 0, 0, 300, 200, #PB_Window_ScreenCentered, Fenstertitel$)
  While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
EndProcedure
CreateThread(@Fenster(), 0)
Delay(2000)
hwnd = FindWindow_(0, Fenstertitel$)
If hwnd
  PostMessage_(hwnd,#PB_Event_CloseWindow,0,1)
Else
  Debug "Nicht gefunden!"
EndIf
funktioniert ja auch problemlos.
PureBasic 4.40 (Windows - x86)
Tommy_
Beiträge: 8
Registriert: 07.05.2008 09:16

Beitrag von Tommy_ »

Uups, habe den Fehler jetzt entdeckt, es lag an dem Fenstertitel der nicht korrekt angegeben war.Es funktioniert jetzt. :allright:
Antworten