关闭“未发现 NVIDIA 控制面板”的弹窗

时间:2024-03-01 18:45:09

【鸣谢】CSDN ID:

前言

迫于压力,众多厂商开始推广 DCH 版本驱动,NVIDIA 也不例外,而两者的差别在于后者的安装包中不带有 NVIDIA 控制面板。

解法

有两种办法:

  • 重新安装 NVIDIA 控制面板。
  • 禁用 NVIDIA Display Container LS 服务。

【个人延伸-风归来】

找到该服务

常规选项卡---可执行文件的路径,其值拷贝出来,为:

1 C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_33895c186dfc2a0d\Display.NvContainer\NVDisplay.Container.exe -s NVDisplay.ContainerLocalSystem -f C:\ProgramData\NVDisplay.ContainerLocalSystem.log -l 3 -d C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_33895c186dfc2a0d\Display.NvContainer\plugins\LocalSystem -r -p 30000 -cfg NVDisplay.ContainerLocalSystem\LocalSystem

通过任务管理器验证,上述路径里的NVDisplay.Container.exe正好是弹窗对应的进程。

其中的NVDisplay.Container.exe同目录下有一个bat文件,名为:NvContainerRecovery.bat。该bat文件的内容为:

 1 @echo off
 2 
 3 if "%1" == "" (
 4     echo Usage: NvContainerRecovery {Service Name}
 5     goto NvContainerRecoveryEnd
 6 )
 7 
 8 set __LOG_FILE=NvContainerRecovery.log
 9 if not "%2" == "" set __LOG_FILE=C:\ProgramData\NVIDIA\NvContainerRecovery%1.log
10 
11 set __RECOVERY_FILE=%LOCALAPPDATA%\NvContainerRecovery%1.reg
12 
13 echo Create recovery registry file %__RECOVERY_FILE% > %__LOG_FILE%
14 echo REGEDIT4 > %__RECOVERY_FILE%
15 echo. >> %__RECOVERY_FILE%
16 echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE%
17 echo "Recovery"=dword:00000001 >> %__RECOVERY_FILE%
18 echo. >> %__RECOVERY_FILE%
19 echo [HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE%
20 echo "Recovery"=dword:00000001 >> %__RECOVERY_FILE%
21 type %__RECOVERY_FILE% >> %__LOG_FILE%
22 echo Import %__RECOVERY_FILE% in registry >> %__LOG_FILE%
23 regedit.exe /s %__RECOVERY_FILE%
24 
25 echo. >> %__RECOVERY_FILE%
26 echo Starting service %1 >> %__LOG_FILE%
27 net start %1 >> %__LOG_FILE% 2>&1
28 if %ERRORLEVEL% EQU 0 goto NvContainerRecoveryEnd
29 
30 rem In case of failure, remove recovery setting from registry
31 echo. >> %__RECOVERY_FILE%
32 echo Prepare rollback registry file %__RECOVERY_FILE% >> %__LOG_FILE%
33 echo REGEDIT4 > %__RECOVERY_FILE%
34 echo. >> %__RECOVERY_FILE%
35 echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE%
36 echo "Recovery"=- >> %__RECOVERY_FILE%
37 echo. >> %__RECOVERY_FILE%
38 echo [HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE%
39 echo "Recovery"=- >> %__RECOVERY_FILE%
40 type %__RECOVERY_FILE% >> %__LOG_FILE%
41 
42 echo Import %__RECOVERY_FILE% in registry >> %__LOG_FILE%
43 regedit.exe /s %__RECOVERY_FILE%
44 
45 :NvContainerRecoveryEnd
46 if exist "%__RECOVERY_FILE%" (
47     echo. >> %__RECOVERY_FILE%
48     echo Delete registry file %__RECOVERY_FILE% >> %__LOG_FILE%
49     del /Q %__RECOVERY_FILE%
50 )
51 set __RECOVERY_FILE=
52 set __LOG_FILE=