vdagent: don't stop due to UIPI blocking

User Interface Privilege Isolation is usually used only for specific windows of
system security applications (anti-viruses etc.), so with this patch mouse will
be irresponsive for these windows but keep working for the rest. A complete
solution might be switching to server mouse mode while the agent is still active.
This commit is contained in:
Arnon Gilboa 2012-09-10 10:17:23 +03:00
parent 4e95b73ecf
commit 900ef2b4db

View File

@ -429,9 +429,14 @@ bool VDAgent::send_input()
return false;
}
}
if (!SendInput(1, &_input, sizeof(INPUT)) && GetLastError() != ERROR_ACCESS_DENIED) {
vd_printf("SendInput failed: %lu", GetLastError());
ret = _running = false;
if (!SendInput(1, &_input, sizeof(INPUT))) {
DWORD err = GetLastError();
// Don't stop agent due to UIPI blocking, which is usually only for specific windows
// of system security applications (anti-viruses etc.)
if (err != ERROR_SUCCESS && err != ERROR_ACCESS_DENIED) {
vd_printf("SendInput failed: %lu", err);
ret = _running = false;
}
}
_input_time = GetTickCount();
_desktop_layout->unlock();