Computerwissenschaften

Ausführen und Ausführen von Anwendungen und Dateien aus Delphi-Code

Die Programmiersprache Delphi bietet eine schnelle Möglichkeit, plattformübergreifende Anwendungen zu schreiben, zu kompilieren, zu verpacken und bereitzustellen. Obwohl Delphi eine grafische Benutzeroberfläche erstellt, kann es vorkommen, dass Sie ein Programm aus Ihrem Delphi-Code ausführen möchten. Angenommen, Sie haben eine Datenbankanwendung. die ein externes Sicherungsprogramm verwendet. Das Sicherungsdienstprogramm übernimmt Parameter aus der Anwendung und archiviert die Daten, während Ihr Programm wartet, bis die Sicherung abgeschlossen ist.

Vielleicht möchten Sie Dokumente öffnen, die in einem Dateilistenfeld angezeigt werden, indem Sie einfach darauf doppelklicken, ohne zuerst das zugehörige Programm zu öffnen. Stellen Sie sich ein Link-Label in Ihrem Programm vor, das den Benutzer zu Ihrer Homepage führt. Was sagen Sie zum Senden einer E-Mail direkt aus Ihrer Delphi-Anwendung über das Standard-Windows-E-Mail-Client-Programm?

 

ShellExecute

Verwenden Sie die ShellExecute Windows-API-Funktion, um eine Anwendung zu starten oder eine Datei in einer Win32-Umgebung auszuführen. In der Hilfe zu ShellExecute finden Sie eine vollständige Beschreibung der zurückgegebenen Parameter und Fehlercodes. Sie können jedes Dokument öffnen, ohne zu wissen, welches Programm ihm zugeordnet ist. Der Link ist in der Windows-Registrierung definiert .

Hier sind einige Shell-Beispiele.

 

Führen Sie Notepad aus

verwendet ShellApi; 
... 
ShellExecute (Handle, 'open', 
'c: \ Windows \ notepad.exe', nil, nil, SW_SHOWNORMAL);

 

Öffnen Sie SomeText.txt mit Notepad

ShellExecute (Handle, 'open', 
'c: \ windows \ notepad.exe', 
'c: \ SomeText.txt', nil, SW_SHOWNORMAL);

 

Zeigen Sie den Inhalt des Ordners „DelphiDownload“ an

ShellExecute (Handle, 'open', 
'c: \ DelphiDownload', nil, nil, SW_SHOWNORMAL);

 

Führen Sie eine Datei entsprechend ihrer Erweiterung aus

ShellExecute (Handle, 'open', 
'c: \ MyDocuments \ Letter.doc', nil, nil, SW_SHOWNORMAL);

So finden Sie eine Anwendung, die einer Erweiterung zugeordnet ist.

 

Öffnen Sie eine Website oder eine * .htm-Datei mit dem Standard-Web-Explorer

ShellExecute (Handle, 'open', 
'http: //delphi.about.com',nil,nil, SW_SHOWNORMAL);

 

Senden Sie eine E-Mail mit dem Betreff und dem Nachrichtentext

var em_subject, em_body, em_mail: string; 
begin 
em_subject:='Dies ist die Betreffzeile'; 
em_body:='Nachrichtentext geht hierher'; 
 
em_mail:='mailto: [email protected]? subject =' + 
em_subject + '& body =' + em_body; 
 
ShellExecute (Handle, 'open', 
PChar (em_mail), nil, nil, SW_SHOWNORMAL); 
Ende;

So senden Sie eine E-Mail mit dem Anhang .

 

Führen Sie ein Programm aus und warten Sie, bis es fertig ist

Im folgenden Beispiel wird die ShellExecuteEx-API-Funktion verwendet.

// Führen Sie den Windows-Rechner aus und // öffnen Sie 
eine Meldung, wenn der Calc beendet wird. 
verwendet ShellApi; 
... 
var 
SEInfo: TShellExecuteInfo; 
ExitCode: DWORD; 
ExecuteFile, ParamString, StartInString: string; 
begin 
ExecuteFile:='c: \ Windows \ Calc.exe'; 
 
FillChar (SEInfo, SizeOf (SEInfo), 0); 
SEInfo.cbSize:=SizeOf (TShellExecuteInfo); 
mit SEInfo fMask beginnen 
:=SEE_MASK_NOCLOSEPROCESS; 
Wnd:=Application.Handle; 
lpFile:=PChar (ExecuteFile); 
{ 
ParamString kann die 
Anwendungsparameter enthalten . 
} 
// lpParameters:=PChar (ParamString); 
{ 
StartInString gibt den 
Namen des Arbeitsverzeichnisses an. 
Wenn nicht angegeben, wird das aktuelle Verzeichnis verwendet. 
} 
// lpDirectory:=PChar (StartInString); 
nShow:=SW_SHOWNORMAL; 
Ende; 
Wenn ShellExecuteEx (@SEInfo), 
wiederholen Sie 
Application.ProcessMessages. 
GetExitCodeProcess (SEInfo.hProcess, ExitCode); 
bis (ExitCode <> STILL_ACTIVE) oder 
Application.Terminated; 
ShowMessage ('Rechner beendet'); 
end 
else ShowMessage ('Fehler beim Starten von Calc!'); 
Ende;

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.