delphi 开关显示器操作


本文整理自网络,侵删。

 
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  EDD_GET_DEVICE_INTERFACE_NAME = 1;
  ENUM_REGISTRY_SETTINGS = DWORD(-2);

procedure TForm1.Button1Click(Sender: TObject);
var
  Display: TDisplayDevice;
  DevMode: TDevMode;
begin
  Display.cb := SizeOf(TDisplayDevice);
  EnumDisplayDevices(nil, 1,Display, EDD_GET_DEVICE_INTERFACE_NAME);
  ZeroMemory(@DevMode, SizeOf(TDevMode));
  DevMode.dmSize := SizeOf(TDevMode);
  DevMode.dmBitsPerPel := 32;
  DevMode.dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY or DM_DISPLAYFLAGS or DM_POSITION;
  ChangeDisplaySettingsEx(pwidechar(@Display.DeviceName[0]),DevMode, 0, CDS_UPDATEREGISTRY or CDS_NORESET, nil);
  ChangeDisplaySettingsEx(nil, PDevMode(nil)^, 0, 0, nil);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Display: TDisplayDevice;
  DevMode: TDevMode;
begin
  Display.cb := SizeOf(TDisplayDevice);
  EnumDisplayDevices(nil, 1 ,Display, EDD_GET_DEVICE_INTERFACE_NAME);
  EnumDisplaySettings(pwidechar(@Display.DeviceName[0]),ENUM_REGISTRY_SETTINGS, DevMode);
  DevMode.dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY or DM_DISPLAYFLAGS or DM_POSITION;
  ChangeDisplaySettingsEx(pwidechar(@Display.DeviceName[0]),DevMode, 0, CDS_UPDATEREGISTRY or CDS_NORESET, nil);
  ChangeDisplaySettingsEx(nil, PDevMode(nil)^, 0, 0, nil);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Button2.Click;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Display: TDisplayDevice;
  DevMode: TDevMode;
begin
//获取显卡信息
  Display.cb := SizeOf(TDisplayDevice);
  EnumDisplayDevices(nil, 1,Display, EDD_GET_DEVICE_INTERFACE_NAME);
  Memo1.Lines.Add(pwidechar(@Display.DeviceString[0]));
  Memo1.Lines.Add(pwidechar(@Display.DeviceName[0]));
  Memo1.Lines.Add(pwidechar(@Display.DeviceKey[0]));

end;

end.

相关阅读 >>

Delphi ioutils 单元(6): tpath(结构体)路径的提取和处理

Delphi从dbgrid导出数据保存成excel文件

Delphi获取flash文件的影片时长,原始尺寸,帧数等信息

Delphi 使用代理服务器

Delphi processid, process handle, window handle 之间的互相转换

Delphi 数字签名添加器源码

Delphi 用nethttpclient执行post操作遇到的问题

Delphi 10.x ide界面

Delphi中判断某个文件是否已经打开

Delphi一个非常完整的取windows os 版本信息的函数

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...