zoukankan      html  css  js  c++  java
  • 在Windows系统上以C++打印出当前活动用户的环境变量

    在Windows系统上以C++打印出当前活动用户的环境变量,代码如下(QT环境):

    [cpp] view plain copy
     
    1. void getEnvironmentVariables()  
    2. {  
    3.     DWORD sessionId = WTSGetActiveConsoleSessionId();  
    4.     qInfo() << "Session ID = " << sessionId;  
    5.   
    6.     HANDLE token;  
    7.     if (!WTSQueryUserToken(sessionId, &token))  
    8.     {  
    9.         qCritical() << "Failed to get the user token of session " << sessionId;  
    10.     }  
    11.   
    12.   
    13.     wchar_t* pEnv = NULL;  
    14.     if (CreateEnvironmentBlock((void**)&pEnv, token, TRUE))  
    15.     {  
    16.         while (*pEnv) {  
    17.             // printf("%ls ", pEnv);  
    18.             qInfo() << QString::fromWCharArray(pEnv);  
    19.             pEnv += wcslen(pEnv) + 1;  
    20.         }  
    21.     }  
    22. }  


    以上是打印当前活动用户(active user)的。

    如果仅仅是是打印当前进程所处环境的环境变量,见Visual Studio的代码如下:

    [cpp] view plain copy
     
      1. #include <Windows.h>  
      2. #include <UserEnv.h>  
      3. #include <assert.h>  
      4.   
      5. #include <stdio.h>  
      6.   
      7. #pragma comment(lib, "userenv.lib")  
      8.   
      9. int main()  
      10. {  
      11.     HANDLE hToken = NULL;  
      12.     BOOL ok = OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &hToken);  
      13.     assert(ok);  
      14.   
      15.     wchar_t* penv = L"";  
      16.     ok = CreateEnvironmentBlock((void**)&penv, hToken, TRUE);  
      17.     assert(ok);  
      18.   
      19.     while (*penv) {  
      20.         printf("%ls ", penv);  
      21.         penv += wcslen(penv) + 1;  
      22.     }  
      23.     return 0;  
      24. }  

    http://blog.csdn.net/nirendao/article/details/52040232

  • 相关阅读:
    pycharm的list的应用
    pycharm的list中copy的应用
    pycharm的list中clear的应用
    pycharm的list中append的应用
    crontab 管理指定用户的定时任务
    vsftp 搭建及虚拟账号配置
    MySQL 主从配置
    Ant 学习及常用任务
    ansible 小试
    微信H5页面分享
  • 原文地址:https://www.cnblogs.com/findumars/p/7296519.html
Copyright © 2011-2022 走看看