我正在尝试通过控制台和远程连接测试应该由GetWindowsDirectory和GetSystemWindowsDirectory API 返回的不同系统路径。根据文档:
对于终端服务,GetSystemWindowsDirectory 函数检索系统 Windows 目录的路径,而 GetWindowsDirectory 函数检索每个用户专用的 Windows 目录的路径。在单用户系统上,GetSystemWindowsDirectory 与 GetWindowsDirectory 相同。
我似乎看不出有什么区别。它们都返回“C:\Windows”。
有人可以解释为什么我没有看到为终端服务宣布的文档吗?
编辑:这是我正在运行的一个小 C++ 代码示例:
//Check if RDP session
BOOL bRDP = FALSE;
DWORD dwSessID = -1;
::ProcessIdToSessionId(::GetCurrentProcessId(), &dwSessID);
DWORD dwSz;
LPTSTR ppBuffer = NULL;
if(WTSQuerySessionInformation(NULL, dwSessID, WTSClientProtocolType, &ppBuffer, &dwSz))
{
bRDP = *(USHORT*)ppBuffer == 2;
WTSFreeMemory(ppBuffer);
}
_tprintf(_T("%s\n"), !bRDP ? _T("Console Session") : _T("RDP Session"));
//Get system folder
TCHAR buff[MAX_PATH * 2];
buff[0] = 0;
GetSystemWindowsDirectory(buff, SIZEOF(buff));
_tprintf(_T("Sysfolder1: %s\n"), buff);
buff[0] = 0;
GetWindowsDirectory(buff, SIZEOF(buff));
_tprintf(_T("Sysfolder2: %s\n"), buff);
这是我从远程桌面会话中获得的输出:
RDP Session
Sysfolder1: C:\WINDOWS
Sysfolder2: C:\WINDOWS