adm_adamlee this i wrong - i need sthing in between. for eg if I launch photoshop with shellexecute then the program continues execution before photoshop loads it's extensions etc. - and this is still photoshop's init sequence. i need sthing that will launch any app and wait for the moment in which the launched app is waiting for user input.
Main Topics
Browse All Topics





by: adm_adamleePosted on 2006-09-29 at 20:26:46ID: 17632883
Take a look at this:
, 'c:\windows\notepad.exe',' c:\SomeTex t.txt', nil, SW_SHOWNORMAL) ; Display the contents of the "DelphiDownload" folder
, 'c:\DelphiDownload', nil, nil, SW_SHOWNORMAL) ; Execute a file according to its extension.
',nil,nil, SW_SHOWNOR MAL) ; Here's how to Find an application associated with an extension
nil,nil, SW_SHOWNORMAL) ; Here's how to Open a Web Browser in a new window
.com?subje ct=' +
,
alc.exe';
s; hProcess, ExitCode) ;
Run Notepad
uses ShellApi;
...
ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL) ; Open SomeText.txt with Notepad
ShellExecute(Handle,'open'
ShellExecute(Handle,'open'
ShellExecute(Handle, 'open', 'c:\MyDocuments\Letter.doc
Open web site or a *.htm file with the default web explorer
ShellExecute(Handle, 'open', 'http://delphi.about.com',
Send an e-mail with the subject and the message body
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
em_subject + '&body=' + em_body ;
ShellExecute(Handle,'open'
PChar(em_mail), nil, nil, SW_SHOWNORMAL) ;
end; Here's how to send an email with the attachment
Execute a program and wait until it has finished. The following example uses the ShellExecuteEx API function.
// 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\C
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.ProcessMessage
GetExitCodeProcess(SEInfo.
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
ShowMessage('Calculator terminated') ;
end
else ShowMessage('Error starting Calc!') ;
end;