Vielleicht kannst Du es mal ausprobieren, zwischen dem Shellexecute und dem Close
eine Pause/delay einzubauen.
Haben denn die Rechner, bei denen das Problem auftritt, Hyperthreading eingeschaltet?
Hyperthreading - eine CPU mit 2 cores.
Oder Du kannst mal das hier ausprobieren:
Delphi-Quellcode:
function ExecFile(filename,params:
String;windowState:word):Boolean;
var
cmdLine:
String;
SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
CmdLine := '
"' + Filename + '
" ' + Params;
FillChar(SUInfo, SizeOf(SUInfo), #0);
with SUInfo
do begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WindowState;
end;
try
result := CreateProcess(
NIL, PChar(CmdLine),
NIL,
NIL, FALSE,
CREATE_NEW_CONSOLE
or
NORMAL_PRIORITY_CLASS,
NIL,
PChar(ExtractFilePath(Filename)),
SUInfo, ProcInfo);
except
on E:
Exception do
begin
Result:=false;
end;
end;
end;
Aufruf:
ExecFile(ExtractFilePath(Application.Exename)+'Vid.exe',FileName,SW_SHOW);
Grüße
Klaus
[edit] code hinzugefügt [/edit]