aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 13725|回复: 10

怎么获取系统变量

[复制链接]

4

主题

8

回帖

64

积分

一级会员

积分
64
发表于 2013-3-12 16:35:29 | 显示全部楼层 |阅读模式
rt,怎么获取?

aardio有没有封装好的?

这些变量如:系统桌面路径,系统注册表安装路径,系统临时目录,我的文档,系统默认安装目录,等等这些

现在要用到系统默认安装目录呃,

最好有些适量的伪代码,初次使用aardio,多指教


ps:如果没有封装,那这些应该在注册表里可以找到吧?对注册表也不太了解啊,不同的操作系统注册表里的路径也会不一样吧?

9

主题

443

回帖

2546

积分

版主

积分
2546
发表于 2013-3-12 17:07:35 | 显示全部楼层
  1. import fsys;
  2. import console;

  3. console.log( "系统桌面路径",fsys.getSpecial(0 /*_CSIDL_DESKTOP*/) )
  4. console.log( "我的文档",fsys.getSpecial(0x5 /*_CSIDL_MYDOCUMENTS*/) )
  5. console.log( "系统默认安装目录",fsys.getSpecial(0x26 /*_CSIDL_PROGRAM_FILES*/) )
复制代码

4

主题

8

回帖

64

积分

一级会员

积分
64
 楼主| 发表于 2013-3-12 20:21:20 | 显示全部楼层
roger 发表于 2013-3-12 17:07

Thanks


2

主题

31

回帖

178

积分

一级会员

积分
178
发表于 2013-4-21 17:55:34 | 显示全部楼层
aardio考虑的很全面啊   

但是如果想得到自定义的环境变量采用什么方式取得呢?

33

主题

496

回帖

3294

积分

荣誉会员

积分
3294
发表于 2013-4-21 21:53:36 | 显示全部楼层
僵尸狼族__羊 发表于 2013-4-21 17:55
aardio考虑的很全面啊   

但是如果想得到自定义的环境变量采用什么方式取得呢?
  1. import win;
  2. import console;

  3. console.log( string.getenv("PATH") );
复制代码

2

主题

31

回帖

178

积分

一级会员

积分
178
发表于 2013-4-23 07:48:41 | 显示全部楼层
lujjjh 发表于 2013-4-21 21:53

收到  感谢帮主

1

主题

5

回帖

301

积分

二级会员

积分
301
发表于 2013-11-4 19:44:43 | 显示全部楼层
怎样获得所有的系统环境变量,没有这个函数 string.getenvs(),string.getenv()只能获得某一个啊?还有当前自定义的环境变量没有办法获得吗?

9

主题

443

回帖

2546

积分

版主

积分
2546
发表于 2013-11-4 20:56:14 | 显示全部楼层
htoo 发表于 2013-11-4 19:44
怎样获得所有的系统环境变量,没有这个函数 string.getenvs(),string.getenv()只能获得某一个啊?还有当前自定义 ...
  1. import console;
  2. import win.reg;

  3. var reg = win.reg("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment")
  4. for(name,value,t in reg.eachValue()) {
  5.         console.log("系统:" + name + "=" +value)
  6. }

  7. var reg = win.reg("HKCU\Environment")
  8. for(name,value,t in reg.eachValue()) {
  9.         console.log("用户:" + name + "=" +value)
  10. }
复制代码

1

主题

5

回帖

301

积分

二级会员

积分
301
发表于 2013-11-6 17:18:41 | 显示全部楼层
  1. string.setenv("PATH", "ab")
复制代码

为什么不起作用,系统环境变量的值还是原来的值。该语句难道只是临时更改,实际上并没有真正对系统环境变量进行修改吗?

9

主题

443

回帖

2546

积分

版主

积分
2546
发表于 2013-11-6 18:06:57 | 显示全部楼层
htoo 发表于 2013-11-6 17:18
为什么不起作用,系统环境变量的值还是原来的值。该语句难道只是临时更改,实际上并没有真正对系统环境 ...

注意看函数说明:
string.setenv() 修改进程环境变量
修改的环境变量仅影响当前进程,不会干扰其他进程。

系统环境变大家都改来改去不乱套了?! 这在win7上默认就是禁止这个权限的。
改系统环境变量在注册表里改,注意修改 Manifest,申请管理权限。

166

主题

2129

回帖

1万

积分

管理员

积分
12931
发表于 2013-11-8 21:20:32 | 显示全部楼层
对注册表系统环境变量、用户环境变量的操作:

  1. import console;
  2. import environment;

  3. //写环境变量
  4. environment.user().set("环境变量名","值");

  5. //读环境变量
  6. var 环境变量 = environment.user().get("环境变量名");
  7. console.log( 环境变量  )

  8. //删环境变量
  9. environment.user().delete("环境变量");

  10. //通知系统更新
  11. environment.user().update();

  12. //显示所有系统环境变量
  13. for(k,v in environment.system().each() ){
  14.         console.log(k,v);
  15. }
复制代码
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2026-10-11 08:57 , Processed in 0.066058 second(s), 24 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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