Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Unterprogramm nur aus Hauptprogramm startbar (https://www.delphipraxis.net/42964-unterprogramm-nur-aus-hauptprogramm-startbar.html)

jolomino 26. Mär 2005 17:23


Unterprogramm nur aus Hauptprogramm startbar
 
hallo,
wie kann ich eigentlich unterbinden das ein unterprogramm, welches ich aus dem hauptprogramm aufrufe, unter windows startbar ist. dieses soll nur durchs hauptprogramm startbar sein.

gruss jolomino

PierreB 26. Mär 2005 17:25

Re: Unterprogramm nur aus Hauptprogramm startbar
 
Bau einfach ne Abfrage beim Start des Unterprogramms ein:
Wenn das Hauptprogramm läuft, starte Unterprogramm. Wenn nicht, dann nicht. ;)

BenjaminH 26. Mär 2005 17:28

Re: Unterprogramm nur aus Hauptprogramm startbar
 
Übergebe dem Unterprogramm beim Start doch vom Hauptprogramm einen Wert(z.B. als Parameter), das Unterprogramm überprüft, ob der Wert übergeben worden ist oder ob der Parameter existiert.
Wenn der Wert übergeben wurde, startet es, ansonsten nicht.

jolomino 26. Mär 2005 17:32

Re: Unterprogramm nur aus Hauptprogramm startbar
 
super schnelle antwort :-)
aber, das unterprogramm ist ein updater, dieses wird vom hauptprogramm gestartet und das hauptprogramm beendet sich selber, damit dieses upgedatet werden kann. nach dem update wird das neue hauptprogramm wieder gestartet und der updater beendet sich selber. im hauptprogramm ist die versionsprüfung und im updater nur der download des neuen hauptprogramms. ich möchte aber nicht, das man unter windows den updater starten kann, weil ja sonst immer das programm gedownloadet wird.

@benjamin:
mit dem wert übergeben, wie funzt das denn

gruss jolomino

BenjaminH 26. Mär 2005 17:35

Re: Unterprogramm nur aus Hauptprogramm startbar
 
Beim Aufruf des Updaters, du machst das wahrscheinlich mit Shellexecute, gibst du als Parameter z.B. '-startisMain' oder sowas an.
Dann überprüfst du im OnCreate des Updaters das:
Delphi-Quellcode:
If not ParamStr(1)='-startisMain' Then
Updater.Close;
//Edit:Erklärung
ParamStr(1) gibt den 1. Parameter, der dem Programm übergeben wurde an.
ParamStr(0) enthält den Aufruf des Programms, also z.B. "C:\Updater.exe"
Parameter übergibt man bei shellexecute so:
ShellExecute(Handle,'open','C:\Updater.exe','-startismain','',SW_SHOW);

jolomino 26. Mär 2005 17:40

Re: Unterprogramm nur aus Hauptprogramm startbar
 
ich mache es mit CreateProcess,da ich abfragen möchte ob der updater auch wirklich gestartet wurde. wie kann ich denn bei CreateProcess parameter mit übergeben?

Delphi-Quellcode:
CreateProcess(PChar(ExtractFilePath(Application.Exename)+'updater.exe'),nil,nil,nil,false,
                       NORMAL_PRIORITY_CLASS,nil,nil,aSI,aPI)
gruss jolomino


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz