hallo
Ich verwnde folgende Procedure um eine App zu starten und zu warten bis sie zu ende ist.
Delphi-Quellcode:
uses
ShellApi;
procedure ShellExecute_AndWait(FileName: string; Params: string);
var
exInfo: TShellExecuteInfo;
Ph: DWORD;
begin
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := 'open';
ExInfo.lpParameters := PChar(Params);
lpFile := PChar(FileName);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@exInfo) then
Ph := exInfo.HProcess
else
begin
ShowMessage(SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute_AndWait('FileName', 'Parameter');
end;
Es funktioniert eigentlich prima, jedoch haben mir einige Leute die mit WinXp arbeiten gesagt dass bie ihnen keine APP gestartet wird. Sondern nur der FileExploerer geöffnet wird. ich hab das dann auch nochmal mit winXp probiert bei mir gings dann wieder. An was kann das liegen ? Was ist an der XP version falsch damit es bei einigen geht und bei anderen wiederum nicht ? weiss jemand an was das liegen könnte ?
greetz Cyrus