AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Warten bis ein Programm beendet wird
Thema durchsuchen
Ansicht
Themen-Optionen

Warten bis ein Programm beendet wird

Ein Thema von Popov · begonnen am 30. Mai 2012 · letzter Beitrag vom 31. Mai 2012
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 07:05
@jaenicke

Es geht nicht drum ob die Anzahl gering ist. Auch wenn es nur einen von der Sorte auf der Welt gäbe.

Das mit einer Datenbank ist eine Möglichkeit, aber jedes Programm vorher testen? Es allgemein zu machen wäre besser.

Und noch ein mal, ob man Neustarts ignorieren kann steht nicht zu Debatte. Nicht weil ich das unnötig problematisch machen will, sondern weil es Neustarts gibt. Und wenn du es im Leben noch nie erlebt hast, ich baue mir seit fast 20 Jahren meine PCs alleine und für mich ist es die Regel, dass z. B. bei Treiberinstallation immer ein Neustart nötig wird. Aber nicht nur, auch normale Programme führen die aus, ob nötig oder nicht. Manchmal ist es einfach nur ein Neustart, manchmal eine Unterbrechnung. Komisch, selbst bei Windowsupdates habe ich erlebt, dass mehrere Neustarts durchgeführt wurden. Deshalb werde ich sicherlich nicht einen dicken fetten Hinweis auf dem Programm Fenster platzieren "Neustarts bitte verhindern".

Ich würde gerne die Frage ob Neustarts Nötig sind außenvorweglassen. Die sind sowieso der einzige Grund wieso ich frage.

Nach meiner Erfahrung spielen RunOnce Aufrufe eine Rolle, aber das kann es nicht alleine sein.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.977 Beiträge
 
Delphi 12 Athens
 
#2

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 07:42
Das mit einer Datenbank ist eine Möglichkeit, aber jedes Programm vorher testen? Es allgemein zu machen wäre besser.
Dann wirst du wohl alles hooken müssen was nicht niet- und nagelfest ist und ganz genau schauen was welches Programm macht... Sprich welche Prozesse gestartet werden, welche Registryeinträge in den Autostart-Schlüsseln gesetzt werden, ...
Aber wenn dein Hook zu spät gesetzt wird, weil etwas anderes vorher startet, bringt dir das trotzdem nichts.

Nach meiner Erfahrung spielen RunOnce Aufrufe eine Rolle, aber das kann es nicht alleine sein.
Ich hatte bisher nur Setups, die damit (oder unsaubererweise mit einer anderen Autostart-Möglichkeit, sprich Run etc.) liefen oder die einen Updatedienst installiert haben, der dann den Rest erledigt hat.

Wenn du eines kennst, das es anders macht, könntest du es posten. Dann können wir gern mal schauen wie es da läuft.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 08:07
Da hätten wir schon das Windows Update, dass noch vor dem Logon Updates installiert und gelegentlich neu startet.

Ich glaube einige Virenscanner installieren sich, starten neu, führen noch vor Logon einen Test durch und führen nach dem Neustart die Installation fort.

Ich muß aber zugeben, dass ich auch individuell entscheide ob ich dem Wunsch nach Neustart nachkomme, so dass ich weiß, dass es oft vorkommt, aber ich oft bis zu letzten Installation warte.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.977 Beiträge
 
Delphi 12 Athens
 
#4

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 08:11
Das Windows Update und die Virenscanner sind Dienste. Erstens wirst du da kaum zuverlässig herankommen (oder selbst als Virus verdächtigt werden), und zweitens ist das ja denke ich nichts, in das dein Programm eingreifen müsste.

Wissen musst du das doch eigentlich nur, wenn das Setup nach dem Neustart auf dem Desktop fortgesetzt wird (auch im Hintergrund), oder?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 14:04
[...] aber jedes Programm vorher testen?
Wie willst du es sonst machen? Nehmen wir an, ein von deiner Software ausgeführtes Setup führt einen Neustart durch. Woran willst du nach dem Neustart festmachen/erkennen, ob die Installation fertig ist (und ggf. einen weiteren Neustart ausführt), ohne das im Vorhinein zu analysieren? Denn die nach dem Neustart fortgesetzte Installation kann ja weitere Prozesse starten, die ihrerseits einen Neustart auslösen oder ähnliche Geschichten.

Diese Analyse müsstest du auf allen (aktuellen/benutzten) Windows-Versionen machen, in unterschiedlichen Konfigurationen (Software nicht vorhanden oder wird "nur" aktualisiert) und das auch noch mit jeder neuen Version des Setups und so weiter. Ich wüsste nicht, welche einfache Methode es für sowas Komplexes geben könnte.

Den Status des Gesamtsetups deiner eigenen Software kannst du ja problemlos (in einer Datei oder der Registry) hinterlegen, aber zuverlässig zu erkennen, ob ein fremdes, unbekanntes Setup fertig ist oder nicht, halte ich für viel zu fehleranfällig. Aber vielleicht habe ich dafür auch nicht genug Phantasie oder Vorstellungskraft, das will ich nicht ausschließen.

MfG Dalai
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 14:42
Wie willst du es sonst machen? Nehmen wir an, ein von deiner Software ausgeführtes Setup führt einen Neustart durch. Woran willst du nach dem Neustart festmachen/erkennen, ob die Installation fertig ist ...
Siehst du, und das ist die Frage um die es geht.

Womit ich seit Anfang spiele, ist eine Prüfsumme auf jedes ausgeführte Setup-Programm. Wird ein Neustart durchgeführt, und das mitzukriegen ist kein Problem, könnte ich alle ausgeführten Programme im Task ebenfalls testen. Also paar Ideen habe ich schon, nur gefallen sie mir noch nicht so ganz. Ich suche noch weitere Ideen. Das mit der Datenbank kommt aber auf jeden Fall in die Liste.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Warten bis ein Programm beendet wird

  Alt 31. Mai 2012, 14:44
Wie willst du es sonst machen? Nehmen wir an, ein von deiner Software ausgeführtes Setup führt einen Neustart durch. Woran willst du nach dem Neustart festmachen/erkennen, ob die Installation fertig ist ...
Siehst du, und das ist die Frage um die es geht.

Womit ich seit Anfang spiele, ist eine Prüfsumme auf jedes ausgeführte Setup-Programm. Wird ein Neustart durchgeführt, und das mitzukriegen ist kein Problem, könnte ich alle nach dem Neustart ausgeführten Programme im Task testen. Also paar Ideen habe ich schon, nur gefallen sie mir noch nicht so ganz. Ich suche noch weitere Ideen. Das mit der Datenbank kommt aber auf jeden Fall in die Liste.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 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