![]() |
Gesperrte Anwendunge bei Absturz freigeben
Hallo,
ich soll zur Laufzeit ein anderes Programm zeitweise sperren. Dank windows.EnableWindow(..) tut das auch alles wie es soll. Jetzt meine Frage: Kann ich sicherstellen, dass bei einem Absturz meines Programms das extere wieder freigeben wird? Wenn nein, gibt es andere Möglichkeiten, das Ziel zu ereichen? Danke schonmal Thomasch |
Re: Gesperrte Anwendunge bei Absturz freigeben
Hi, du könntest ein zweites Programm dazu starten, das nur prüft, ob deine erste Anwendung noch läuft/aktiv ist, und im Falle eines Absturzes das Fenster wieder aktivieren.
Es gibt meines Wissens nach keine zuverlässige Möglichkeit, den Absturz des eigenen Programms festzustellen. Man kann ja auch z.B. kaum seinen eigenen Tod feststellen. Gruß |
Re: Gesperrte Anwendunge bei Absturz freigeben
das stimmt, sowas is nich möglich...
aber was vllt gehn würde wenn du irgendwo ne liste mit dein änderungen hinterlegst, die dann im zweifelsfall wieder ausgelesen werden kann. das man dein program dan neustartet und das diese datei einliest, damits wieder bescheid weis was die vorangegangene instanz alles verändert hat ... kA </lautdenk> |
Re: Gesperrte Anwendunge bei Absturz freigeben
Die Lösung von Dani ist die bessere! Dafür reicht sogar ein fensterloser Dienst(??) der einfach aufpasst dass alles sauber abläuft...
mfg |
Re: Gesperrte Anwendunge bei Absturz freigeben
naja aber wieder 'n extra programm dasn anderes programm überwacht? :)
|
Re: Gesperrte Anwendunge bei Absturz freigeben
Hi,
ich hab einmal einen Thread erstellt, der nichts anderes tut, als alle paar sekunden in ein bestimmtes verzeichnis einen "timestamp" zu schreiben. Ist die Anwendung geschlossen worden, wurde die Datei gelöscht, ist die Anwendung abgestürzt, wurde der Timestamp nicht mehr aktualisiert. Diesen Timestamp hat die Anwendung beim Öffnen ausgelesen und ausgewertet - dementsprechend wurde die Anwendung gestartet oder der Start verweigert. Notwendig war dies bei mir, da diese Anwendung auf dem Netzwerk nur von einer Person zur gleichen Zeit gestartet werden durfte. Wenn Du möchtest kann ich den Thread anhängen (is aber ein wenig quick&dirty ;) MfG Michael |
Re: Gesperrte Anwendunge bei Absturz freigeben
Hi
also ich arbeite in solchen (oder ähnlichen Fällen) mit nem "WatchDog" ... würde in deinem fall ein 2tes Proggie starten wobei sich beide Programme gegenseitig neustarten müssten, wenn sie nimmer gehen. (Mache das so bei einer SPS / PC kombination beide haben ein sich dauernd änderndes Signal (High/Low) sobald einer von beiden länger nicht mehr reagiert, handelt der Andere) |
Re: Gesperrte Anwendunge bei Absturz freigeben
Zitat:
Ein Programm mitzuliefern, was im Notfall die andere Anwendung entsperrt, oder mein Programm mit einer entsprechenden Parameteroption auszustatten wäre zwar die einfachste Variante, düfte aber wohl aus Marketinggründen ausfallen. Viele Grüße Thomasch |
Re: Gesperrte Anwendunge bei Absturz freigeben
@terong
heist das nich "machine"? |
Re: Gesperrte Anwendunge bei Absturz freigeben
Zitat:
[edit]: btw.: thanks für den hinweis ^^ onT: ka aber evtl. kannste ja statt nem 2ten Proggie ja einen Thread für sowas verwenden :gruebel: (hab noch nie mit Threads gearbeitet ^^) |
Re: Gesperrte Anwendunge bei Absturz freigeben
wenn das program abstürtzt dann hilft auchn extra thread nich :)
da muss wenn dann schon nen 2tes programm her, oder so wie ichs sagte, mit sonem log, das man dann wieder auslesen kann, damit das program wieder bescheidweis, wenn mans dann neustartet (neustarten muss) |
Re: Gesperrte Anwendunge bei Absturz freigeben
Zitat:
Frage: Wie kommt es eigentlich zu dem Problem? Die meisten Entwickler optimieren ihre Anwendungen eher daraufhin, gar nicht erst abzustürzen :mrgreen: |
Re: Gesperrte Anwendunge bei Absturz freigeben
davon red ich ja die ganze zeit - herrje ^^
|
Re: Gesperrte Anwendunge bei Absturz freigeben
@barf00s
Doch, der Thrad stirbt dann ja auch - und schreibt demnach auch keine neue Sperrzeit mehr in die Datei. D.h. ein paar Sekunden nach dem "abschmieren" ist die Anwendung wieder startbereit. |
Re: Gesperrte Anwendunge bei Absturz freigeben
das hab ich doch gesagt - das einem hier ständig die worte im munde umgedreht werden ^^
|
Re: Gesperrte Anwendunge bei Absturz freigeben
Zitat:
Die Hauptanwendung findet das externe Programm übrigens über GetActiveOleObject(...). Zu Deiner Frage: Murphy ist bekanntlich überall - und dass der Kunde ein - aus seiner Sicht - eingefrorenes Programm sieht, möchte ich mir einfach nicht vorstellen - zumal wenn die Änderungen der letzten Stunden nicht gespeichert wurden... Viele Grüße Thomasch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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