Catched exception while getting active desktop name

This commit is contained in:
Xinyu Hou 2014-11-20 13:44:35 +00:00
parent 5833b434ef
commit e71e7e1cd3
1 changed files with 13 additions and 9 deletions

View File

@ -176,15 +176,19 @@ String
MSWindowsSession::getActiveDesktopName()
{
String result;
HDESK hd = OpenInputDesktop(0, TRUE, GENERIC_READ);
if (hd != NULL) {
DWORD size;
GetUserObjectInformation(hd, UOI_NAME, NULL, 0, &size);
TCHAR* name = (TCHAR*)alloca(size + sizeof(TCHAR));
GetUserObjectInformation(hd, UOI_NAME, name, size, &size);
result = name;
CloseDesktop(hd);
try {
HDESK hd = OpenInputDesktop(0, TRUE, GENERIC_READ);
if (hd != NULL) {
DWORD size;
GetUserObjectInformation(hd, UOI_NAME, NULL, 0, &size);
TCHAR* name = (TCHAR*)alloca(size + sizeof(TCHAR));
GetUserObjectInformation(hd, UOI_NAME, name, size, &size);
result = name;
CloseDesktop(hd);
}
}
catch (std::exception error) {
LOG((CLOG_ERR "failed to get active desktop name: %s", error.what()));
}
return result;