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.  

setup.rul  Code 
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.
setup.rul  Code 
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, NULL0, szPath);
    
if (nResult = 0) then
        MessageBox(
"CSIDL_DESKTOP = " + szPath, 0);
    
else
        SprintfBox(SEVERE, 
"CSIDL_DESKTOP""Failed(%d): %s", nResult, FormatMessage(nResult));
    endif;
end;

转载于:https://www.cnblogs.com/MakeView660/p/8807181.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程2---异步1

在Java中什么是同步&#xff1f;什么是异步&#xff1f;对于这两个概念我们必须要明确。只有明确这两个概念&#xff0c;才会在明确在什么场景下使用同步以及异步。 在这里我可以形象的举个例子来辨明这两个概念&#xff1a; 1.同步与异步同步和异步关注的是消息通信机制 (sync…

mysql通常使用语句_Mysql 常用SQL语句集锦

基础篇//查询时间&#xff0c;友好提示$sql "select date_format(create_time, %Y-%m-%d) as day from table_name";//int 时间戳类型$sql "select from_unixtime(create_time, %Y-%m-%d) as day from table_name";//一个sql返回多个总数$sql "sel…

为什么你需要设计和维护一套自我移动标准?

在一个很长的调研日的休息时分&#xff0c;我在同一个客户谈一个项目&#xff0c;在这个项目中&#xff0c;我正为一个全球经济公司开发一个iOS标准。他们的第一反应是这样的&#xff1a;“什么&#xff1f;你在开发Apple iOS以外的标准&#xff1f;那还要开发什么&#xff1f;…

JS 小知识点汇总

1.offsetWidth & width A:因为. 1.offsetWidth是只读属性&#xff0c;而style.width是可读写得。2.offsetWidth返回的是一个整数&#xff0c;style.width返回的是一个字符串,并且带有单位&#xff1b;**3.style.width只能返回以style方式定义的内部样式的width属性值。4.of…

django-redis中redis.conf配置详细说明

参考文献&#xff1a;https://blog.csdn.net/ljphilp/article/details/52934933 感谢楼主分享&#xff01;

初识Mysql(一)

1 搭建数据库服务器2 MYSQL数据类型3 修改表结构1 搭建数据库服务器1.1 存在mariadb时&#xff1a;#systemctl status mariadb#systemctl stop mariadb#rpm -e --nodeps mariadb-libs #不依赖关系卸载#rm -rf /etc/my.cnf#rm -rf /var/lib/mysql/*1.2 新安装时[rootser51 ~]# …

数据挖掘资料

https://blog.csdn.net/baimafujinji/article/details/53269040 在2006年12月召开的 IEEE 数据挖掘国际会议上&#xff08;ICDM&#xff0c; International Conference on Data Mining&#xff09;&#xff0c;与会的各位专家选出了当时的十大数据挖掘算法&#xff08; top 10 …

如何进行个人知识管理和提高自己能力?

21世纪是一个知识爆炸的世纪&#xff0c;知识爆炸是指人类创造的知识,主要是自然科学知识,在短时期内以极高的速度增长起来。是人们对当前大量出现并飞速发展的各种知识现象所进行的夸张和描述。有人综合计算,全世界的知识总量,七到十年翻一番。这就是风行全球的摩登名词的意思…

redis服务器端和客户端启动

服务器端 sudo redis-server /etc/redis/redis.conf 指定加载的配置文件 ps -ef|grep redis 查看redis服务器进程 sudo kill -9 pid 杀死redis服务器 连接特定IP的redis&#xff1a;

hive表移到mysql_如何将Hive数据表移动到MySql?

我想知道如何将日期从Hive转移到MySQL&#xff1f;我已经看到了如何将hive数据移动到Amazon DynamoDB而不是像MySQL这样的RDBMS的示例.以下是我在DynamoDB中看到的示例&#xff1a;CREATE EXTERNAL TABLE tbl1 ( name string, location string )STORED BY org.apache.hadoop.hi…

账簿与平衡段关联表

gl_ledger_norm_seg_vals转载于:https://www.cnblogs.com/lizicheng/p/8817982.html

超级丑数

题目&#xff1a; 写一个程序来找第 n 个超级丑数。超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] 是前 12 个超级丑数。注意事项&#xff1a;…

为什么要进行个人知识管理(PKM)

21世纪是一个知识爆炸的世纪&#xff0c;知识爆炸是指人类创造的知识,主要是自然科学知识,在短时期内以极高的速度增长起来。是人们对当前大量出现并飞速发展的各种知识现象所进行的夸张和描述。有人综合计算,全世界的知识总量,七到十年翻一番。这就是风行全球的摩登名词的意思…

Python中“if __name__=='__main__':”理解与总结

具体详解参考文献&#xff1a;https://www.cnblogs.com/chenhuabin/p/10118199.html

python中列表如何比较大小_如何比较python中的列表/列表?

所以你想要两个项目列表之间的区别。 first_list = [[Test.doc, 1a1a1a, 1111], [Test2.doc, 2b2b2b, 2222], [Test3.doc, 3c3c3c, 3333]] secnd_list = [[Test.doc, 1a1a1a, 1111], [Test2.doc, 2b2b2b, 2222], [Test3.doc, 8p8p8p, 9999], [Test4.doc, 4d4d4d, 4444]] 首先,…

NFC读卡------ci522

1、NFC及卡片 NFC是近距离无线通讯技术&#xff0c;是一种非接触式识别和互联技术&#xff0c;可以在移动设备、消费类电子产品、PC和智能控件工具间进行近距离无线通信。NFC提供了一种简单、触控式的解决方案&#xff0c;可以让消费者简单直观地交换信息、访问内容与服务。 …

java基础面试题:说说和的区别

&与&&都是逻辑与 不同的是&左右两边的判断都要进行&#xff0c;而&&是短路与&#xff0c;当&&左边条件为假则不用再判断右边条件&#xff0c;所以效率更高 例如&#xff0c;对于if(str ! null && !str.equals(“”))表达式&#xff0c…