Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
Delphi 2007 Professional
|
AW: Problem mit shellexecute und Pfad
31. Okt 2010, 10:01
Hi,
das funktioniert mit shellexecute nicht!
Habe eine andere Lösung:
Delphi-Quellcode:
procedure ShellExecAndWait(dateiname: string; dir: string; Parameter: string); // benötigt ShellAPI in Uses
var executeInfo: TShellExecuteInfo;
dw: DWORD;
begin
FillChar(executeInfo, SizeOf(executeInfo), 0);
with executeInfo do
begin
cbSize := SizeOf(executeInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
executeInfo.lpVerb := 'open';
executeInfo.lpParameters := PChar(Parameter);
executeInfo.lpDirectory:= PChar(dir);
lpFile := PChar(dateiname);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@executeInfo) then dw := executeInfo.HProcess
else
begin
ShowMessage('Fehler: ' + SysErrorMessage(GetLastError));
exit;
end;
while WaitForSingleObject(executeInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(dw);
end;
Aufgerufen mit:
dbpath:=extractfilepath(application.ExeName)+'LCRset2\';
ShellExecAndWait(dbpath + '\LCRset2.exe',dbpath,'');
so funktionierts nicht.
i:=ShellExecute(Application.Handle, 'open', Pchar(dbpath + 'LCRset2.exe'),nil,pchar(dbpath), SW_SHOW);
Grüsse
Rainer
PS: würde mich aber schon interessieren warum das so ist!
Rainer Unger Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
|