Jetzt aber doch gelöst! Problem mit Sendmessage

Anfängerfragen zum Programmieren mit PureBasic.
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Re: Leider doch nicht gelöst! Problem mit Sendmessage

Beitrag von bin_neu_hier »

Hallo RSBasic,

vielen Dank für den Tipp. Dank Dir und Pureboard habe ich das mit

SendMessage_(Handle, #BM_CLICK, 0, 0) und FindWindow_() und FindWindowEx_()

sehr schön hinbekommen. Aber - auch hier werden manchmal die Updates nicht ausgelöst.

Jetzt habe den Verdacht, dass PB nicht die neuesten Daten aus den veränderten Dateien liest, sondern Daten aus einem Cache-Speicher der Festplatte. Würde bedeuten, meine Anwendungen finden zeitweise gar nichts zum updaten, weil sie veraltete Daten interpretieren. Gäbe es eine solche Möglichkeit? Kann man irgendwie erzwingen, dass alle Schreibzugriffe der Festplatte abgewartet werden und dass Lesezugriffe zwingend aus neu eingelesenen Daten und nicht aus einem Cache-Speicher erfolgen?

Oder bin ich da komplett auf dem Holzweg?
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Leider doch nicht gelöst! Problem mit Sendmessage

Beitrag von RSBasic »

bin_neu_hier hat geschrieben:Jetzt habe den Verdacht, dass PB nicht die neuesten Daten aus den veränderten Dateien liest, sondern Daten aus einem Cache-Speicher der Festplatte. Würde bedeuten, meine Anwendungen finden zeitweise gar nichts zum updaten, weil sie veraltete Daten interpretieren. Gäbe es eine solche Möglichkeit? Kann man irgendwie erzwingen, dass alle Schreibzugriffe der Festplatte abgewartet werden und dass Lesezugriffe zwingend aus neu eingelesenen Daten und nicht aus einem Cache-Speicher erfolgen?
Ich weiß nicht, ob es wirklich daran liegt, aber es klingt irgendwie danach und zwar kannst du bei deinem ReadFile/OpenFile folgende Konstante benutzen: #PB_File_NoBuffering
ReadFile() hat geschrieben:#PB_File_NoBuffering: das PureBasic-interne Datei-Puffersystem wird für diese Datei deaktiviert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Re: Jetzt aber doch gelöst! Problem mit Sendmessage

Beitrag von bin_neu_hier »

Hallo RSBasic!

Mit #PB_File_NoBuffering scheint es sehr gut zu funktionieren, jedenfalls hatten die ersten ca. 20 Versuche keinen "Aussetzer".

Habe das ursprüngliche "Info an zwei fremde Anwendungen" geändert in

A funkt an B (wenn anwesend), wenn B nicht anwesend, dann an C (wenn anwesend)
B funkt nach Anschluß seines updates an C, wenn C anwesend
(B und C updaten sich selbst bei Programmstart, deswegen wären keine weiteren "Remote-updates" erforderlich)

und die Createfile- und Readfile-Befehle um das Flag #PB_File_NoBuffering ergänzt.

Vielleicht hat es am Ende nur an "#PB_File_NoBuffering" gelegen, wäre gut möglich! Vielen Dank an Alle für ihren Input!
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
Antworten