我想从控制面板执行一个项目(例如“屏幕分辨率”)。 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;
如果你有更好的方法请告诉我。
使用德尔福 XE,Win 7