AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Unit für Delphi >= 2010] Eigene Anwendung neu starten
Thema durchsuchen
Ansicht
Themen-Optionen

[Unit für Delphi >= 2010] Eigene Anwendung neu starten

Ein Thema von Björn Ole · begonnen am 4. Aug 2011 · letzter Beitrag vom 8. Aug 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 11. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#11

AW: [Unit für Delphi >= 2010] Eigene Anwendung neu starten

  Alt 7. Aug 2011, 18:52
Mit deinen 3 Zeilen mehr geht aber dein ShellExecute(0, 'open', PWideChar(ParamStr(0)), nil, nil, SW_SHOW); nicht mehr, weil der Mutex noch belegt ist.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

AW: [Unit für Delphi >= 2010] Eigene Anwendung neu starten

  Alt 7. Aug 2011, 20:35
Mit deinen 3 Zeilen mehr geht aber dein ShellExecute(0, 'open', PWideChar(ParamStr(0)), nil, nil, SW_SHOW); nicht mehr, weil der Mutex noch belegt ist.
NÖ geht immer bei mir

Aber egal..

gruss
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#13

AW: [Unit für Delphi >= 2010] Eigene Anwendung neu starten

  Alt 7. Aug 2011, 22:31
2. Wenn bereits eine Instanz läuft, solltest Du die Parameter an diese weitergeben. Z.B. per Named Pipe.
Gute Idee, allerdings kommen mir Named Pipes dafür etwas zu umfangreich vor. Ich hab sie noch nie benutzt, von dem was ich lese scheint es mir aber etwas Overkill zu sein. Warum übergebe ich an ShellExecute nicht einfach CmdLine + ' restart' . Einwände?
Vielleicht habe ich auch die Funktionalität deines Codes falsch interpretiert
Das wäre notwendig, wenn es darum gehen würde, daß nur eine Instanz des Programmes laufen soll. Dann müssen spätere Instanzen das an die erste weiterreichen. Wie EWeiss später vorschlägt (allerdings auch ohne dieses Weiterreichen).

3. Für Vista und später solltest Du eine Elevate-Möglichkeit einbauen (verb "runas" statt "open").
Verstehe nicht genau, was du meinst. open reicht doch alle Rechte weiter. Mit runas springt bei mir z.B. beim Neustart die UAC an, was ja nicht immer von Nöten ist.
Als Option - Programme laufen erstmal mit geringen Rechten, stelle aber evtl. möglich Administrationoptionen nach Elevation zur Verfügung (siehe WM_CLOSE).
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 11. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#14

AW: [Unit für Delphi >= 2010] Eigene Anwendung neu starten

  Alt 7. Aug 2011, 23:38
NÖ geht immer bei mir
Da muss aber bei deinem Betriebssystem was ordentlich schief laufen.

Als Option - Programme laufen erstmal mit geringen Rechten, stelle aber evtl. möglich Administrationoptionen nach Elevation zur Verfügung (siehe WM_CLOSE).
Ah ok, ich glaub jetzt hab ich es verstanden. Im Anhang die neue Version, hat sich alles um einiges vereinfacht. Warum ich da vorher den Umweg über einen Thread gegangen bin... wer weiß
Es besteht die Möglichkeit, dem Restart() einen Boolean mitzugeben, ob mit erhöhten Rechten gestartet werden soll. Programmparameter werden der neuen Instanz weitergegeben.

Folgendes hat sich bzgl. Benutzung geändert:

.dpr
Delphi-Quellcode:
if not Application.InitializeRestarter then
  Exit;
Code zum Neustarten
Delphi-Quellcode:
Application.Restart;
// oder
if not Application.Restart(bElevated) then
  ShowMessage('Fehler beim Neustarten: ' + SysErrorMessage(GetLastError));
Schade, dass ich den Eingangsposting nicht mehr ändern kann... Vor allem, da man die Unit jetzt auch mit älteren Versionen vor 2010 benutzen kann.
Angehängte Dateien
Dateityp: pas uApplicationRestarter.pas (2,9 KB, 23x aufgerufen)

Geändert von Björn Ole ( 7. Aug 2011 um 23:55 Uhr)
  Mit Zitat antworten Zitat
Florian Hämmerle
(Gast)

n/a Beiträge
 
#15

AW: [Unit für Delphi >= 2010] Eigene Anwendung neu starten

  Alt 8. Aug 2011, 01:51
Schreib einen Moderator an, damit er es in die Projekte-Sparte schiebt, dann kannst du dein erstes Posting immer updaten

Viele Grüße,
Florian
  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 11:18 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