示例#1
0
        private Process LaunchSPDragDrop()
        {
            IntPtr userToken = IntPtr.Zero;

            try
            {
                iHostClipboard?.Dispose();
                iHostClipboard = new AnonIpcHost("SP dragdrop");
                ISLogger.Write("Launching SP dragdrop process");
                userToken = Token.GetUserToken();
                Process proc = ProcessLauncher.LaunchSP(ProcessLauncher.SPMode.Clipboard, WindowsDesktop.Default, Settings.DEBUG_SPCONSOLEENABLED, iHostClipboard, userToken);
                Token.CloseToken(userToken);
                spClipboardHandle.host = iHostClipboard;
                spClipboardHandle.NotifyHandleUpdate();
                return(proc);
            }
            catch (Exception ex)
            {
                ISLogger.Write("Failed to launch inputshareSP dragdrop process: " + ex.Message);

                return(null);
            }
            finally
            {
                if (userToken != IntPtr.Zero)
                {
                    Token.CloseToken(userToken);
                }
            }
        }
示例#2
0
        private Process LaunchSPMain()
        {
            IntPtr sysToken = IntPtr.Zero;

            try
            {
                iHostMain?.Dispose();
                iHostMain = new AnonIpcHost("SP main");
                ISLogger.Write("Launching SP default process");


                if (Settings.DEBUG_SPECIFYSPSESSION != -1)
                {
                    sysToken = unchecked (Token.GetSystemToken((uint)Settings.DEBUG_SPECIFYSPSESSION));
                }
                else
                {
                    sysToken = Token.GetSystemToken(Session.ConsoleSessionId);
                }

                Process proc = ProcessLauncher.LaunchSP(ProcessLauncher.SPMode.Default, WindowsDesktop.Default, Settings.DEBUG_SPCONSOLEENABLED, iHostMain, sysToken);
                Token.CloseToken(sysToken);
                spMainHandle.host = iHostMain;
                spMainHandle.NotifyHandleUpdate();
                return(proc);
            }
            catch (Exception ex)
            {
                ISLogger.Write("Failed to launch inputshareSP main process: " + ex.Message);
                return(null);
            }
            finally
            {
                if (sysToken != IntPtr.Zero)
                {
                    Token.CloseToken(sysToken);
                }
            }
        }