ExpandEnvironmentStrings 函数怎么用
ExpandEnvironmentStrings 函数怎么用,看了半天没看明白第一个和第二个参数怎么用,谁能给举个例子。我这已经准备好了一个系统环境变量
[解决办法]
TCHAR szBuffer[MAX_PATH];ExpandEnvironmentStrings(TEXT("%ProgramFiles%\\Internet Explorer"), szBuffer, MAX_PATH);MessageBox(szBuffer); //C:\Program Files\Internet Explorer
[解决办法]
不知道%NiMei%这个值的什么,当作是"你妹"吧
%AA% 和 %NiMei% 是一样的
TCHAR szBuffer[MAX_PATH];ExpandEnvironmentStrings(TEXT("懂%AA%"), szBuffer, MAX_PATH);MessageBox(szBuffer); //懂你妹
[解决办法]
你还得新建一个环境变量:
变量名为:NiMei
变量值为:你妹
[解决办法]
不用重启,点确定即生效
[解决办法]
#include <windows.h>#include <tchar.h>#include <stdio.h>TCHAR* envVarStrings[] ={ TEXT("OS = %OS%"), TEXT("PATH = %PATH%"), TEXT("HOMEPATH = %HOMEPATH%"), TEXT("TEMP = %TEMP%")};#define ENV_VAR_STRING_COUNT (sizeof(envVarStrings)/sizeof(TCHAR*))#define INFO_BUFFER_SIZE 32767void printError( TCHAR* msg );void main( ){ DWORD i; TCHAR infoBuf[INFO_BUFFER_SIZE]; DWORD bufCharCount = INFO_BUFFER_SIZE; // Get and display the name of the computer. bufCharCount = INFO_BUFFER_SIZE; if( !GetComputerName( infoBuf, &bufCharCount ) ) printError( TEXT("GetComputerName") ); _tprintf( TEXT("\nComputer name: %s"), infoBuf ); // Get and display the user name. bufCharCount = INFO_BUFFER_SIZE; if( !GetUserName( infoBuf, &bufCharCount ) ) printError( TEXT("GetUserName") ); _tprintf( TEXT("\nUser name: %s"), infoBuf ); // Get and display the system directory. if( !GetSystemDirectory( infoBuf, INFO_BUFFER_SIZE ) ) printError( TEXT("GetSystemDirectory") ); _tprintf( TEXT("\nSystem Directory: %s"), infoBuf ); // Get and display the Windows directory. if( !GetWindowsDirectory( infoBuf, INFO_BUFFER_SIZE ) ) printError( TEXT("GetWindowsDirectory") ); _tprintf( TEXT("\nWindows Directory: %s"), infoBuf ); // Expand and display a few environment variables. _tprintf( TEXT("\n\nSmall selection of Environment Variables:") ); for( i = 0; i < ENV_VAR_STRING_COUNT; ++i ) { bufCharCount = ExpandEnvironmentStrings(envVarStrings[i], infoBuf, INFO_BUFFER_SIZE ); if( bufCharCount > INFO_BUFFER_SIZE ) _tprintf( TEXT("\n\t(Buffer too small to expand: \"%s\")"), envVarStrings[i] ); else if( !bufCharCount ) printError( TEXT("ExpandEnvironmentStrings") ); else _tprintf( TEXT("\n %s"), infoBuf ); }}void printError( TCHAR* msg ){ DWORD eNum; TCHAR sysMsg[256]; TCHAR* p; eNum = GetLastError( ); FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, eNum, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), sysMsg, 256, NULL ); // Trim the end of the line and terminate it with a null p = sysMsg; while( ( *p > 31 ) || ( *p == 9 ) ) ++p; do { *p-- = 0; } while( ( p >= sysMsg ) && ( ( *p == '.' ) || ( *p < 33 ) ) ); // Display the message _tprintf( TEXT("\n\t%s failed with error %d (%s)"), msg, eNum, sysMsg );}
[解决办法]