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

如何禁止FTDI .NET DLL在未安装驱动程序时提醒用户,第1张

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

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

应用程序search适当的FTDI和HID设备,尽pipe如果用户具有HID生成可能没有FTDI驱动程序存在。

背景放在一边。 当我实例化FTDI类时,我得到一个模式,而不是由我的代码生成的关于找不到FTDI驱动程序,并询问用户是否安装驱动程序。 我试图在TRY / CATCH块中包装这个,但是没有抛出exception。

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

`未处理的exception:System.ArgumentNullException:值不能为空.`使用启动脚本运行`dotnet run`时出错

使用.NET 4.0更新windows XP上的GitExtensions会得到错误“… 4.0必须安装…”

如何以独立于区域的方式查找本地组?

如何阅读设备和驱动程序版本

build议在.NET中创build命令行文本编辑器

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

禁用交互式login

我怎么能听监视器被添加或删除?

创build自我开放的文档

无法findtypes或名称空间名称“ServiceController”

如何获得图像中的多数颜色?

我有完全相同的要求 – 在我的情况下,我列举了标准的串行端口列表,并附加了任何附加的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");

其他方式:

[Dllimport("kernel32.dll")] private static extern IntPtr Loadlibrary(string dllToload); [Dllimport("kernel32.dll")] private static extern bool Freelibrary(IntPtr hmodulee); public bool IsDriverInstalled() { //trying to load library IntPtr handler = Loadlibrary(@"FTD2XX.DLL"); if (handler == IntPtr.Zero) return false; else return true; // Driver is installed //Don't forget to free .dll Freelibrary(handler); }

这听起来好像是你的FTD2XX.DLL与你的应用程序捆绑在一起。

你不应该这样做,你应该使用FTDI驱动程序安装到windows系统目录中的最新的DLL。 如果您的应用程序目录中有一个旧版本的DLL,并且用户具有较新的驱动程序(可能由其他基于FTDI的设备安装),则可能会遇到各种麻烦。

作为奖励,这在大多数情况下解决了你的问题:如果系统上没有安装FTD2XX.DLL,你会得到一个异常,尝试p / invoke,你可以捕获。

但是,为了完美地避免这个错误,你需要做FTD2XX.DLL的内部检查(因为这个DLL显然可以在没有任何驱动的情况下存在于系统中)。 例如,检查驱动程序是否在HKLMSystemCurrentControlSetservices下的注册表中列出,将会比您拥有的更强大的检查。 仍不确定是否等同于FTDI自己的支票。

我重写了导致错误的FTDI库:它是由构造函数中的MessageBox.Show引起的。 我已经用普通的异常抛出代替了这个。

请参阅我的博客,了解重新设计的包装和代码: 连接到Silverlight 5 RC中的FTDI设备

总结

以上是内存溢出为你收集整理的如何禁止FTDI .NET DLL在未安装驱动程序时提醒用户全部内容,希望文章能够帮你解决如何禁止FTDI .NET DLL在未安装驱动程序时提醒用户所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存