程序进行设置屏幕分辨率的问题
我用下面这段代码设置屏幕的分辨率,当作为一个普通应用程序时(Application),设置分辨率是成功的,而当我将这段代码写入一个服务程序中时(Service Application),在服务中设置不成功,跟踪调试发现反回值rlt为-1,即设置失败。请教各位,如何解决问题?
当我改变ChangeDisplaySettings的第二个参数,用其它几个参数时,也都设置不成功,有些返回-1,一些返回-4,即标记错误。
function SetScreenResolution(nWidth, nHeight: Integer): string;
var
lpDevMode: TDeviceMode;
rlt: Integer;
begin
Result := 'Error';
if EnumDisplaySettings(nil, 0, lpDevMode) then
begin
lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := nWidth;
lpDevMode.dmPelsHeight := nHeight;
rlt := ChangeDisplaySettings(lpDevMode, 0);
case rlt of
DISP_CHANGE_SUCCESSFUL: Result := 'OK';
DISP_CHANGE_FAILED: Result := 'Failed';
DISP_CHANGE_BADMODE: Result := 'BadMode';
DISP_CHANGE_NOTUPDATED: Result := 'NotUpdated';
DISP_CHANGE_BADFLAGS: Result := 'BadFlags';
end;
end;
end;