So, ich habs probiert aber leider nicht hinbekommen. Könnte gut an der späten Stunde liegen
Delphi-Quellcode:
procedure ExecuteProgramm(
const PFileName:
string);
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile:
string;
Handle: THandle;
begin
ExecuteFile := '
"' + PFileName + '
"';
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo
do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(ExecuteFile);
nShow := SW_SHOWNORMAL;
end;
Handle := SEInfo.Wnd;
if ShellExecuteEx(@SEInfo)
then
{begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
end} else
begin
Application.MessageBox('
Fehler beim Starten des Programms',
'
Hinweis', MB_OK + MB_ICONERROR);
end;
if Form1.checkbox1.checked
then SetProcessAffinityMask(
Handle, 0);
end;
procedure Aufruf;
begin
ExecuteProgramm(Form1.File1.Text);
// im Edit steht der Pfad
end;
Der Aufruf klappt, d.h. das Programm wird gestartet, nur die Zuweisung an den Kern funktioniert nicht...