Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
ExpandEnvironmentStringsForUser() API does not expand the environment variable %USERNAME% on Windows 7 and Windows Server 2008 R2, if hToken value is obtained only by using TOKEN_IMPERSONATE | TOKEN_QUERY flags for OpenProcessToken. To expand the environment variables like %USERNAME% on Windows 7 & Windows Server 2008 R2, you also need to add TOKEN_DUPLICATE as well.
For application that may run on all versions of Windows, it is recommended that you obtain the token handle with all 3 access rights: TOKEN_QUERY, TOKEN_DUPLICATE and TOKEN_IMPERSONATE
Example:
OpenProcessToken(hProcess,TOKEN_IMPERSONATE|TOKEN_QUERY|TOKEN_DUPLICATE,&
hProcessToken);
if (ret == FALSE)
return GetLastError();
ExpandEnvironmentStringsForUser(hProcessToken, L"%USERNAME%", (LPWSTR)envBuf,
ENV_BUF_SIZE);
-Shree
Windows SDK