diff --git a/src/lib/platform/MSWindowsSession.cpp b/src/lib/platform/MSWindowsSession.cpp index 9318ceea..177ce6d9 100644 --- a/src/lib/platform/MSWindowsSession.cpp +++ b/src/lib/platform/MSWindowsSession.cpp @@ -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;