虚拟显示驱动程序
这是一个用 Rust 编写的 Windows 驱动程序,用于创建虚拟桌面。
它有许多用途,例如:
- 用于 VR 的私人虚拟桌面
- 用于远程桌面
- 用于屏幕共享演示,通过第二个显示器为您提供更多工作空间
- 在没有物理显示器的情况下获得更高分辨率(或更高刷新率)的显示(注意,您只能在软件/VR 中使用)
- 其他用途?请告诉我!
支持:Windows 10 2004+ (仅 x64)
对于任何错误报告,请参阅调试或报告崩溃部分,以获取错误报告的崩溃信息
功能
- 多显示器(最多 10 个)
- 每个显示器支持多种分辨率
- 每种分辨率支持多种刷新率
- 用于配置所有显示器、禁用所有/单个显示器的应用程序
如何安装
- 前往发布部分获取最新驱动程序。
- 下载(您可能会收到警告,只需按接受即可)
- 安装证书
- 运行 msi 安装程序
- 驱动程序将被安装、启动,您可以在开始菜单中找到控制应用程序的快捷方式,名为"Virtual Display Driver Control"
注意:对于安装/运行应用程序有困难的用户,请参阅 #49
如何安装便携版
- 前往发布部分获取最新驱动程序。
- 下载(您可能会收到警告,只需按接受即可)
- 安装证书
- 安装
install.reg
- 打开设备管理器
- 点击列表中的任何项目
- 转到
操作 -> 添加旧式硬件
- 在
手动从列表中选择要安装的硬件
上点击下一步 - 在
显示所有设备
上点击下一步 - 点击
从磁盘安装...
并选择包含驱动程序文件的文件夹 - 完成设置
- 驱动程序将被安装并启动。您在文件夹中看到的控制面板 exe 可以在任何位置使用。
可选:使用 nefcon
CLI 安装驱动程序
- 您可能需要安装驱动程序证书
- 获取
nefconc
CLI
- 下载官方最新版本
- 或从我们的仓库:installer/nefconc.exe
- 将
nefconc.exe
放入解压后的便携文件夹 - 在此文件夹中打开控制台并运行:
.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
.\nefconc.exe --create-device-node --class-name Display --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318" --hardware-id Root\VirtualDisplayDriver
.\nefconc.exe --install-driver --inf-path ".\VirtualDisplayDriver.inf"
您也可以通过执行第一个命令来完全卸载驱动程序:
.\nefconc.exe --remove-device-node --hardware-id Root\VirtualDisplayDriver --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
安装证书
需要安装证书以使 Windows 接受驱动程序
- 在您下载的 zip 文件中,有一个文件
DriverCertificate.cer
和install-cert.bat
- 以管理员身份打开 cmd 提示符并运行
install-cert.bat
- 验证证书是否正确安装。*
* 如果证书没有正确安装,则驱动程序将无法安装。如果驱动程序安装失败,这很可能是原因;您应该检查证书是否确实已安装。尝试在管理员 cmd 提示符中手动运行 install-cert.bat
文件中的命令(如下),以确保证书正确安装(对于根和 TrustedPublisher 存储)。命令将告诉您是否成功添加。
certutil -addstore -f root "DriverCertificate.cer"
certutil -addstore -f TrustedPublisher "DriverCertificate.cer"
您还可以搜索 管理计算机证书
,查看 受信任的发布者
和 受信任的根证书颁发机构
,您会看到名为 DriverCertficate
的证书。
您可以通过右键点击菜单项 -> "所有任务" -> "导入",然后按照导入向导中的说明手动导入。
为什么这么复杂?我没有添加自动证书安装的原因是因为我认为证书是个人隐私,不应该在用户不知情的情况下自动添加。
更新
- 下载新版本
- 安装msi安装包
使用应用
请查看维基获取应用使用说明。
如何构建
- 下载并安装Visual Studio(使用2022版本)
- 选择并安装"使用C++的桌面开发"工作负载以及Windows SDK
- 安装WDK
- 如果没有的话,安装
cargo-make
- 安装
cargo-target-dir
确保生成自己的Windows代码签名证书,并按照"安装证书"部分进行安装。
您可以使用cargo make build
(调试版)或cargo make -p prod build
(发布版)进行构建,然后在target/output
目录中查看所有文件。
要构建安装程序,请执行cargo make build-installer
(开发版)或cargo make -p prod build-installer
(发布版)。为了构建安装程序,您需要安装wix toolset并将其添加到Path
中。
...或者,fork我的项目并使用github actions构建。您需要两个仓库密钥:
PRIVATE_KEY
- 一个base64编码的Windows代码签名pfx证书(使用certutil -encode
)PRIVATE_KEY_PASSWORD
- 不言自明
调试或报告崩溃
如果您想调试问题或需要报告崩溃,请按照以下说明操作:
驱动程序的所有消息都记录在Windows事件查看器中。
- 打开事件查看器
- 转到"Windows日志" -> "应用程序"
- 您将在源名称"VirtualDisplayDriver"下看到驱动程序的日志
如果您想让它们更容易查看:
- 右键单击"自定义视图"
- 点击"创建自定义视图..."
- 选择"按源"
- 在列表中找到并选择"VirtualDisplayDriver",然后按"确定"
- 输入"VirtualDisplayDriver"作为名称,然后按"确定"
- 点击"创建自定义视图..."
- 现在您应该可以在"自定义视图"部分的"VirtualDisplayDriver"下看到任何日志消息
如果您使用的是以调试模式编译的驱动程序,您可以在实时日志记录器中看到崩溃消息和其他信息:下载DebugViewPP,运行它,点击"Log"->"Capture Global Win32"(注意,这需要以管理员权限运行DebugViewPP)。只要程序打开并捕获,消息就会在记录时实时显示。在尝试调试某些内容时,这比使用事件日志更容易。
贡献
欢迎所有贡献!
对于首次贡献者,请阅读我们的贡献指南。
分叉或在其他项目中使用
欢迎您在自己的项目中使用本项目。
如果这样做,请将您的代码更改贡献回主项目,甚至可以通过赞助支持我们。每一点帮助都能让我们做出更好的项目。我们感谢您的支持,谢谢!
在哪里交流或获取帮助
如果您有任何问题、需要支持、需要协作开发或任何其他用途,您可以加入我们的Discord服务器(查看相关的#virtual-display-driver
频道)。这是最快捷、最简单的沟通方式。
您也可以在项目的讨论部分发帖。但请注意,使用Discord频道会更快地看到并回复您的消息。
支持项目
如果这个项目对您有帮助,或者您想表示感谢并帮助持续开发,欢迎赞助。❤️