コントロール パネルから項目を実行したい (たとえば、「画面の解像度」)。 MSは、WinExec を使えば簡単だと言っています。
これらの試行は機能します (CPanel を開きます) が、その直後に IDE がクラッシュします (BorDbk150N.dll でクラッシュします)。
procedure ProjectTest1;
VAR s: AnsiString;
begin
s:= 'c:\windows\system32\control.exe Desk.cpl,Settings';
WinExec(pansichar(s), SW_NORMAL);
end;
procedure ProjectTest2;
VAR
App : String;
Params : String;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
try
App := 'c:\windows\system32\control.exe';
Params := 'desk.cpl,Settings';
FillChar(StartupInfo, SizeOf(StartupInfo), 0);
StartupInfo.cb := SizeOf(StartupInfo);
if NOT CreateProcess(NIL, PChar(App+' '+Params), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then RaiseLastOSError;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end;
もっと良い方法があれば教えてください。
Delphi XE、Win 7 を使用