不管字符编码的问题直接写文件 代码如下: (defun c:setactivepath( / aa path ) (setq aa (open "c:\\qgy_temp\\test.reg" "w")) (write-line "Windows Registry Editor Version 5.00" aa) (write-line "" aa) (write-line "[HKEY_USERS\\S-1-5-21-436374069-1659004503-1606980848-500\\Software\\Autodesk\\AutoCAD\\R16.0\\ACAD-201:804\\Profiles\\<<未命名配置>>\\Dialogs\\OpenSaveAnavDialogs]" aa) (setq path (dos_strreplace (getvar "dwgprefix") "\\" "\\\\")) (write-line (strcat "\"InitialDirectory\"=\"" path "\"") aa) (write-line "\n" aa) (close aa) (dos_command "regedit /s c:\\qgy_temp\\test.reg" 2) (repeat 5000 (princ)) (princ) ) 在MNL文件里加入(load "setactivepath.lsp") 同时在按钮菜单里新添加一个按钮 定义宏为---^C^Csetactivepath open 这时新的问题来了 1.可能是写入注册表有个延时的问题 要点几次才能"刷新"到当前文件所在路径 重复5000次(princ)以后 还要点第二次才"刷新" 2.新的按钮宏的执行和原有的open命令有区别 open命令执行后"选择文件窗口"打开后处于激活状态 而定义的宏执行后窗口处于非激活状态 这可有点奇怪 3.最让人无法忍受的是 有时候执行这个新宏会让之前切换过的任务窗口比如IE再次弹出
现在在考虑是否建个文档反应器 在文档切换后就先行修改注册表 这应该可以避免上述至少第一第二两个问题 不过这样一来在需要上一路径时又不能快速到达 兜兜转转问题居然回到了问题的反面 这可真是让人郁闷啊
为什么打开窗口里CAD要把自定义文件夹设置成大图标呢?????????? |