diff options
author | Arnon Gilboa <agilboa@redhat.com> | 2013-04-22 11:16:19 +0300 |
---|---|---|
committer | Arnon Gilboa <agilboa@redhat.com> | 2013-04-22 11:17:40 +0300 |
commit | 0074ebcfb17cc9e68b390e06690bf76f9aa55729 (patch) | |
tree | 273eab3b35cefb7fb65e457407df4b190753e670 | |
parent | dd9d1f41cace5e73bfd847ff8d0cfa303e141b1c (diff) |
Revert "vdagent: add vdagent_helper to support mouse when UAC dialog takes focus"
This reverts commit dd9d1f41cace5e73bfd847ff8d0cfa303e141b1c.
-rw-r--r-- | common/vdcommon.h | 1 | ||||
-rw-r--r-- | vdagent.sln | 10 | ||||
-rw-r--r-- | vdagent/vdagent.cpp | 51 | ||||
-rw-r--r-- | vdagent_helper/vdagent_helper.cpp | 46 | ||||
-rw-r--r-- | vdagent_helper/vdagent_helper.vcproj | 363 |
5 files changed, 1 insertions, 470 deletions
diff --git a/common/vdcommon.h b/common/vdcommon.h index 5099fdc..177721c 100644 --- a/common/vdcommon.h +++ b/common/vdcommon.h @@ -34,7 +34,6 @@ typedef CRITICAL_SECTION mutex_t; #define VD_AGENT_REGISTRY_KEY "SOFTWARE\\Red Hat\\Spice\\vdagent\\" #define VD_AGENT_STOP_EVENT TEXT("Global\\vdagent_stop_event") -#define VD_AGENT_NAMED_PIPE TEXT("\\\\.\\pipe\\vdagent") #if defined __GNUC__ #define ALIGN_GCC __attribute__ ((packed)) diff --git a/vdagent.sln b/vdagent.sln index 0848ced..2622f2e 100644 --- a/vdagent.sln +++ b/vdagent.sln @@ -5,8 +5,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vdagent", "vdagent\vdagent. EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vdservice", "vdservice\vdservice.vcproj", "{ADFE5E22-31D0-4343-AE9E-8102CC0051F9}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vdagent_helper", "vdagent_helper\vdagent_helper.vcproj", "{3E459EA7-0252-48E0-A92B-13A66F5F370B}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -31,14 +29,6 @@ Global {ADFE5E22-31D0-4343-AE9E-8102CC0051F9}.Release|Win32.Build.0 = Release|Win32
{ADFE5E22-31D0-4343-AE9E-8102CC0051F9}.Release|x64.ActiveCfg = Release|x64
{ADFE5E22-31D0-4343-AE9E-8102CC0051F9}.Release|x64.Build.0 = Release|x64
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Debug|Win32.ActiveCfg = Debug|Win32
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Debug|Win32.Build.0 = Debug|Win32
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Debug|x64.ActiveCfg = Debug|x64
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Debug|x64.Build.0 = Debug|x64
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Release|Win32.ActiveCfg = Release|Win32
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Release|Win32.Build.0 = Release|Win32
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Release|x64.ActiveCfg = Release|x64
- {3E459EA7-0252-48E0-A92B-13A66F5F370B}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp index 24fe1f7..f254d55 100644 --- a/vdagent/vdagent.cpp +++ b/vdagent/vdagent.cpp @@ -111,7 +111,6 @@ private: bool write_message(uint32_t type, uint32_t size, void* data); bool write_clipboard(VDAgentMessage* msg, uint32_t size); bool init_vio_serial(); - bool launch_helper(); bool send_input(); void set_display_depth(uint32_t depth); void load_display_setting(); @@ -134,7 +133,6 @@ private: ULONG _mouse_y; INPUT _input; DWORD _input_time; - HANDLE _helper_pipe; HANDLE _control_event; HANDLE _stop_event; VDAgentMessage* _in_msg; @@ -191,7 +189,6 @@ VDAgent::VDAgent() , _mouse_x (0) , _mouse_y (0) , _input_time (0) - , _helper_pipe (NULL) , _control_event (NULL) , _stop_event (NULL) , _in_msg (NULL) @@ -290,10 +287,6 @@ bool VDAgent::run() cleanup(); return false; } - if (!launch_helper()) { - cleanup(); - return false; - } } _control_event = CreateEvent(NULL, FALSE, FALSE, NULL); if (!_control_event) { @@ -349,7 +342,6 @@ bool VDAgent::run() void VDAgent::cleanup() { FreeLibrary(_user_lib); - CloseHandle(_helper_pipe); CloseHandle(_stop_event); CloseHandle(_control_event); CloseHandle(_vio_serial); @@ -401,37 +393,6 @@ void VDAgent::handle_control_event() MUTEX_UNLOCK(_control_mutex); } -bool VDAgent::launch_helper() -{ - HINSTANCE helper; - TCHAR helper_path[MAX_PATH]; - TCHAR* slash; - - if (!GetModuleFileName(NULL, helper_path, MAX_PATH) || - !(slash = wcsrchr(helper_path, TCHAR('\\')))) { - vd_printf("Cannot get file path: %lu", GetLastError()); - } - wcscpy(slash + 1, L"vdagent_helper.exe"); - helper = ShellExecute(NULL, L"runas", helper_path, NULL, NULL, SW_HIDE); - if (helper <= (HINSTANCE)32) { - vd_printf("ShellExecute: %lu", helper); - return false; - } - _helper_pipe = CreateNamedPipe(VD_AGENT_NAMED_PIPE, PIPE_ACCESS_OUTBOUND, - PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, - 1, 1024, 1024, 0, NULL); - if (_helper_pipe == INVALID_HANDLE_VALUE) { - vd_printf("CreateNamedPipe() failed: %lu", GetLastError()); - return false; - } - if (!ConnectNamedPipe(_helper_pipe, NULL) && GetLastError() != ERROR_PIPE_CONNECTED) { - vd_printf("ConnectNamedPipe() failed: %lu", GetLastError()); - CloseHandle(_helper_pipe); - return false; - } - return true; -} - void VDAgent::input_desktop_message_loop() { TCHAR desktop_name[MAX_PATH]; @@ -550,8 +511,6 @@ DWORD VDAgent::get_buttons_change(DWORD last_buttons_state, DWORD new_buttons_st bool VDAgent::send_input() { bool ret = true; - DWORD bytes; - _desktop_layout->lock(); if (_pending_input) { if (KillTimer(_hwnd, VD_TIMER_ID)) { @@ -563,14 +522,7 @@ bool VDAgent::send_input() return false; } } - - if (_system_version == SYS_VER_WIN_7_CLASS) { - if (!WriteFile(_helper_pipe, &_input, sizeof(_input), &bytes, NULL) || - sizeof(_input) != bytes) { - vd_printf("Write to pipe failed: %lu", GetLastError()); - ret = _running = false; - } - } else if (!SendInput(1, &_input, sizeof(INPUT))) { + 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.) @@ -579,7 +531,6 @@ bool VDAgent::send_input() ret = _running = false; } } - _input_time = GetTickCount(); _desktop_layout->unlock(); return ret; diff --git a/vdagent_helper/vdagent_helper.cpp b/vdagent_helper/vdagent_helper.cpp deleted file mode 100644 index ebeb77b..0000000 --- a/vdagent_helper/vdagent_helper.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include <windows.h> -#include <stdio.h>
-#include <vdlog.h> - -int main(int argc,char **argv) -{ - TCHAR log_path[MAX_PATH]; - HANDLE pipe; - INPUT input; - HDESK hdesk; - DWORD bytes; - DWORD err = 0; - VDLog* log; - - if (GetTempPath(MAX_PATH, log_path)) { - wcscat(log_path, L"vdagent_helper.log"); - log = VDLog::get(log_path); - } - vd_printf("***vdagent_helper started***"); - pipe = CreateFile(VD_AGENT_NAMED_PIPE, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); - if (pipe == INVALID_HANDLE_VALUE) { - vd_printf("Cannot open pipe %S: %lu", VD_AGENT_NAMED_PIPE, GetLastError()); - goto fin; - } - while (ReadFile(pipe, &input, sizeof(input), &bytes, NULL) && bytes == sizeof(input)) { - hdesk = OpenInputDesktop(0, FALSE, GENERIC_ALL); - if (!hdesk) { - vd_printf("OpenInputDesktop() failed: %lu", GetLastError()); - break; - } - if (!SetThreadDesktop(hdesk)) { - vd_printf("SetThreadDesktop() failed: %lu", GetLastError()); - CloseDesktop(hdesk); - break; - } - if (!SendInput(1, &input, sizeof(input)) && err != GetLastError()) { - err = GetLastError(); - vd_printf("SendInput() failed: %lu", err); - } - CloseDesktop(hdesk); - } - CloseHandle(pipe); -fin: - delete log; - return 0; -}
\ No newline at end of file diff --git a/vdagent_helper/vdagent_helper.vcproj b/vdagent_helper/vdagent_helper.vcproj deleted file mode 100644 index 47ccb79..0000000 --- a/vdagent_helper/vdagent_helper.vcproj +++ /dev/null @@ -1,363 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9.00"
- Name="vdagent_helper"
- ProjectGUID="{3E459EA7-0252-48E0-A92B-13A66F5F370B}"
- RootNamespace="cheese"
- Keyword="Win32Proj"
- TargetFrameworkVersion="196613"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\common;$(SPICE_PROTOCOL_DIR)"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Version.lib"
- LinkIncremental="2"
- UACUIAccess="false"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\common;$(SPICE_PROTOCOL_DIR)"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Version.lib"
- LinkIncremental="2"
- UACUIAccess="false"
- GenerateDebugInformation="true"
- SubSystem="1"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="..\common;$(SPICE_PROTOCOL_DIR)"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Version.lib"
- LinkIncremental="1"
- UACUIAccess="false"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- TargetEnvironment="3"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="..\common;$(SPICE_PROTOCOL_DIR)"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="Version.lib"
- LinkIncremental="1"
- UACUIAccess="false"
- GenerateDebugInformation="true"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\vdagent_helper.cpp"
- >
- </File>
- <File
- RelativePath="..\common\vdlog.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath="..\common\vdlog.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
|