Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm vom Programm Starten? (https://www.delphipraxis.net/55458-programm-vom-programm-starten.html)

smart 21. Okt 2005 11:49


Programm vom Programm Starten?
 
Ich möchte gern ein selbst geschriebenes Programm von eine Art Ladeprogramm starten lassen. Aber nur von dem Ladeprogramm. Wenn ich das Programm ohne das Ladeprogramm anklicke, sollte es nicht starten. Hat Einer von Euch einen Tipp wie man so etwas angehen kann?

ManuMF 21. Okt 2005 12:11

Re: Programm vom Programm Starten?
 
Ladeprogramm:
Delphi-Quellcode:
ShellExecute(Application.Handle, nil, 'Namedeshauptprogramms.exe', '***', GetCurrentDir, SW_SHOW);
Hauptprogramm
Delphi-Quellcode:
onFormCreate or im Projekt-Quelltext:

if not (ParamStr(1) = '***') then
  Application.Terminate;
Wobei *** eine Art Passwort sein sollte, wenn möglich eine wirre Kombination aus Ziffer und Buchstaben, muss (per Copy & Paste ;-) ) in beiden Programmen gleich sein.

Gruß,
ManuMF

himitsu 21. Okt 2005 12:18

Re: Programm vom Programm Starten?
 
Windows hat doch irgendwo vermerkt, mit welchem Programm eine Programm gestartet wurde?

Es gibt ja Programme, welche dieses anzeigen können, oder machen die das über 'ne Art Hook und merken sich das selber?
(meine FireWall hat z.B. dafür 'ne Anzeige)



Oder das Programm macht 'ne Verbindung zum Programm auf, von welchem es gestartet werden soll und frag nach, ob es wirklich von diesem gestartet wurde.


Oder ... jetzt fällt mir erstmal nüschts mehr ein -.-''



@ManuMF
Dann erstelle ich ein Programm, welches mir die übergebenen Parameter anzeigt, nenne es genauso wie sein (aufzurufendes) Programm, tausche die beiden Programme aus und schon hab ich ganz "einfach" den gewünschten Parameter.

ManuMF 21. Okt 2005 12:22

Re: Programm vom Programm Starten?
 
OK, ergänzen wir:

Delphi-Quellcode:
uses TlHelp32;

function IsExeRunning(const AExeName: string): boolean;
var
  h: THandle;
  p: TProcessEntry32;
begin
  Result := False;

  p.dwSize := SizeOf(p);
  h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    Process32First(h, p);
    repeat
      Result := AnsiUpperCase(AExeName) = AnsiUpperCase(p.szExeFile);
    until Result or (not Process32Next(h, p));
  finally
    CloseHandle(h);
  end;
end;
Delphi-Quellcode:
if not (ParamStr(1) = '***') or not (IsExeRunning('Ladeprogramm.exe')) then
  Application.Terminate;
Das überprüft schon mal, ob das Ladeprogramm läuft.

Gruß,
ManuMF

smart 21. Okt 2005 12:23

Re: Programm vom Programm Starten?
 
Zitat:

Zitat von ManuMF
Wobei *** eine Art Passwort sein sollte, wenn möglich eine wirre Kombination aus Ziffer und Buchstaben, muss (per Copy & Paste ;-) ) in beiden Programmen gleich sein.

Die Idee ist simpel aber auch genial. Vielen Dank für den Tipp.

ltiefland 21. Okt 2005 12:34

Re: Programm vom Programm Starten?
 
Stellt sich nur folgende Frage: Steht dies Paßwort dann im Klartext in der ".exe"? Dann sollte man vielleicht über eine Verschlüsselung (MD5 o. ä.) nachdenken.

himitsu 21. Okt 2005 12:43

Re: Programm vom Programm Starten?
 
@ltiefland:
Ein Verschlüsselung wäre in diesem Fall total sinnlos, sei sie auch noch so gut ... ließ mal ein wenig weiter oben meinen anderen Beitrag durch :zwinker:

smart 21. Okt 2005 12:47

Re: Programm vom Programm Starten?
 
Zitat:

Zitat von ltiefland
Stellt sich nur folgende Frage: Steht dies Paßwort dann im Klartext in der ".exe"? Dann sollte man vielleicht über eine Verschlüsselung (MD5 o. ä.) nachdenken.

Man könnte das PW. zerteilen und an verschiedenen Stellen in der EXE setzen. Dann braucht man nicht verschlüsseln.

Delphi-Quellcode:
Var
A,B,C,D,E,F: String;
beginn
A := 1;
B := 4;
...

ShellExecute(Application.Handle, nil, Programm.exe,A + B + C + D + E + F, GetCurrentDir, SW_SHOW);


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 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