1. void DumpEnvironmentStrings()
  2. {
  3. #define MAX_ENVIRONMENT_NAME_LENGTH     (128)
  4. #define MAX_ENVIRONMENT_VALUE_LENGTH    (1024)
  5. LPTSTR lpszEnvString = GetEnvironmentStrings();
  6. if(NULL == lpszEnvString)
  7. {
  8. return ;
  9. }
  10. TCHAR* pEnvBlock = lpszEnvString;
  11. const TCHAR szToken = _T('=');
  12. TCHAR szName[MAX_ENVIRONMENT_NAME_LENGTH] = {0};
  13. TCHAR szValue[MAX_ENVIRONMENT_VALUE_LENGTH] = {0};
  14. while('\0' != *pEnvBlock)
  15. {
  16. if(szToken == *pEnvBlock)
  17. {
  18. pEnvBlock += _tcslen(pEnvBlock) + 1;
  19. continue;
  20. }
  21. TCHAR* pToken = _tcschr(pEnvBlock, szToken);
  22. if(NULL == pToken)
  23. {
  24. break;
  25. }
  26. memset(szName, 0, sizeof(szName));
  27. memset(szValue, 0, sizeof(szValue));
  28. StringCchCopyN(szName, _countof(szName), pEnvBlock, pToken - pEnvBlock);
  29. StringCchPrintf(szValue, _countof(szValue), _T("%s"), pToken + 1);
  30. _tprintf(_T("%s : %s\r\n\r\n"), szName, szValue);
  31. pEnvBlock += _tcslen(pEnvBlock) + 1;
  32. }
  33. FreeEnvironmentStrings(lpszEnvString);
  34. lpszEnvString = NULL;
  35. }
  36. // 测试代码
  37. #include "stdafx.h"
  38. #include <Windows.h>
  39. #include <strsafe.h>
  40. int _tmain(int argc, _TCHAR* argv[])
  41. {
  42. DumpEnvironmentStrings();
  43. return 0;
  44. }
 
 http://blog.csdn.net/visualeleven/article/details/8122081

输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)的更多相关文章

  1. [Shell]Bash变量:环境变量的配置文件和登录信息

    ----------------------------------------------------------------------------------------- 只有把环境变量放入配 ...

  2. 使用Linux环境变量教程

    什么是环境变量? bash shell用一个叫作环境变量( environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原因).这项特性允许你在 ...

  3. Ubuntu 18.04安装JDK并配置环境变量

    1.官网下载jdk 下载链接 http://www.oracle.com/technetwork/java/javase/downloads/index.html 可以根据自己的系统进行下载 2.进行 ...

  4. Windows环境安装tesseract-ocr 4.00并配置环境变量

    最近要做文字识别,不让直接用别人的接口,所以只能尝试去用开源的类库.tesseract-ocr是惠普公司开源的一个文字识别项目,通过它可以快速搭建图文识别系统,帮助我们开发出能识别图片的ocr系统.因 ...

  5. Linux——环境变量的文件及配置

    环境变量是包含关于系统及当前登录用户的环境信息的字符串,一些软件程序使用此信息确定在何处放置文件(如临时文件). 一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker ...

  6. readonly&&declare&&unset &&export&&env环境变量

    readonly命令用于定义只读shell变量和shell函数.readonly命令的选项-p可以输出显示系统中所有定义的只读变量. 选项 -f:定义只读函数: -a:定义只读数组变量: -p:显示系 ...

  7. JAVA JDK安装及path环境变量配置

    JDK安装 JVM  :JAVA虚拟机 JRE :java运行环境=JVM+核心类库 JDK :JAVA开发工具包=JRE+java开发工具 java开发工具:编译工具(javac.exe) . 运行 ...

  8. Linux学习,path,环境变量的配置

    方法一: 1.查看当前环境变量配置的所与信息 echo $PATH 注意: echo是输出的意思 加$表示它是一个变量 2.配置环境命令 PATH="$PATH":comdir 注 ...

  9. windows_环境变量

    今天在windows下安装了openSSH,就想在windows下也添加一个服务器地址的环境变量,添加是会了,引用却不会,网上也没找到相应的文章,就自己看了看别人的bat程序,然后找到了引用变量的方法 ...

随机推荐

  1. 原始套接字的简单tcp包嗅探

    原始套接字 sock_raw = socket(AF_INET , SOCK_RAW , IPPROTO_TCP); while(1) { data_size = recvfrom(sock_raw ...

  2. makefile教程网址

    http://www.cnblogs.com/wang_yb/p/3990952.html

  3. phpstorm8 设置及license key

    phpstorm8 license key Learn Programming ===== LICENSE BEGIN ===== 63758-12042010 00000Ryqh0NCC73lpRm ...

  4. ubuntu14.04 安装matlab r2013a

    神奇的linux. 进入主题:matlab相信是不少工程人员缺少不了的工具,就我所在的通信行业更是如此,matlab的linux版本是和windows版本同步更新, 不过r2012之后只提供64位版本 ...

  5. (译)iOS Code Signing: 解惑

    子龙山人 Learning,Sharing,Improving! (译)iOS Code Signing: 解惑 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切 ...

  6. 利用QObject反射实现jsonrpc

    1.jsonrpc请求中的params数组生成签名 static QString signatureFromJsonArray(const QJsonArray &array) { QStri ...

  7. iOS10 配置须知-b

    在iOS10中,如果你的App想要访问用户的相机.相册.麦克风.通讯录等等权限,都需要进行相关的配置,不然会直接crash.需要在info.plist中添加App需要的一些设备权限. NSBlueto ...

  8. android开发 PopupWindow 设置充满屏幕

    View qrcode_view = this.getLayoutInflater().inflate(R.layout.taskdetail_qrcode,null); final PopupWin ...

  9. c数组与指针

    0.数组和指针并不是相同的 我们声明数组时,同时分配了一些内存空间,用于容纳数组元素,但是当我们声明一个指针时,只分配了用于容纳指针本身的内存空间. 从这个方面也可以理解sizeof后面跟数组名和指针 ...

  10. 51nod 1640 天气晴朗的魔法 最小生成树

    题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题解: 先求最小生成树,记录最大边. 然后求最大生成树 ...