Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Programm per klick neustarten!

  Alt 5. Feb 2007, 17:13
Ahlso du musst bei shellexecute meherere Parameter angeben. Shellexecute ist ein Befehl der dierekt von der WindowsAPI ist, also ist er ziemlich kompliziert und umständlich und hat Funktionen die du garnicht brauchst.

Der erste Parameter erlaubt dir das Fensterhandle des Programmes anzugeben, von dem es gestartet wurde (oder so glaube ich *g*). Der ist für dich unwichtig, gib einfach Null an.

Im zweiten Parameter kannst du den Typ der Operation die du machen willst als String angeben, du willst ein Programm öffnen, allso nimmst du 'open'.

Als drittes musst du den Dateinamen der Datei angeben, und zwar als pansichar. Das ist sowas ähnliches wie ein String, und Delphi kann es umwandeln: pansichar(application.exename).

In Parameters kannst du alle Parameter angeben, mit der du dein Programm startest. Die sind noch hauptsächlich aus DOS-Zeiten geblieben, werden aber manchmal heute immer noch benutzt (von mir z.B.). Das kannst du auch leer lassen, also einfach '' reinschreiben.

In Directory kannst du das Verzeichniss in dem das Programm ausgeführt wird angeben, fallst du es nicht ändern willst, lässt du hier auch frei: ''

In ShowCmd kannst du festlegen ob das Programm Maximiert oder Minimiert gestartet wird. Um in Standardeinstellungen zu starten schreib einfach 0.


Also:
Delphi-Quellcode:
shellexecute(0,'open',pansichar(application.exename),'','',0); //Programm neustarten
application.terminate; //Programm schließen.
//Du kannst auch zum besonders brutalen Beenden den Befehl halt(0) verwenden.
//Oder close, dann wird die onclose-Prozedur der Form noch ausgeführt.

Ich halte deine Arbeitsweise aber trotzdem für unsauber. Es wäre schonender für den Rechner wenn du alle Einstellungen so zurücksetzt (ok, für dich vllt nicht so schonend...)
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat