Limbajul de programare Delphi oferă o modalitate rapidă de a scrie, compila, pachet și implementa aplicații multiplă platformă. Deși Delphi creează o interfață grafică cu utilizatorii, există obligații de a executa un program din codul dvs. Delphi. Să zicem că aveți o aplicație de bază de date care folosește o utilitate de rezervă externă. Utilitarul de rezervă preia parametrii din aplicație și arhivează datele, în timp ce programul așteaptă până la finalizarea copiei de rezervă.
Poate doriți să deschideți documentele prezentate într-o casetă de listă de fișiere doar făcând dublu clic pe ele, fără să deschideți mai întâi programul asociat. Imaginați-vă o etichetă de legătură din programul dvs. care îl duce pe utilizator la pagina dvs. de pornire. Ce spuneți despre trimiterea unui e-mail direct din aplicația dvs. Delphi prin programul implicit client de e-mail Windows?
Pentru a lansa o aplicație sau a executa un fișier într-un mediu Win32, utilizați funcția API ShellExecute Windows. Consultați ajutorul de pe ShellExecute pentru o descriere completă a parametrilor și codurilor de eroare returnate. Puteți deschide orice document fără a ști ce program este asociat cu acesta - link-ul este definit în Registrul Windows.
Iată câteva exemple de coajă.
folosește ShellApi;
...
ShellExecute (mâner, „deschis”,
'c: \ Windows \ notepad.exe', nil, nil, SW_SHOWNORMAL);
ShellExecute (mâner, 'deschis',
'C: \ windows \ notepad.exe',
'c: \ SomeText.txt', nil, SW_SHOWNORMAL);
ShellExecute (mâner, 'deschis',
'c: \ DelphiDownload', nil, nil, SW_SHOWNORMAL);
ShellExecute (mâner, „deschis”,
'c: \ MyDocuments \ Letter.doc', nil, nil, SW_SHOWNORMAL);
Iată cum puteți găsi o aplicație asociată cu o extensie.
ShellExecute (mâner, „deschis”,
'http: //delphi.about.com',nil,nil, SW_SHOWNORMAL);
var em_subject, em_body, em_mail: string;
începe
em_subject: = 'Aceasta este linia subiectului';
em_body: = 'Textul corpului mesajului merge aici';
em_mail: = 'mailto: [email protected]? subiect =' +
em_subject + '& body =' + em_body;
ShellExecute (mâner, 'deschis',
PChar (em_mail), nil, nil, SW_SHOWNORMAL);
Sfârșit;
Iată cum puteți trimite un e-mail cu atașamentul.
Următorul exemplu utilizează funcția API ShellExecuteEx.
// Execută calculatorul Windows și apare
// un mesaj atunci când Calc este încheiat.
folosește ShellApi;
...
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;
începe
ExecuteFile: = 'C: \ Windows \ calc.exe';
FillChar (SEInfo, SizeOf (SEInfo), 0);
SEInfo.cbSize: = SizeOf (TShellExecuteInfo);
cu SEInfo încep
fMask: = SEE_MASK_NOCLOSEPROCESS;
Wnd: = Application.Handle;
lpFile: = PChar (ExecuteFile);
ParamString poate conține
parametrii aplicației.
// lpParameters: = PChar (ParamString);
StartInString specifică
numele directorului de lucru.
Dacă este ommited, se folosește directorul curent.
// lpDirectory: = PChar (StartInString);
nShow: = SW_SHOWNORMAL;
Sfârșit;
dacă ShellExecuteEx (@SEInfo) începe apoi
repeta
Application.ProcessMessages;
GetExitCodeProcess (SEInfo.hProcess, ExitCode);
până la (ExitCode STILL_ACTIVE) sau
Application.Terminated;
ShowMessage („Calculatorul s-a încheiat”);
Sfârșit
else ShowMessage ('Eroare la pornirea Calc!');
Sfârșit;