注册表默认打开方式
请教一个问题,用lisp如何查询xlsx或xls文件的默认打开程序,找到默认打开程序的位置 ?感谢!
(setq GGG
(vl-registry-read
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.EXE"
"Path"
)
)
(setq GGG (strcase (strcat GGG "Excel.EXE" )))
liuhe 发表于 2023-4-28 13:07
:handshake谢谢您的回复。
这个代码应该是在有安装EXCEL的情况下,找到这路径的办法。
还有一种情况就是有安装的是WPS,而不是微软的EXCEL,这个时候怎么打wps的打开路径。
如果excl和wps同时安装时,如何找到XLSX文件默认的打开程序,可能是wps,也可能是excel.
您附件中的这个文件真是个好东西,谢谢您的分享
但这个好像并没有考虑到我们中国WPS的情况,没有看到这方面的东西 。
nyistjz 发表于 2023-4-28 16:11
谢谢您的回复。
这个代码应该是在有安装EXCEL的情况下,找到这路径的办法。
那就把Excel.Application改成Ket.Application啊。
谢谢,已解决。WPS的库文件是etapi.dll,其他一样
可以通用的。
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=180766&highlight=WPS&_dsign=f3d1bb17 费用很大的劲,才找到了解决办法
用默认程序打开xls文件
(vlax-invoke (vlax-get-or-create-object "wscript.shell") 'run xls)
;EXCEL和WPS共存时,优先用WPS打开表格文件
(defun av:openxls(xls / app path reg-key val-name vla-data)
(setq reg-path "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\")
(setq xls "excel.exe" et "et.exe")
(setq app
(cond
((findfile (vl-registry-read (strcat reg-path et) "")))
(t (findfile (vl-registry-read (strcat reg-path xls) "")))
)
)
(startapp app xls)
)
页:
[1]