马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
学习http://bbs.xdcad.net/thread-725185-1-1.htmldcl1214大神的自动注册sqlite 驱动
发现没有管理员运行CAD,vl-registry-write 不能写HKLM根键,wsh(WScript.shell) 的regwrite方法写HKLM也一样,所以自动驱动不成功。所以想找一个不用管理员运行CAD。简单的思路就是用wsh的run方法,运行regeit命令。经过测试可行。reg文件可以自己做好,也可以在软件里写好。
- (vl-load-com)
- (defun c:wsh_reg(/ fso regfnm regf regnr)
-
- (setq fso (vlax-create-object "scripting.FileSystemObject")) ;;;;创建文件系统对象
- (setq regfnm "d:\\bdwg\\sqlite\\668.reg") ;;;;临时的注册表文件名称
- (setq regf (vlax-invoke fso 'OpenTextFile regfnm 2 t 0)) ;;;;创建临时的注册表文件对象 textstream
- (setq regnr ;;;;;;注册表内容注意根键\\,字符里面的路径要\\\\这样才可以
- "Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBC.INI\\SQLite3 Datasource]
- "Driver"="D:\\\\bdwg\\\\sqlite\\\\odbc\\\\sqlite64\\\\sqlite3odbc.dll"
- "Database"=""
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ODBC\\ODBCINST.INI\\SQLite3 ODBC Driver]
- "UsageCount"=dword:00000001
- "Driver"="D:\\\\bdwg\\\\sqlite\\\\odbc\\\\sqlite64\\\\sqlite3odbc.dll"
- "Setup"="D:\\\\bdwg\\\\sqlite\\\\odbc\\\\sqlite64\\\\sqlite3odbc.dll"
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBCINST.INI\\SQLite3 ODBC Driver]
- "UsageCount"=dword:00000001
- "Driver"="D:\\\\bdwg\\\\sqlite\\\\odbc\\\\sqlite64\\\\sqlite3odbc.dll"
- "Setup"="D:\\\\bdwg\\\\sqlite\\\\odbc\\\\sqlite64\\\\sqlite3odbc.dll"
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBCINST.INI\\ODBC Drivers]
- "SQLite3 ODBC Driver"="Installed""
- )
- (vlax-invoke regf 'Write regnr) ;;;;;filesystem textstream 对象
- (setq wsh (vlax-get-or-create-object "WScript.shell")) ;;;;;创建脚本对象
- (setq commandstr (strcat "regedit /s " regfnm)) ;;;;;即将要运行的命令字符串
- (vlax-invoke wsh 'run commandstr) ;;;;;调用WScript.shell对象 运行方法,执行导入注册表的命令,无需管理员身份运行cad
- (vlax-invoke regf 'Close) ;;;;;关闭临时注册表文件
- (vlax-release-object regf) ;;;;;关闭临时注册表文件
- (vlax-invoke fso 'DeleteFile regfnm)
- (vlax-release-object fso)
- (vlax-release-object wsh)
- )
|