c# - 强制重新加载 Windows 视频驱动程序。有可能吗?

标签 c# windows video driver nvidia

一些驱动程序在启动时加载它们时使用写入注册表的参数来配置它们自己。 我可以修改这些值然后重新启动,但我想知道是否可以强制重新加载驱动程序,使更改在不重新启动的情况下生效。

具体来说,我说的是视频驱动程序 (nvidia)。

我在某处读到,通过 pINvoke() [User32.ll]::ChangeDisplaySettings() 调用具有 640x480x8 位分辨率(该分辨率太低以至于现代驱动程序不支持)将强制 Windows 加载“标准 VGA 驱动程序”,并使用当前分辨率再次调用将再次加载 nvidia 驱动程序。

虽然这不起作用。至少在 Windows 7 中,即使低分辨率没有显示为“支持”,系统也会将屏幕缩小到屏幕中央的一个小方 block ,显示低分辨率而无需卸载 nvidia 驱动程序。

那么,是否有任何 .NET/Win32 API、要重新启动的服务,或任何强制重新加载视频驱动程序的方法?

也许以编程方式禁用设备(就像您可以从设备管理器中所做的那样)并再次重新启用它?

有什么想法吗?

非常感谢。

最佳答案

我终于做到了。遵循禁用/重新启用设备的想法确实有效。

当然,问题在于从设备管理器中禁用您的视频卡设备并不是一个好主意,因为您可能无法再次重新启用它。

虽然以编程方式进行,但看起来并不那么不安全。理论上,假设该应用已成功禁用设备,重新启用它应该不会造成问题。

我找到了 here ,在 stackoverflow 中有一个很棒的类来完成这个,感谢 Justin Grant。

当视频设备重新启用时,视频驱动程序会自行重新加载。

希望对大家有帮助。

关于c# - 强制重新加载 Windows 视频驱动程序。有可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500411/

相关文章:

c# - 如何使用 closedxml 将多个数据表添加到一个工作表?

javascript - 滚动 html5 上的视频

c# - 遍历对象集合 c#

c# - 如何使用匿名函数 (lambda) 复制此代码?

c# - 我正在尝试为白天/夜晚的配色方案设计一个解决方案,但卡住了

video - 在网站上播放任何视频(flash、divx、avi/wmv(m2ts/mts、mkv?))

javascript - 从 html5 canvas 到视频

c++ - Windows Batch - 如何在将标准输出重定向到文件时添加时间戳

windows - 在 Windows 上解析一个非常大的文本文件

python - 如何让 python 加载混合模式 .dll 引用的 .NET .dll?