设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 714|回复: 32

[文档类] (XD::Doc:expandEnvStr)获得环境变量的字符串值

[复制链接]

签到天数: 376 天

连续签到: 2 天

[LV.9]以坛为家II

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-9-2 14:04:08 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Doc:expandEnvStr
调用格式: (XD::Doc:expandEnvStr str)
参数说明: str --- 带环境变量的字符串
返回值: 字符串
函数简介: 获得环境变量的字符串值
函数来源: 二次修改
函数作者: Lispboy
适用版本: 不限 
最后更新时间: 2016-09-02
备注: 命令: (XD::DOC:EXPANDENVSTR "%HOMEDRIVE%\\WINDOWS")
"C:\\WINDOWS"
演示图片: -

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
[it618postdisplay>0]
  1. (defun XD::Doc:expandEnvStr ( str / res wsh )
  2.     (if (setq wsh (vlax-create-object "wscript.shell"))
  3.         (progn
  4.             (setq res (vl-catch-all-apply 'vlax-invoke (list wsh 'expandenvironmentstrings str)))
  5.             (vlax-release-object wsh)
  6.             (if (null (vl-catch-all-error-p res))
  7.                 res
  8.             )
  9.         )
  10.     )
  11. )


[/it618postdisplay]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

签到天数: 1839 天

连续签到: 18 天

[LV.Master]伴坛终老I

已领礼包: 5083个

财富等级: 富甲天下

发表于 2016-9-2 15:51:48 | 显示全部楼层
用在什么地方?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 685 天

连续签到: 2 天

[LV.9]以坛为家II

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-9-2 16:08:58 | 显示全部楼层
学习代码!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 1027 天

连续签到: 17 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-2 16:21:19 | 显示全部楼层
填下相关的知识

windows环境变量大全
一、定义
  环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。

二、作用
  主要用在解决双系统的软件共用问题:通过系统变量而不是具体的对象来访问。

三、查看环境变量
  1、cmd指令打开命令提示符窗口;
  2、执行set指令,列出当前环境变量列表。

四、设置环境变量
  1、我的电脑->属性->高级->环境变量;
  2、通过注册表修改:用户变量在HKEY_CURRENT_USER\Environment;系统变量\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment。
  3、命令行set指令:例如set PATH=%PATH%;d:\xxx。

五、常见环境变量大全
  
%ALLUSERSPROFILE%=C:\Documents and Settings\All Users 列出所有用户profile文件位置
%APPDATA%=C:\Documents and Settings\xx\Application Data 列出应用程序数据的默认存放位置
%CD%=C:\Documents and Settings\xx 列出当前目录。
%CLIENTNAME%=Console 列出联接到终端服务会话时客户端的NETBIOS名。
%CMDCMDLINE% 列出启动当前cmd.exe 所使用的命令行。
%CMDEXTVERSION% 命令出当前命令处理程序扩展版本号。
%CommonProgramFiles%=C:\Program Files\Common Files 列出了常用文件的文件夹路径。
%COMPUTERNAME%=xx 列出了计算机名。
%ComSpec%=C:\WINDOWS\system32\cmd.exe  列出了可执行命令外壳 (命令处理程序)的路径。
%DATE% 列出当前日期。
%ERRORLEVEL% 列出了最近使用的命令的错误代码。
%HOMEDRIVE%=C: 列出用户主目录所在的驱动器盘符。
%HOMEPATH%=\Documents and Settings\xx 列出用户主目录的完整路径。
%HOMEDRIVE%%HOMEPATH%\桌面 桌面
%HOMEDRIVE%%HOMEPATH%\「开始」菜单 开始菜单
%INCLUDE%=D:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\ vc用户变量
%LIB%=D:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\ vc用户变量
%LOGONSERVER%=\\xx 列出有效的当前登录会话的域名控制器名。
%luapath%=F:\hero\bin lua用户变量
%LUA_DEV%=d:\Program Files\Lua\5.1 lua用户变量
%LUA_PATH%=;;d:\Program Files\Lua\5.1\lua\?.luac lua用户变量
%NUMBER_OF_PROCESSORS%=2 列出了计算机安装的处理器数。
%OS%=Windows_NT  列出操作系统的名字。(WindowsXP 和Windows2000 列为Windows_NT.)
%Path%=C:\WINDOWS\system32;C:\WINDOWS;d:\Program Files\Lua\5.1;d:\Program Files\Lua\5.1\clibs  列出了可执行文件的搜索路径。
%PATHEXT%=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1;.wlua;.lexe  列出操作系统认为可被执行的文件扩展名。
%PROCESSOR_ARCHITECTURE%=x86  列出了处理器的芯片架构。
%PROCESSOR_IDENTIFIER%=x86 Family 6 Model 15 Stepping 13, GenuineIntel  列出了处理器的描述。
%PROCESSOR_LEVEL%=6  列出了计算机的处理器的型号。
%PROCESSOR_REVISION%=0f0d 列出了处理器的修订号。
%ProgramFiles%=C:\Program Files  列出了ProgramFiles 文件夹的路径。应用程序的默认安装目录
%PROMPT%=$P$G  列出了当前命令解释器的命令提示设置。
%RANDOM% 列出界于0 和32767 之间的随机十进制数。
%SESSIONNAME%=Console 列出连接到终端服务会话时的连接和会话名。
%ssuser%=xx  vss用户变量
%SystemDrive%=C: 列出了Windows 启动目录所在驱动器。
%SystemRoot%=C:\WINDOWS  列出了Windows 启动目录的位置。
%TEMP%=C:\DOCUME~1\xx\LOCALS~1\Temp  列出了当前登录的用户可用应用程序的默认临时目录。
%TMP%=C:\DOCUME~1\xx\LOCALS~1\Temp  列出了当前登录的用户可用应用程序的默认临时目录。
%TIME%  列出当前时间。
%USERDOMAIN%=xx   列出了包含用户帐号的域的名字。
%USERNAME%=xx  列出当前登录的用户的名字。
%USERPROFILE%=C:\Documents and Settings\xx  列出当前用户Profile 文件位置。
%VS71COMNTOOLS%=D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\ vc用户变量
%VS90COMNTOOLS%=D:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\  vc用户变量
%windir%=C:\WINDOWS   列出操作系统目录的位置



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1805 天

连续签到: 10 天

[LV.Master]伴坛终老I

已领礼包: 5064个

财富等级: 富甲天下

发表于 2016-9-2 17:25:08 | 显示全部楼层
谢谢版主!非常实用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1282 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-9-3 08:47:48 | 显示全部楼层
值得学习        
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1282 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-9-3 09:01:43 | 显示全部楼层
newer 发表于 2016-9-2 16:21
填下相关的知识

windows环境变量大全

N版是否考虑把"wscript.shell"的其它功能也写成lisp函数?

点评

老黄,你也有这个能力的,你也写点吧。  详情 回复 发表于 2016-9-3 11:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1027 天

连续签到: 17 天

[LV.10]以坛为家III

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-9-3 11:19:15 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2016-9-3 09:01
N版是否考虑把"wscript.shell"的其它功能也写成lisp函数?

老黄,你也有这个能力的,你也写点吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1513 天

连续签到: 3 天

[LV.Master]伴坛终老I

点击这里给我发消息

已领礼包: 2919个

财富等级: 家财万贯

发表于 2016-9-4 17:45:37 | 显示全部楼层
回复学习。good、
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 71 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 10个

财富等级: 恭喜发财

发表于 2016-9-4 18:56:26 | 显示全部楼层
回复向高手学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1282 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-9-5 15:23:16 | 显示全部楼层
newer 发表于 2016-9-3 11:19
老黄,你也有这个能力的,你也写点吧。

对其它语言不了解,我还真搞不定,虽然最近看了一点C,但都是基础 的。
对于这个函数,我平时只用sendkeys,高飞大师倒是在"ActiveX和脚本技术及其应用"举了一些例子。
  1. ;;(XD::Doc:expandEnvStr "%HOMEDRIVE%\\WINDOWS")
  2. (defun XD::Doc:expandEnvStr (str)
  3.   (or *WSH* (setq *WSH* (vlax-get-or-create-object "wscript.shell")))
  4.   (cond (*WSH* (apply 'vlax-invoke (list *WSH* 'ExpandEnvironmentStrings str))))
  5. )

  6. ;;(sendkeys "C{ENTER}0,0{ENTER}100{ENTER}")        ;Draw a circle in CAD. 在CAD里面画一个圆
  7. ;;(sendkeys (chr 1))              ;Ctrl + A
  8. ;;(sendkeys (chr 15))              ;Ctrl + O
  9. ;;(sendkeys (chr 22))              ;Ctrl + V
  10. ;; if your system can read Chinese,these will be interesting.
  11. ;;(sendkeys "赌")                ;Open My computer 打开我的电脑
  12. ;;(sendkeys "品")                ;Open Calc.exe 打开计算器
  13. ;;(sendkeys "血")                ;Open Search  打开搜索
  14. ;;(sendkeys "恋")                ;Open Media Player 打开媒体播放器
  15. ;;(sendkeys "爽")                ;Open homepage 打开主页  
  16. (defun sendkeys  (keys)
  17.   (or *WSH* (setq *WSH* (vlax-get-or-create-object "wscript.shell")))
  18.   (vlax-invoke-method *WSH* 'sendkeys keys)
  19.   (princ)
  20. )


方法        说明
AppActivate        激活一个应用程序窗口。
CreateShortcut        创建并返回 WshShortcut 对象。
Exec        在子命令窗口中运行一个应用程序,提供访问StdIn/StdOut/StdErr流。
ExpandEnvironmentStrings        扩展 PROCESS环境变量并返回结果字符串。
LogEvent        添加一个事件到日志文件。
Popup        显示包含指定消息的消息窗口。
RegDelete        从注册表中删除指定的键或值。
RegRead        从注册表中返回指定的键或值。
RegWrite        在注册表中设置指定的键或值。
Run        创建新的进程,该进程用指定的窗口样式执行指定的命令。
SendKeys        发送一个或多个按键到活动窗口。



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1282 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-9-5 15:33:18 | 显示全部楼层
newer 发表于 2016-9-3 11:19
老黄,你也有这个能力的,你也写点吧。

比如激活一个窗口,
(defun XD::Doc:AppActivate (str)
  (or *WSH* (setq *WSH* (vlax-get-or-create-object "wscript.shell")))
  (apply 'vlax-invoke (list *WSH* 'AppActivate str))
)
(XD::Doc:AppActivate "新建文本文档")
结果只是闪一下,显然失败了

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1282 天

连续签到: 4 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-9-6 16:34:43 | 显示全部楼层
newer 发表于 2016-9-3 11:19
老黄,你也有这个能力的,你也写点吧。

根据您的指示,我已经写了几个了,剩下的不会的就交给您了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1478 天

连续签到: 17 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 4119个

财富等级: 富可敌国

发表于 2016-9-6 21:40:55 | 显示全部楼层
看上去就很高大上啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1754 天

连续签到: 17 天

[LV.Master]伴坛终老I

已领礼包: 5189个

财富等级: 富甲天下

发表于 2016-9-13 09:57:22 | 显示全部楼层
表示看不懂
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )  

GMT+8, 2018-6-21 05:15 , Processed in 0.170202 second(s), 62 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表