⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 Delphi实现对nVIDIA显卡的设置
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, XPMan, StdCtrls, Buttons, shellapi,
  //添加Registry单元
  Registry;

type
  TMainForm = class(TForm)
    StatusBar1: TStatusBar;
    XPManifest1: TXPManifest;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Direct3D: TCheckBox;
    TabSheet2: TTabSheet;
    ClockFrequency: TCheckBox;
    Info: TCheckBox;
    AGP: TCheckBox;
    OpenGL3D: TCheckBox;
    GPUFan: TCheckBox;
    GPUWarning: TCheckBox;
    Bevel2: TBevel;
    VMR: TCheckBox;
    TV: TCheckBox;
    Debug: TCheckBox;
    DVI: TCheckBox;
    Update: TCheckBox;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Image1: TImage;
    //保存更改
    function SaveRegChange(ID:Integer;State:Boolean):Boolean;
    //检测设置
    procedure CheckboxState;
    procedure OpenGL3DClick(Sender: TObject);
    procedure Label3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormActivate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  Reg     : TRegistry;
implementation

{$R *.dfm}

function TMainForm.SaveRegChange(ID: Integer; State:Boolean): Boolean;
begin
//保存更改设置
Result:=true;
try
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    //*******Direct3D、OpenGL设置************
    if ID=1 then begin
       Reg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\Stereo3D',true);
       if State then begin
          Reg.WriteInteger('ShowAllViewerTypes',1);
          Reg.WriteInteger('StereoDefaultOn',1);
          Reg.WriteInteger('StereoEnable',1);
          Reg.WriteInteger('StereoViewer',1);
       end else begin
          Reg.DeleteValue('ShowAllViewerTypes');
          Reg.DeleteValue('StereoDefaultOn');
          Reg.DeleteValue('StereoEnable');
       end;

       Reg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\NVTweak\Defaults\OpenGL',true);
       if State then
          Reg.WriteInteger('DefaultSwapInterval',1)
       else Reg.DeleteValue('DefaultSwapInterval');

       Reg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\OpenGL\Debug',true);
       if State then
          Reg.WriteInteger('ShaderObjects',1)
       else Reg.DeleteValue('ShaderObjects');

       Reg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\NVTweak',true);
       if State then begin
          Reg.WriteInteger('NvCplEnableOGLAccel',1);
          Reg.WriteInteger('NvCplEnableOglStereoPage',1);
          Reg.WriteInteger('NvCplEnableAppProfilePage',0);
       end else begin
          Reg.DeleteValue('NvCplEnableOGLAccel');
          Reg.DeleteValue('NvCplEnableOglStereoPage');
          Reg.WriteInteger('NvCplEnableAppProfilePage',1);
       end;
    end;

    Reg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\NVTweak',true);
    case ID of
    //*****其他 Direct3D 设置、时钟频率*******
      2,12 : begin
               if Direct3D.Checked and ClockFrequency.Checked then
                  Reg.WriteInteger('Coolbits',3);
               if Direct3D.Checked and not(ClockFrequency.Checked) then
                  Reg.WriteInteger('Coolbits',1);
               if not(Direct3D.Checked) and ClockFrequency.Checked then
                  Reg.WriteInteger('Coolbits',2);
               if not(Direct3D.Checked) and not(ClockFrequency.Checked)then
                  Reg.DeleteValue('Coolbits');
             end;
         //*****GPU 风扇控制*******
         3 : begin
               if State then begin
                  Reg.WriteInteger('NvCplEnableFanControl',3);
                  Reg.WriteInteger('NvCplHotPlugAware',1);
                  Reg.WriteInteger('NvCplEnableActiveClocking',1);
               end else begin
                  Reg.DeleteValue('NvCplEnableFanControl');
                  Reg.DeleteValue('NvCplHotPlugAware');
                  Reg.DeleteValue('NvCplEnableActiveClocking');
               end;
             end;
         //******GPU 极限警告*********
         4 : begin
               if State then
                  Reg.WriteInteger('NvCplThermalSettings',32)
               else Reg.WriteInteger('NvCplThermalSettings',34);
             end;
         //*******附加信息***********
         5 : begin
               if State then
                  Reg.WriteInteger('NvCplEnableAdditionalInfoPage',1)
               else Reg.DeleteValue('NvCplEnableAdditionalInfoPage');
             end;
         //******AGP 设置*********
         6 : begin
               if State then
                  Reg.WriteInteger('NvCplEnableAGPSettingsPage',1)
               else Reg.DeleteValue('NvCplEnableAGPSettingsPage');
             end;
         //******允许将 DVI 看作 HDTV******
         7 : begin
               if State then
                  Reg.WriteInteger('NvCplAllowForceDVIAsHDTV',1)
               else Reg.DeleteValue('NvCplAllowForceDVIAsHDTV');
             end;
         //********允许自动探测 TV*********
         8 : begin
               if State then
                  Reg.WriteInteger('NvCplAllowForceTVDetection',1)
               else Reg.DeleteValue('NvCplAllowForceTVDetection');
             end;
         //********激活 VMR 设置********
         9 : begin
               if State then
                  Reg.WriteInteger('NVCplShowEnableVMR',1)
               else Reg.DeleteValue('NVCplShowEnableVMR');
             end;
        //******刷新率超频*******
        10 : begin
               if State then
                  Reg.WriteInteger('NvCplDisableRefreshRatePage',0)
               else Reg.WriteInteger('NvCplDisableRefreshRatePage',1);
             end;
        //******调试信息*******
        11 : begin
               if State then
                  Reg.WriteInteger('NvCplEnableTroubleshootingPage',1)
               else Reg.DeleteValue('NvCplEnableTroubleshootingPage');
             end;
    end;
  finally
  Reg.CloseKey;
  Reg.Free;
  end;
except
Result:=false;
end;

end;

procedure TMainForm.OpenGL3DClick(Sender: TObject);
begin
   SaveRegChange(TCheckbox(sender).Tag,TCheckbox(sender).Checked);
end;

function KeyState(Name: string): Integer;
begin
  Result:=-1;
  try
    Reg:=TRegistry.Create;
    try
      Reg.RootKey:=HKEY_LOCAL_MACHINE;
      REg.OpenKey('\SOFTWARE\NVIDIA Corporation\Global\NVTweak',false);
      //检测注册表键值情况
        if Reg.ValueExists(Name)then begin
           if Reg.GetDataType(Name)=rdInteger then
              Result:=Reg.ReadInteger(Name)
           else Result:=-1;
        end else Result:=-1;
      finally
        Reg.CloseKey;
        Reg.Free;
      end;
  except
  end;
end;

procedure TMainForm.CheckboxState;
begin
//检测设置
    //*****Direct3D、OpenGL设置******
     if KeyState('NvCplEnableAppProfilePage')=0 then
        OpenGL3D.Checked:=true;

     //*******其他 Direct3D 设置、时钟频率*******
     if KeyState('Coolbits')=1 then
        Direct3D.Checked:=true
     else if KeyState('Coolbits')=2 then
        ClockFrequency.Checked:=true
     else if KeyState('Coolbits')=3 then begin
        ClockFrequency.Checked:=true;
        Direct3D.Checked:=true;
     end;

     //********GPU 风扇控制*********
     if KeyState('NvCplEnableFanControl')=3 then
        GPUFan.Checked:=true;

     //******GPU 极限警告******
     if KeyState('NvCplThermalSettings')=32 then
        GPUWarning.Checked:=true;

     //*******附加信息***********
     if KeyState('NvCplEnableAdditionalInfoPage')=1 then
        Info.Checked:=true;

     //*****AGP 设置*****
     if KeyState('NvCplEnableAGPSettingsPage')=1 then
        AGP.Checked:=true;

     //******允许将 DVI 看作 HDTV******
     if KeyState('NvCplAllowForceDVIAsHDTV')=1 then
        DVI.Checked:=true;

    //********允许自动探测 TV*********
    if KeyState('NvCplAllowForceTVDetection')=1 then
       TV.Checked:=true;

    //********激活 VMR 设置********
    if KeyState('NVCplShowEnableVMR')=1 then
       VMR.Checked:=true;

    //******刷新率超频*******
    if KeyState('NvCplDisableRefreshRatePage')=0 then
       Update.Checked:=true;

    //******调试信息*******
    if KeyState('NvCplEnableTroubleshootingPage')=1 then
       Debug.Checked:=true;
end;

procedure TMainForm.Label3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   ShellExecute(handle,nil,'mailto:hualee2008@163.com?subject=关于“激活 nVIDIA 显卡的秘密选项”',nil,nil,SW_SHOWNORMAL);
end;

procedure TMainForm.FormActivate(Sender: TObject);
var
   nVIDIA:Boolean;
begin
//开始检测设置状态
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if not Reg.KeyExists('\SOFTWARE\NVIDIA Corporation')then begin
       Messagebox(handle,'对不起,你使用的不是 nVIDIA 显卡或者没有正确安装驱动程序,所以本软件功能无效,如果你确实要使用的话,那只能在注册表中增加几条垃圾而以 ^_^','提示',mb_ok+mb_iconinformation);
       nVIDIA:=false;
       Exit;
    end else
       nVIDIA:=true;
  finally
    Reg.Free;
  end;

  if nVIDIA then CheckboxState;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -