コード例 #1
0
ファイル: SPDefaultHost.cs プロジェクト: gezi322/Inputshare
        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);
            }
        }
コード例 #2
0
ファイル: InputshareSP.cs プロジェクト: gezi322/Inputshare
        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();
            }
        }
コード例 #3
0
ファイル: SPClipboardHost.cs プロジェクト: gezi322/Inputshare
        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);
        }