internal static void Init(AnonIpcClient client) { ISLogger.SetLogFileName("InputshareSP_DefaultHost.log"); ISLogger.Write("Starting SP default host"); iClient = client; outMan = new WindowsOutputManager(); outMan.Start(); deskThread = new ActiveDesktopThread(); deskThread.Invoke(() => { Desktop.SwitchDesktop(Desktop.InputDesktop); }); outputDeskThread = new ActiveDesktopThread(); outputDeskThread.Invoke(() => { Desktop.SwitchDesktop(Desktop.InputDesktop); }); hWindow = new HookWindow("SPDesktopWatcher"); hWindow.InitWindow(); hWindow.InstallDesktopMonitor(); hWindow.DesktopSwitchEvent += HWindow_DesktopSwitchEvent; iClient.Disconnected += IClient_Disconnected; iClient.InputReceived += IClient_InputReceived; deskThread.Invoke(() => { GetDisplayConfig(); }); cursorPosUpdateTimer = new Timer((object o) => { CheckCursorPosition(); }, 0, 0, 50); displayCheckTimer = new Timer((object o) => { CheckForDisplayConfigChange(); }, 0, 0, 1500); while (true) { Thread.Sleep(5000); } }
static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; ISLogger.SetLogFileName("InputshareSP.log"); ISLogger.EnableConsole = true; ISLogger.EnableLogFile = true; if (args.Length != 3) { OnInvalidArgs(); return; } string mode = args[0]; string readPipe = args[1]; string writePipe = args[2]; AnonIpcClient client = new AnonIpcClient(readPipe, writePipe, "ServiceIPC"); if (!client.ConnectedEvent.WaitOne(2000)) { ISLogger.Write("Failed to connect to service... exiting"); return; } ISLogger.Write("Connected to service IPC!"); if (mode == "Default") { DefaultHost.SPDefaultHost.Init(client); } else if (mode == "Clipboard") { ClipboardHost.SPClipboardHost.Init(client); } else { OnInvalidArgs(); } }
internal static void Init(AnonIpcClient client) { ISLogger.SetLogFileName("InputshareSP_ClipboardHost.log"); ISLogger.Write("Starting SP clipboard host"); clipMan = new WindowsClipboardManager(); clipMan.Start(); ddMan = new WindowsDragDropManager(); ddMan.Start(); iClient = client; iClient.ClipboardDataReceived += IClient_ClipboardDataReceived; iClient.CheckForDropReceived += IClient_CheckForDropReceived; iClient.DoDragDropReceived += IClient_DoDragDropReceived; iClient.Disconnected += IClient_Disconnected; clipMan.ClipboardContentChanged += ClipMan_ClipboardContentChanged; ddMan.DataDropped += DdMan_DataDropped; ddMan.DragDropCancelled += DdMan_DragDropCancelled; ddMan.DragDropSuccess += DdMan_DragDropSuccess; mouseStateTimer = new Timer(MouseStateTimerCallback, 0, 0, 100); }