zoukankan      html  css  js  c++  java
  • DELPHI 修改系统分辨率

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      OldWinKuan,OldWinGao:INTEGER;    //获取当前窗体分辨率
    
    implementation
    
    {$R *.dfm}
    
    //更改系统显示刷新频率
    function   ChangeDisplay(width,height:word)   :BOOL   ;
    var
            lpDevMode   :TDEVICEMODe   ;
    begin
            result   :=   EnumDisplaySettings(Nil   ,0   ,lpDEVMode)   ;
            if   result   then
            begin
                    lpDevmode.dmFields   :=   DM_PELSWIDTH   or   DM_PELSHEIGHT   ;
                    lpdevmode.dmPelsWidth   :=   width   ;
                    lpdevmode.dmPelsHeight   :=   height   ;
                    result   :=   ChangeDisplaySettings(lpdevmode   ,CDS_UPDATEREGISTRY)   =   DISP_CHANGE_SUCCESSFUL   ;
            end;
    end;
    
    {上面的代码,在2000系统下执行,刷新频率为最低,所以必改刷新频率。以下为刷新率函数}
    
    //获得当前系统显示刷新频率
    {function   GetDispSet():integer;
    var
        DeviceMode:   TDeviceMode;
    begin
          result:=0;
          EnumDisplaySettings(nil,   Cardinal(-1),   DeviceMode);
          result:=DeviceMode.dmDisplayFrequency;
    end;
    
    //改变系统显示刷新频率
    function   ChangeDispSet(iFrequency:integer):integer;
    var
        DeviceMode:TDeviceMode;
    begin
          result:=0;
          EnumDisplaySettings(nil,Cardinal(-1),   DeviceMode);
          DeviceMode.dmDisplayFrequency:=Cardinal(iFrequency);
          result:=ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY);
    end;   }
    
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    
      OldWinKuan:=screen.Width;
      OldWinGao:=screen.Height;
    if (screen.Width <> 1280) and (screen.Height <> 1024) then
    Begin
     ChangeDisplay(1280,1024)        //修改屏幕分辨率为 1280*1024
    End;
    
    end;
    
    
    
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
    
    if (screen.Width <> OldWinKuan) and (screen.Height <> OldWinGao) then
    Begin
     ChangeDisplay(OldWinKuan,OldWinGao)
    End;
    
    end;
    
    end.
    

      

  • 相关阅读:
    10.16 NOIP模拟赛
    10.14 牛客提高集训营5
    10.12 正睿普及4
    Codeforces Round #516 (Div. 2) (A~E)
    hihoCoder.1509.异或排序(位运算 思路)
    hihoCoder.1513.小Hi的烦恼(bitset 五维偏序)
    hihoCoder挑战赛19 A.Rikka with Sequence(状压DP)
    BZOJ.3668.[NOI2014]起床困难综合症(贪心)
    BZOJ.4903.[CTSC2017]吉夫特(Lucas DP)
    BZOJ.3329.Xorequ(数位DP)
  • 原文地址:https://www.cnblogs.com/Bung/p/2117843.html
Copyright © 2011-2022 走看看