InstallSheild 获取系统环境变量,如Desktop路径等
使用FOLDER_DESKTOP变量获取的桌面路径可能为:C:\Users\Public\Desktop
而不是C:\Users\用户\Desktop
Copy and paste the following define statements at the beginning of your setup.rul file.
Also, make sure you copy and paste the prototype for the SHGetFolderPathA() Windows API.
This Windows API retrieves the path to the locations you want.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// Define Microsoft CSIDL constants
//定义环境变量的ID,更详细参见shlobj.h //参见msdn KNOWNFOLDERID //http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx #define CSIDL_DESKTOP 0x0000 // <desktop> #define CSIDL_INTERNET 0x0001 // Internet Explorer (icon on desktop) #define CSIDL_PROGRAMS 0x0002 // Start Menu\Programs #define CSIDL_CONTROLS 0x0003 // My Computer\Control Panel #define CSIDL_PRINTERS 0x0004 // My Computer\Printers #define CSIDL_PERSONAL 0x0005 // My Documents #define CSIDL_FAVORITES 0x0006 // <user name>\Favorites #define CSIDL_STARTUP 0x0007 // Start Menu\Programs\Startup #define CSIDL_RECENT 0x0008 // <user name>\Recent #define CSIDL_SENDTO 0x0009 // <user name>\SendTo #define CSIDL_BITBUCKET 0x000a // <desktop>\Recycle Bin #define CSIDL_STARTMENU 0x000b // <user name>\Start Menu #define CSIDL_MYDOCUMENTS CSIDL_PERSONAL // Personal was just a silly name for My Documents #define CSIDL_MYMUSIC 0x000d // "My Music" folder #define CSIDL_MYVIDEO 0x000e // "My Videos" folder #define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop #define CSIDL_DRIVES 0x0011 // My Computer #define CSIDL_NETWORK 0x0012 // Network Neighborhood (My Network Places) #define CSIDL_NETHOOD 0x0013 // <user name>\nethood #define CSIDL_FONTS 0x0014 // windows\fonts #define CSIDL_TEMPLATES 0x0015 #define CSIDL_COMMON_STARTMENU 0x0016 // All Users\Start Menu #define CSIDL_COMMON_PROGRAMS 0X0017 // All Users\Start Menu\Programs #define CSIDL_COMMON_STARTUP 0x0018 // All Users\Startup #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 // All Users\Desktop #define CSIDL_APPDATA 0x001a // <user name>\Application Data #define CSIDL_PRINTHOOD 0x001b // <user name>\PrintHood // Prototype SHGetFolderPathA in SHFolder.dll //加载SHFolder.dll,这样就可以使用SHGetFolderPathA()了 prototype NUMBER SHFolder.SHGetFolderPathA(HWND, NUMBER, NUMBER, NUMBER, BYREF STRING); |
The following example code shows you how to call the above win api function.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function OnBegin()
number nFolderCSIDL; // CSIDL value you want to use string szPath; // Will contain path returned from API number nResult; // Return value from API begin try szPath = ""; nFolderCSIDL = CSIDL_DESKTOP; nResult = SHFolder.SHGetFolderPathA(NULL, nFolder, NULL, , szPath); if (nResult = ) then MessageBox("CSIDL_DESKTOP = " + szPath, ); else SprintfBox(SEVERE, "CSIDL_DESKTOP", "Failed(%d): %s", nResult, FormatMessage(nResult)); endif; end; |
InstallSheild 获取系统环境变量,如Desktop路径等的更多相关文章
- C#中如何获取系统环境变量等
C#中获取系统环境变量需要用到Environment 类. 其中提供了有关当前环境和平台的信息以及操作它们的方法.该类不能被继承 以下代码得到%systemdrive%的值,即“C:” string ...
- C#中如何获取系统环境变量
原文:C#中如何获取系统环境变量 C#中获取系统环境变量需要用到Environment Class.其中提供了有关当前环境和平台的信息以及操作它们的方法.该类不能被继承. 以下代码得到%systemd ...
- Springboot yml获取系统环境变量的值
注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取. 我们经常使用一些docker管理平台,如DaoCloud.r ...
- Springboot配置文件获取系统环境变量的值
注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取. 我们经常使用一些docker管理平台,如DaoCloud.r ...
- python 获取系统环境变量 os.environ and os.putenv
从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义 如果定义的话就去环境变量的值,否则就取当前目录下的co ...
- JAVA 获取系统环境变量
分享代码: package com.base.entity; import java.io.Serializable; import java.util.Comparator; /** * 系统环境变 ...
- Java获取系统环境变量(System Environment Variable)和系统属性(System Properties)以及启动参数的方法
系统环境变量(System Environment Variable): 在Linux下使用export $ENV=123指定的值.获取的方式如下: Map<String,String> ...
- C#设置和获取系统环境变量
C#设置和获取环境变量 1.前言 本来想拿学校机房的Android编辑器直接粘到自己电脑上用,发现它的eclipse是 32位的,而我的JDK是64位的,于是想到干脆装两个JDK,用C#做一个能够更改 ...
- Pyqt QListWidget 展示系统环境变量
今天学习了下Pyqt的 QListWidget 控件 我们先看下这个图片 这张图片就是典型的listWidget效果,我们今天就仿这样布局新建个ListWidget 在网上找了个关于QListWidg ...
随机推荐
- Linux系统扩容根目录磁盘空间
作者:非法小恋 一.使用背景 Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变. 产生的原因是没有给磁盘格式化,没有增加分区. 二. ...
- 【TP3.2与TP5.0区别】
Tp3.2 和 Tp5.0之间的区别 5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正 ...
- Solr调优参考
http://rdc.taobao.com/team/jm/archives/1753#nav 共整理三部分,第一部分Solr常规处理,第二部分针对性性处理,前者比较通用,后者有局限性.务必根据具体应 ...
- pycharm 控制台字体背景颜色设定让你美到爆
还在为你控制台字体颜色不入眼而发愁吗? 在某些特殊时刻想要改变下字体的颜色却无从下手而发愁吗? 那你就进来看一看,瞧一瞧,之需看2分钟,花2分钟理解,花3分钟练练手就能让你的控制能字体炫酷起来! 一. ...
- C++:模板友元
模板友元函数在类内声明类外定义时都必须加模板前缀,另外模板要写在一个文件内 // generates undefined error for the operator<< function ...
- JAX-WS HandlerChain使用具体解释
JAX-WS的Handler和Servlet的Filter相似,能够对全部WebServicer进行拦截,在Handler中能够记录日志.权限控制.对请求的SOAP消息进行加密.解密等.JAX-WS提 ...
- pandas set_index和reset_index的用法
1.set_index DataFrame可以通过set_index方法,可以设置单索引和复合索引. DataFrame.set_index(keys, drop=True, append=False ...
- autoHotKey 一些脚本积累
新建test.ahk,然后运行即可. #InstallKeybdHook #Persistent Hotstring("EndChars", "`n") ; 设 ...
- c语言中函数参数入栈的顺序是什么?为什么
看到面试题C语言中函数参数的入栈顺序如何? 自己不知道,边上网找资料.下面是详细解释 #include <stdio.h> void foo(int x, int y, int z){ ...
- 详解登录认证及授权--Shiro系列(一)
Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密.Apache Shiro 的首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的, ...