![]() |
ShellNotifier löst beim Start schon OnChange aus
Hallo Wissende,
ShellNotifier löst beim Start schon OnChange-Ereignis aus. Das ist insofern Problematisch, weil dadurch in meinen Routinen versucht wird eine Stringliste 2 x innerhalb kürzester Zeit in ein und dieselbe Datei zu speichern. Das schafft das Tool aber nicht, weil entweder die Datei noch in Nutzung ist oder aber weil sich sich selbst dabei einholt!? Setze ich nun im OnChange-Event eine Showmessage dazwischen schafft es das Programm die Datei zu speichern und es gibt keine Problem. Ich habe nun schon versucht mit einer globalen boolschen Variable, welche ich beim Start auf True setze und nach dem erstmaligen Speichern der Datei auf False setze, den ShellNotifier zu deaktivieren. Leider ohne Erfolg. Wie kann ich also dieses Problem umgehen? Selbst mit Try Finally End hat es nicht geklappt. Sleep(5000) hat auch nicht geholfen... |
Re: ShellNotifier löst beim Start schon OnChange aus
Hallo,
ich hatte mal ein ähnliches Problem mit ShellNotifier, wo ein ShowMessage oder beim Debuggen alles so funktionierte, wie es sollte, aber ohne nicht. Mit Sleep bist Du schon fast auf dem richtigen Weg, musst nur noch ein Application.ProcessMessages mit einbauen (vieleicht auch abwechselnd sleep app... sleep app.., genau weiss ich es nicht mehr). Dann hat's bei mir funktioniert. Grüße Peter |
Re: ShellNotifier löst beim Start schon OnChange aus
Du kannst auch eine TCriticalSection verwenden - einfach mal in der OH nachlesen.
Dust Signs |
Re: ShellNotifier löst beim Start schon OnChange aus
Ich habe mal folgendes probiert, wurde aber nicht mit Erfolg belohnt:
Delphi-Quellcode:
LockXY habe ich global deklariert und im FormCreate erzeugt. Wo ist nun der Fehler? Benutze ich es falsch, oder wo ist das Problem??? Komisch ist auch, dass das Problem nur auftaucht, wenn ich die CP-Files über lokales Netzwerk speichere und das Programm dann lokal sich updaten soll. Wenn ich alles komplett auf einem Rechner mache, ist eher unproblematisch...
procedure TForm1.ShellChangeNotifier1Change;
begin LockXY.Acquire; //ShowMessage('change'); //mit dieser messagebox funktioniert es try CreateIndexPage; finally //refresh des browsers if (StatusBar1.Panels[0].Text = '') or (StatusBar1.Panels[0].Text = 'blank')then web_cis.Navigate(Htm_Path+'index.html') else web_cis.ExecWB(OLECMDID_REFRESH, OLECMDEXECOPT_DODEFAULT); //entsperren LockXY.Release; end; end; |
Re: ShellNotifier löst beim Start schon OnChange aus
|
Re: ShellNotifier löst beim Start schon OnChange aus
Ehrlich gesagt nicht, weil ich mich mit Api´s überhaupt nicht auskenne. Ist ne billige ausrede, aber ich konnte selbst aus dem von Dir verlinkten Suchergebnis mit den 10 Folgelinks nichts ausmachen, was mich per sofort in Delphi glücklich macht. Scheint damit zusammenzuhängen, weil ich kein "richtiger" Programmierer bin.
Naja und selbst hier im Forum blieb die Suche nach SHChangeNotifyRegister ergebnislos - Leider. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz