(我的最终目标是在运行到数据库的Autolisp编码连接之前验证是否安装了特定的数据库OCDB驱动程序)
我想知道:如何检查驱动程序是否安装在Windows10 x64计算机上,使用AutoLISP on BricsCAD (或者其他AutoCAD)?
另外,我可以知道您对使用autolisp编程安装驱动程序的可能性的评论吗?我想,有一些包装可用,或者在最坏的情况下,我可以简单地启动手动安装使用(startapp "Explorer" "...installer-winx64.msi")
。
谢谢,
发布于 2022-09-07 21:13:02
要确定是否安装了驱动程序,可以询问Win32_SystemDriver
WMI类--请考虑以下示例:
;; 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)
)
)
)
发布于 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进程上运行,这将可靠地为驱动程序提供正确的答案。
https://stackoverflow.com/questions/73627436
复制相似问题