Autor Beitrag
NTM
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 120

Win XP
2005 Prof
BeitragVerfasst: Mi 06.12.06 08:37 
Hallo zusammen,
kann mir jemand erklären wie ich in meinen Programm eine Neustartfunktion einbauen kann die automatisch oder per Button funktioniert. So das alle mein Datenbankverbindungen wieder hergestellt werden (Es solle meine DNS auslesen können wo der Eintragder Datenbankverbindung gespeichert wird) .
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.12.06 08:44 
Wenn dein Programm mehrmals gestartet werden kann, dann kannst du es ja einfach erneut starten und als Parameter angeben, dass dein Programm eine bestimmte temporäre Konfigurationsdatei nutzen soll, die du vorher erstellst.
Die neue Instanz liest das dann aus und fertig.

Kann dein Programm nur einmal gleichzeitig gestartet werden, könntest du solange die Exe existiert in eine Schleife gehen und versuchen, die Datei umzubenennen. Wenn das dann geklappt hat, ist die Datei nicht mehr gesperrt, also läuft das Programm nicht mehr. Dann kannst du die Exe zurückumbenennen und mit deinen Parametern starten.

Ansonsten würde ich eine kleine Kommandozeilen-Exe vorschlagen, die du per Resource oder so in die Exe einbinden kannst und dann vor dem Start entpackst. Die kann dann warten, bis dein Programm geschlossen ist und wird dann von der (vom Kommandozeilen-Tool) neu gestarteten Instanz gelöscht.
NTM Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 120

Win XP
2005 Prof
BeitragVerfasst: Mi 06.12.06 08:49 
Hallo Sebastian,
danke für die Info. Da ich sowas noch nie gemacht habe würde mir ein Link oder etwas Code helfen damit ich das Prinzip besser verstehen kann.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.12.06 08:56 
Wobei liegt denn das Problem? Ich nehme mal an, du hast noch keine Batchdateien benutzt und kennst die nicht?
Ok, so ungefähr müsste es gehen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
REM @ECHO OFF
REM @ECHO OFF schaltet die Ausgabe von Meldungen ab, ist aber durch das REM kommentiert,
REM damit man erstmal die Ausgabe sieht. Entferne, wenn es läuft, einfach das REM.
WHILE EXIST xy.exe REN xy.exe xy2.exe
REM Solange die Exe existiert versuchen umzubenennen
REN xy2.exe xy.exe
REM zurück umbenennen
START xy.exe
REM Programm neu starten
EXIT
REM Dos-Box beenden (du solltest SW_HIDE benutzen, damit man die gar nicht erst dieht, wenn alles geht)

Weitere Hinweise zu Batchfiles:
www.robvanderwoude.com/index.html (links Batch files)
NTM Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 120

Win XP
2005 Prof
BeitragVerfasst: Mi 06.12.06 09:12 
Hallo Sebastian,
du hast recht bis jetzt habe ich mich nur mit Datenbanken beschäftigt.
Danke für deine Hilfe.