本文整理自网络,侵删。
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);beginButton2.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获取flash文件的影片时长,原始尺寸,帧数等信息
Delphi processid, process handle, window handle 之间的互相转换
Delphi 用nethttpclient执行post操作遇到的问题
Delphi一个非常完整的取windows os 版本信息的函数
更多相关阅读请进入《Delphi》频道 >>