| Autor |
Beitrag |
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Sa 04.02.06 19:10
Hi
ich hab das GEfühl, dass es das hier schon irgendwie geben muss, aber ich hab noch nix gefunden.
Es geht darum, dass weil ich hier ( www.entwickler-ecke....55173&highlight= )
keine Antwort bekommen hab, hab ich mich jetzt entschlossen, das Programm gleich neu zu starten.
Aber wie kann ich mein Programm so neu starten, dass nie zwei Instanzen des Programms gleichzeitig offen sind? D.h. zuerst soll das alte komplett geschlossen sein und danach soll es wieder neu geöffnet werden.
Gruß alias5000
Moderiert von Christian S.: SID aus URL entfernt
_________________ Programmers never die, they just GOSUB without RETURN
|
|
M. Raab
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: So 05.02.06 11:28
Hallo
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| Unit TEST;
interface
implementation
uses windows,Dialogs,sysutils;
var mHandle: THandle; Initialization mHandle := CreateMutex(nil,True,'HIER STEHT DER NAME DEINER ANWENDUNG'); if GetLastError = ERROR_ALREADY_EXISTS then begin showMessage('Das Programm ???????? wurde bereits gestartet. Ein mehrfacher Start ist nicht möglich.'); Halt; end;
finalization if mHandle <> 0 then CloseHandle(mHandle) end. |
Ich hoffe, das hilft Dir weiter
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
alias5000 
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: So 05.02.06 11:31
danke, aber eigentlich meinte ich etwas anderes:
Es geht weniger darum, zu verhindern, dass die Anwendung zweimal gestartet werden kann (das hab ich schon drinnen),
sondern ich will meine Anwendung neu starten
und halt so, dass die neue Instanz nicht während der Laufzeit der alten Instanz gestartet wird, sondern erst dann, wenn die alte Instanz komplett geschlossen wurde.
Ich hatte in dem Zusammenhang glaub ich mal was über .bat Dateien gehört, hab aber keine Erinnerung mehr dran, wie das genau lief.
_________________ Programmers never die, they just GOSUB without RETURN
|
|
M. Raab
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: So 05.02.06 11:37
Hallo,
da fält mir auch nicht viel dazu ein. Du könnest ein 2. Programm machen und von dem aus Dein 1. Programm starten. Wird es vollständig durch den Benutzer gelöscht, startest Du es ein 2. Mal. Du kannst über die o.g. Prozedur prüfen, ob es noch läuft und so verhindern, dass es noch während der Laufzeit des 1. Starts erneut gestartet wird. Liefert die o.g. Prozedur das vollständige Ende des 1. Startes, startet es ein 2. Mal.
Vielleicht hilft Dir das.
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
alias5000 
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: So 05.02.06 11:46
Mir fällt grad was anderes ein
muss ich mal versuchen, und zwar:
Ich starte meine neue Instanz doch, der dann auch ein Parameter übergeben wird, kurz bevor die alte geschlossen wird.
In der .dpr-Datei wird dann die neue Instanz beim erstellen angehalten, wenn der Parameter vorkommt, bis die alte geschlossen wurde (einfach ne Schleife mit application.ProcessMessages machen).
Erst wenn die alte nimmer existiert, wird die MainForm erzeugt.
Vllcht ist dann ein Anhalten auch nicht nötig, da sich die alte Instanz schneller schließt...
_________________ Programmers never die, they just GOSUB without RETURN
|
|
M. Raab
      
Beiträge: 334
Erhaltene Danke: 1
WIN 7
Delphi XE
|
Verfasst: So 05.02.06 11:53
Hallo
ausprobieren !!!
Gruss
Markus
_________________ Das Leben besteht aus Bits und Bytes - nur: wo laufen sie denn ????
Super ... Du kannst das zwar lesen, toll..... aber: völlig zwecklos !!!
|
|
|