AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neustart des eigenen Programms

Ein Thema von MCXSC · begonnen am 3. Sep 2004 · letzter Beitrag vom 4. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#11

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 13:02
Klar hat das ganze einen Tieferen Sinn.

Mann könnte es aber natürlich auchwesentlich einfacher machen. Hab halt in dem Beispiel nur noch überrüft, ob der zweite Parameter wirklich ne Zahl ist.

Hoffe das sagt dir mehr zu

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', pchar('"'+paramstr(0)+'"'), pchar('abc '+inttostr(Handle)), nil, SW_SHOW);
  close;
end;

initialization
  if Paramstr(1)='abcthen
    while IsWindow(strtoint(Paramstr(2)))do
      sleep(1);
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#12

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 13:08
Oder noch einfacher:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', pchar('"'+paramstr(0)+'"'), pchar(inttostr(Handle)), nil, SW_SHOW);
  close;
end;

initialization
  while IsWindow(strtoint(Paramstr(2)))do
    sleep(1);
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#13

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 13:10
Was aber, wenn der erste Parameter NICHT 'abc' ist?
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#14

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 13:22
Dann wird es wahrscheinlich ein Parameter sein, den MCXSC selber auswerten will. 'abc' sagt dem Programm ja nur, dass es erst erscheinen soll, wenn das im 2 Parameter steckende Handle nicht mehr existiert.

Falls er sowieso nicht will, dass man dem Programm Parameter übergeben kann, kann er ruhig die Letzte Möglichkeit nehmen. Die guckt ja nur, ob das als Paramerter übergebene Handle noch gültig ist.
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#15

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 16:06
Aaaalso.... Warum ich das ganze einbauen will, hat eigentlich zwei Gründe, wovon es sein kann, dass einer auch anders zu lösen geht, wordurch aber der zweite wieder greift:

1.) Ich habe in D6 den ThemeManager eingebaut und der User kann auswählen, ob er diesen benutzen will oder nicht. Wenn ja, so wird er beim Splashscreen zur Laufzeit erstellt. Wenn ich allerdings die Optionen (ThemeManager) ohne den Splashscreen aktiviere, hat es nie geklappt, dass dann das MainForm den XP-Style hat, sondern immer nur die anderen Forms.

2.) Wenn ich alle Optionen auf Knopfdruck umschreibe im Programm, wird es recht groß und mit einem neustart will ich die Größe etwas reduzieren.

MfG
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#16

Re: Neustart des eigenen Programms

  Alt 4. Sep 2004, 17:02
Also der beste Platz ist am Ende des OnDestroy-Ereignisses der Hauptform.
Dort ein "ShellExecute(PChar(ParamStr(0)),...". Solltest du nur eine Instanz in deinem Programm zulassen,
so kannst du ja einen Kommandozeilenparameter mitgeben, damit die neu gestartete Instanz das Testen unterlaesst.

Im Programm setzt du dann ein Flag und beendest es. Im OnDestroy pruefst du das Flag ob eine neue Instanz gestartet werden soll.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz