首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用AutoLISP检查是否安装了特定的驱动程序

如何使用AutoLISP检查是否安装了特定的驱动程序
EN

Stack Overflow用户
提问于 2022-09-06 20:25:40
回答 2查看 45关注 0票数 0

(我的最终目标是在运行到数据库的Autolisp编码连接之前验证是否安装了特定的数据库OCDB驱动程序)

我想知道:如何检查驱动程序是否安装在Windows10 x64计算机上,使用AutoLISP on BricsCAD (或者其他AutoCAD)?

另外,我可以知道您对使用autolisp编程安装驱动程序的可能性的评论吗?我想,有一些包装可用,或者在最坏的情况下,我可以简单地启动手动安装使用(startapp "Explorer" "...installer-winx64.msi")

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2022-09-07 21:13:02

要确定是否安装了驱动程序,可以询问Win32_SystemDriver WMI类--请考虑以下示例:

代码语言:javascript
运行
复制
;; Win32 System Driver-p  -  Lee Mac
;; Returns T if a driver exists with the supplied name

(defun LM:win32systemdriver-p ( drv )
    (LM:wmiqueryhasmembers-p (strcat "select * from win32_systemdriver where name = '" drv "'"))
)

;; WMI Query has Members-p  -  Lee Mac
;; Returns T if the supplied WMI query has members

(defun LM:wmiqueryhasmembers-p ( qry / rtn srv wmi )
    (if (setq wmi (vlax-create-object "wbemscripting.swbemlocator"))
        (progn
            (setq rtn
                (vl-catch-all-apply
                   '(lambda ( )
                        (setq srv (vlax-invoke wmi 'connectserver)
                              qry (vlax-invoke srv 'execquery qry)
                        )
                        (< 0 (vla-get-count qry))
                    )
                )
            )
            (foreach obj (list qry srv wmi)
                (if (= 'vla-object (type obj)) (vlax-release-object obj))
            )
            (and (not (vl-catch-all-error-p rtn)) rtn)
        )
    )
)
票数 0
EN

Stack Overflow用户

发布于 2022-09-08 15:21:27

采用的测试方法很简单:(member "MySQL ODBC 3.51 Driver" ; Driver name in the Windows Registry (vl-registry-descendents "HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBCINST.INI\\"))

如果在x86进程(32位应用程序)或使用x64系统的x64进程上运行,这将可靠地为驱动程序提供正确的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73627436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档