17 Ağustos 2011 Çarşamba

Application içinden bir exe çalıştırmak


APPLICATION ICINDEN BIR EXE CALISTIRMAK

uses ShellApi;
...
ShellExecute(Handle, 'open',  'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
ShellExecute(Handle,'open',  'c:\windows\notepad.exe','c:\SomeText.txt', nil, SW_SHOWNORMAL);
ShellExecute(Handle,'open','c:\DelphiDownload', nil, nil, SW_SHOWNORMAL);
ShellExecute(Handle, 'open', 'c:\MyDocuments\Letter.doc',nil,nil,SW_SHOWNORMAL);
ShellExecute(Handle, 'open', 'http://delphi.about.com',nil,nil, SW_SHOWNORMAL);

var em_subject, em_body, em_mail : string;
begin
em_subject := 'This is the subject line';
em_body := 'Message body text goes here';
em_mail := 'mailto:delphi.guide@about.com?subject=' +em_subject + '&body=' + em_body ;
ShellExecute(Handle,'open',PChar(em_mail), nil, nil, SW_SHOWNORMAL);
end;

// Execute the Windows Calculator and pop up
// a message when the Calc is terminated.
uses 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);
with SEInfo do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
{ ParamString can contain the  application parameters. }
// lpParameters := PChar(ParamString);      { StartInString specifies the name of the working directory.
If ommited, the current directory is used.}
// lpDirectory := PChar(StartInString);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
ShowMessage('Calculator terminated');
end
else ShowMessage('Error starting Calc!');
end;

// run Notepad
WinExec('c:\windows\NOTEPAD.EXE', SW_SHOWNORMAL);
// run Notepad and display SomeText.txt
WinExec('c:\windows\NOTEPAD.EXE C:\SomeText.txt', SW_SHOWNORMAL);
// execute a DOS DIR command
WinExec('COMMAND.COM /C DIR *.*', SW_SHOWNORMAL);

Hiç yorum yok:

Yorum Gönder