利用api如何修改显示器分辨率?

解决方案 »

  1.   


    procedure SetScreenSize(W,H: Integer);
    var
      DevMode: TDevMode;
    begin
      if (w<640) or (h<480) then exit;
      if EnumDisplaySettings(nil,0,DevMode) then 
      begin
        with DevMode do 
        begin
          dmPelsWidth := W;
          dmPelsHeight := H;
          dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
        end;
        ChangeDisplaySettings(DevMode, 0);
      end;
    end;
      

  2.   

    加个刷新率吧,不然默认是60(闪啊闪啊)
    procedure SetScreenSize(W,H: Integer);var  DevMode: TDevMode;begin  if (w<640) or (h<480) then exit;  if EnumDisplaySettings(nil,0,DevMode) then  begin    with DevMode do    begin      dmPelsWidth := W;      dmPelsHeight := H;      dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;      dmDisplayFrequency := 85;    end;    ChangeDisplaySettings(DevMode, 0);  end;end;