Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi .exe Datei starten... (https://www.delphipraxis.net/15136-exe-datei-starten.html)

Gratis-Zugangstool 22. Jan 2004 15:32


.exe Datei starten...
 
Hi,
ersteinmal möchte ich sagen, dass ich kein Programmierer bin und lediglich ein kleines Programm mit Delphi basteln möchte, das auch .exe Dateien starten können soll. Ich habe wirklich nicht viel Ahnung vom Programmieren. Daher habe ich mir von der Seite www.delphi-treff.de den Easy Delphi Helper heruntergeladen, der eine Befehlsübersicht besitzt.
Dort habe ich folgenden Befehl gefunden:

Delphi-Quellcode:
procedure ExecuteFile(const AFilename: String;
                      AParameter, ACurrentDir: String; AWait: Boolean);
var
  si : TStartupInfo;
  pi : TProcessInformation;
begin
  if Length(ACurrentDir) = 0 then begin
    ACurrentDir := ExtractFilePath(AFilename);
    if ACurrentDir[Length(ACurrentDir)] = '' then
      Delete(ACurrentDir, Length(ACurrentDir), 1);
  end;
  FillChar(si, SizeOf(si), 0);
  with si do begin
    cb := SizeOf(si);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_NORMAL;
  end;
  FillChar(pi, SizeOf(pi), 0);
  if Length(AParameter) = 0 then
    AParameter := Format('"%s"', [AFilename])
  else
    AParameter := Format('"%s" %s', [AFilename, AParameter]);
  if CreateProcess(Nil, PChar(AParameter), Nil, Nil, False,
                   CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_CONSOLE or
                   NORMAL_PRIORITY_CLASS, Nil, PChar(ACurrentDir), si, pi) then
  begin
    try
      if AWait then WaitForSingleObject(pi.hProcess, INFINITE);
    finally
      CloseHandle(pi.hProcess);
      CloseHandle(pi.hThread);
    end;
  end;
end;
Ich habe das einfach in die Unit1 reinkopiert.

Ich möchte, dass wenn ich auf einen Button drücke, ein Programm gestartet wird.
Was muss ich bei diesem Button eingeben, um dies zu erreichen?

[edit=Luckie]Delphi-Tags ergänzt. Beim nächsten mal bitte sleber machen. Danke. Mfg, Luckie[/edit]

Luckie 22. Jan 2004 15:34

Re: .exe Datei starten...
 
Ruf die Funktion einfach mit den benötigten Parametern auf.

Gratis-Zugangstool 22. Jan 2004 15:53

Re: .exe Datei starten...
 
Vielen Dank für deine schnelle Antwort.
Sorry für das mit den Delphi-Tags. Bin noch neu, aber beim nächsten Mal werde ich dran denken.

Ehrlich gesagt, habe ich überhaupt keine Ahnung, was ich da für eine Funktion aufrufen muss...

mirage228 22. Jan 2004 15:54

Re: .exe Datei starten...
 
Du kannst im Quelltext (z.B. in einem Button Click Event) die Prozedur aufrufen:

Delphi-Quellcode:
ExecuteFile('C:\MeineDatei.exe'. '', '', False);
mfG
mirage228

citybreaker 22. Jan 2004 15:57

Re: .exe Datei starten...
 
Kann man Dateien nicht viel leichter mit der ShellApi starten?

RomanK 22. Jan 2004 16:26

Re: .exe Datei starten...
 
Zitat:

Zitat von mirage228
Delphi-Quellcode:
ExecuteFile('C:\MeineDatei.exe'. '', '', False);

Hoi,
du hast nen Tippfehler:
Delphi-Quellcode:
ExecuteFile('C:\MeineDatei.exe', '', '', False);
Statt dem . muss da ein ,.

Gratis-Zugangstool 22. Jan 2004 16:31

Re: .exe Datei starten...
 
Hi,
vielen Dank für eure Hilfe!
habe es mal damit probiert:
Delphi-Quellcode:
ExecuteFile('C:\MeineDatei.exe', '', '', False);
Leider kommt da bloß folgende Fehlermeldung: Undefinierter Bezeichner 'ExecuteFile'

mirage228 22. Jan 2004 16:31

Re: .exe Datei starten...
 
@FuckRacism: Achso, Danke, war mir nicht aufgefallen. ^^

@Gratis-Zugangstool: Du musst eine Deklaration in den private oder public abschnitt deiner Form machen. Das sieht etwa so aus:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  { hier stehen die ganzen Komponenten ... }
  private
  { ... }
  public
  // z.B. hier:
  procedure ExecuteFile(const AFilename: String;
                        AParameter, ACurrentDir: String; AWait: Boolean);
  end;
mfG
mirage228

nailor 22. Jan 2004 16:57

Re: .exe Datei starten...
 
mach das, was mirage gesagt hat UND unten im Quelltext mach noch das:

procedure TForm1.ExecuteFile(const AFilename: String;
AParameter, ACurrentDir: String; AWait: Boolean);

^^irgendwie geht FETT nicht im delphi-Tag, daher ohne

Matze 22. Jan 2004 17:54

Re: .exe Datei starten...
 
Das ist die einfachste Möglichkeit, eine exe zu starten:

Delphi-Quellcode:
uses ShellAPI;

...

ShellExecute(0, Nil, PChar('C:\Programme\Datei.exe'), Nil, Nil, SW_NORMAL);


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Seite 1 von 2  1 2      

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