kood481748 发表于 2011-1-22 21:49:54

如何用AU3获取系统变量的真实路径?

比如我设定了一个系统变量%IEtemp%,其路径为“C:\Program Files\IEtemp”,
请问,我用AU3如何获得这个变量%IEtemp%的真实路径?

easied 发表于 2011-1-22 22:03:11

比如我设定了一个系统变量%IEtemp%,其路径为“C:\Program Files\IEtemp”,
请问,我用AU3如何获得这个变 ...
kood481748 发表于 2011-1-22 21:49 http://www.autoitx.com/images/common/back.gif


我知道获取系统变量的方法有两个:
1.大多数常用的变量在au3里面都有设置成了宏.比如:
@HomeDrive = 当前用户的帐号目录所在驱动器盘符(例: C:)
@TempDir   = 临时文件夹
等等,更多的宏目录请查看帮助文件

2.使用内置的注册表函数读取注册表,获得路径.
比如你要找的IE Cache保存路径之一是在

"Cache" 里面的.
在这里你用Regread函数读取这个项的值就可以得到IE的缓存路径.

kood481748 发表于 2011-1-22 22:23:18

回复 2# easied

楼主兄弟说的这个注册表的位置是获取系统变量路径,我要的是用户自定义变量的路径。
不过还是谢谢你了

easied 发表于 2011-1-22 22:34:36

回复easied
楼主兄弟说的这个注册表的位置是获取系统变量路径,我要的是用户自定义变量的路径。
不过 ...
kood481748 发表于 2011-1-22 22:23 http://www.autoitx.com/images/common/back.gif

抱歉,之前没看清楚.不过获取用户自定义的变量也是可以用查找注册表的原理找得到的.
假设你建了一个名为 %IEtemp% 的用户变量. 那么也会在注册表里面也保存有键名和路径.你只要知道这个路径和键名,就可以用RegRead准确的得到这个值.
这个路径在:
如果你不知道这个键名,也可以用RegEnumKey和RegEnumVal配合@error宏来获得键名和它的值

skyfree 发表于 2011-1-23 06:51:29

EnvGet("IEtemp")

easied 发表于 2011-1-25 03:27:20

EnvGet("IEtemp")
skyfree 发表于 2011-1-23 06:51 http://www.autoitx.com/images/common/back.gif

在WinXP下测试,获取系统默认的环境变量成功.获取自定义的失败,返回空字符.

netegg 发表于 2011-1-25 06:05:23

本帖最后由 netegg 于 2011-1-25 09:01 编辑

#Include <WinAPI.au3>
msgbox(0,0,_WinAPI_ExpandEnvironmentStrings('%temp%'))
或者
#include <WinApiEx.au3>
_WinAPI_ShellGetSpecialFolderPath(。。。。)
页: [1]
查看完整版本: 如何用AU3获取系统变量的真实路径?