c# - 如何在未安装驱动程序时禁止 FTDI .NET DLL 提醒用户

标签 c# .net windows driver

我有一个使用 FTDI 的 FTD2XX.DLL 的 C# 应用程序。此应用程序用于单个产品的多代并抽象物理硬件。有一个 FTDI 和一个 HID 实现。

应用程序搜索合适的 FTDI 和 HID 设备,但如果用户拥有 HID 代,则可能不存在 FTDI 驱动程序。

现在抛开背景。当我实例化 FTDI 类时,我得到一个模式,不是由我的代码生成的关于找不到 FTDI 驱动程序并询问用户是否安装了驱动程序。我尝试将它包装在 TRY/CATCH block 中,但没有抛出异常。

1:有没有办法在尝试实例化 FTDI 类之前确定是否安装了 FTDI 驱动程序?

2:如果没有,有没有办法禁止FTDI dll在发生这种情况时提醒用户?

最佳答案

我有完全相同的要求——在我的例子中,我列举了标准串行端口的列表,并将其附加到任何连接的 FTDI 设备的列表中。如果未安装驱动程序,那么我不希望出现那些模式对话框。 我想出的一种快速而肮脏的方法是检查文件 FTD2XX.DLL 是否位于 c:\windows\system32(或安装 Windows 的任何位置)。这个文件的存在基本上意味着驱动程序已经安装。

// c# example
string path = Environment.GetFolderPath(Environment.SpecialFolder.System);
bool installed = File.Exists(path + Path.DirectorySeparatorChar + "FTD2XX.DLL");

关于c# - 如何在未安装驱动程序时禁止 FTDI .NET DLL 提醒用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5276438/

相关文章:

c# - 访问承载服务的对象

c# - Windows Phone 8.1 命令栏

.net - 为什么 LINQ to objects 中的 Skip() 没有优化?

windows - 安装已删除的 Windows 功能

windows - 如何在 Windows 上调试 Perl XS 代码

windows - 如何在不填充的情况下绘制圆角矩形(在 MFC 中)?

C# 正则表达式可选匹配

c# - EF Core 5.0 - 如何在迁移中使用 List<string> 属性播种实体?

c# - 在 .Net 中过滤 DataGridView 行

.net - 在没有第一个元素的情况下返回 list<T> 的最简单方法