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 types of actual and formal var parameters must be identical

Delphi 映像劫持编辑器

Delphi 7 中dbgrid的排序

Delphi 获取listbox1多选的值

Delphi wmi获取网卡mac

Delphi 如何判断某一窗口最大化

Delphi apihook createprocess

Delphi memo 过滤重复字符 indexof

Delphi里实现彩色图片转为黑白图像的功能

在xp/2k 下实现 win+ctrl+del 等键的屏蔽的方法

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



打赏

取消

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

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

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

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

评论

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