示例#1
0
文件: who.cs 项目: Diullei/Storm
        public static void Main(string[] args)
        {
            if (args.Length == 1 && (args[0] == "?" || args[0] == "/?" || args[0] == "-?" || args[0].ToLower() == "help"))
            {
                Console.WriteLine(usage);
            }
            else
            {
                Console.WriteLine("Retrieved by CLR...");
                Console.WriteLine("User: "******"Domain: "+Environment.UserDomainName);
                Console.WriteLine("");

                Console.WriteLine("Retrieved by WTSAPI...");
                TerminalServer WTSinfo = new TerminalServer();

                Console.Write("Currently logged user: "******"\n");
                else
                    Console.WriteLine("<no user>" + "\n");

                WTSinfo.GetSessionInfo();
            }
        }
        public void Connect(Kohl.Framework.Security.Credential credentials)
        {
            progress.Visible        = true;
            splitContainer1.Visible = false;

            this.SelectedSession              = null;
            this.dataGridView1.DataSource     = null;
            this.dataGridView2.DataSource     = null;
            this.propertyGrid1.SelectedObject = null;

            this.server = TerminalServer.LoadServer(this.ServerNameComboBox.Text, credentials);

            progress.Visible        = false;
            splitContainer1.Visible = true;

            if (this.server.IsTerminalServer)
            {
                this.dataGridView1.DataSource = this.server.Sessions;

                if (this.dataGridView1.Columns.Count > 0)
                {
                    this.dataGridView1.Columns[1].Visible = false;
                }

                if (this.server.Sessions == null)
                {
                    MessageBox.Show("Terminals was unable to enumerate your server's sessions." + (this.server.Errors != null & this.server.Errors.Count > 0 ? "\n" + this.server.Errors[0] : ""));
                }
            }
            else
            {
                MessageBox.Show("This machine does not appear to be a terminal server.");
            }
        }
示例#3
0
        static public void Main(string[] args)
        {
            if (args.Length == 1 && (args[0] == "?" || args[0] == "/?" || args[0] == "-?" || args[0].ToLower() == "help"))
            {
                Console.WriteLine(usage);
            }
            else
            {
                Console.WriteLine("Retrieved by CLR...");
                Console.WriteLine("User: "******"Domain: " + Environment.UserDomainName);
                Console.WriteLine("");

                Console.WriteLine("Retrieved by WTSAPI...");
                TerminalServer WTSinfo = new TerminalServer();

                Console.Write("Currently logged user: "******"\n");
                }
                else
                {
                    Console.WriteLine("<no user>" + "\n");
                }

                WTSinfo.GetSessionInfo();
            }
        }
示例#4
0
        internal TerminalSession(TerminalServer server, WTS_SESSION_INFO info)
        {
            _server = server;
            _sessionId = info.SessionId;
            _winStation = info.WinStationName;
            _state = (TerminalSessionState)(info.State);

            _client = new TerminalSessionClientInfo(this);
        }
示例#5
0
        private void CheckForTS(object state)
        {
            IFavorite favorite = state as IFavorite;

            try
            {
                Thread.Sleep(3000);
                this.Server           = TerminalServer.LoadServer(favorite.ServerName);
                this.IsTerminalServer = this.Server.IsATerminalServer;
            }
            catch (Exception exception)
            {
                const string MESSAGE = "Checked to see if {0} is a terminal server. {0} is not a terminal server";
                string       message = String.Format(MESSAGE, favorite.ServerName);
                Logging.Error(message, exception);
            }
        }
示例#6
0
        private void button1_Click(object sender, EventArgs e)
        {
            this.SelectedSession              = null;
            this.dataGridView1.DataSource     = null;
            this.dataGridView2.DataSource     = null;
            this.propertyGrid1.SelectedObject = null;
            Application.DoEvents();
            this.server = TerminalServer.LoadServer(this.ServerNameComboBox.Text);

            if (this.server.IsATerminalServer)
            {
                this.dataGridView1.DataSource         = this.server.Sessions;
                this.dataGridView1.Columns[1].Visible = false;
            }
            else
            {
                MessageBox.Show("This machine does not appear to be a terminal server.");
            }
        }
        protected override void ProcessServer(TerminalServer server)
        {
            foreach (TerminalSession session in server.Sessions)
            {
                if (Id == null || Array.IndexOf<Int32>(Id, session.Id) > -1)
                {
                    try
                    {
                        ProcessSession(session);
                    }
                    catch (System.Runtime.InteropServices.ExternalException exc)
                    {
                        ErrorHandler.WriteWin32Error(exc, "TerminalSessionError", ErrorCategory.NotSpecified, session);
                    }
                }

                if (Stopping)
                {
                    break;
                }
            }
        }
示例#8
0
        protected override void ProcessServer(TerminalServer server)
        {
            foreach (TerminalSession session in server.Sessions)
            {
                if (Id == null || Array.IndexOf <Int32>(Id, session.Id) > -1)
                {
                    try
                    {
                        ProcessSession(session);
                    }
                    catch (System.Runtime.InteropServices.ExternalException exc)
                    {
                        ErrorHandler.WriteWin32Error(exc, "TerminalSessionError", ErrorCategory.NotSpecified, session);
                    }
                }

                if (Stopping)
                {
                    break;
                }
            }
        }
示例#9
0
        protected override void OnResumeSuspend()
        {
            TerminalServer wts = Component <TerminalServer>();

            if (wts.ConsoleActive && !wts.ConsoleLocked)
            {
                //= keine Kennworteingabe nach dem Aufwachen

                try
                {
                    helper = new SessionHelperInvocation(Component <SessionHelper>());
                    helper.UserDetected += OnUserDetected;
                }
                catch (Exception e)
                {
                    EventLog.WriteEntry(e.ToString(), EventLogEntryType.Error, 2);

                    return;
                }
            }

            timer.Start();
        }
示例#10
0
        private void sd_Click(object sender, EventArgs e)
        {
            var menu = sender as ToolStripMenuItem;

            if (menu != null)
            {
                if (menu.Text == Resources.Shutdown)
                {
                    var server = menu.Tag as TerminalServer;
                    if (server != null && MessageBox.Show(Resources.Areyousureyouwanttoshutthismachineoff, Resources.Confirmation, MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        TerminalServicesAPI.ShutdownSystem(server, false);
                    }
                }
                else if (menu.Text == Resources.Reboot)
                {
                    var server = menu.Tag as TerminalServer;
                    if (server != null && MessageBox.Show(Resources.Areyousureyouwanttorebootthismachine, Resources.Confirmation, MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        TerminalServicesAPI.ShutdownSystem(server, true);
                    }
                }
                else if (menu.Text == Resources.Logoff)
                {
                    var session = menu.Tag as Session;
                    if (session != null && MessageBox.Show(Resources.Areyousureyouwanttologthissessionoff, Resources.Confirmation, MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        TerminalServicesAPI.LogOffSession(session, false);
                    }
                }
                else if (menu.Text == Resources.SendMessage)
                {
                    var session = menu.Tag as Session;
                    TerminalServer.SendMessageToSession(session);
                }
            }
        }
示例#11
0
        private void ConnectButton_Click(object sender, EventArgs e)
        {
            if (this.ParentForm != null)
            {
                this.ParentForm.Cursor = Cursors.WaitCursor;
            }

            this.selectedSession              = null;
            dataGridView1.DataSource          = null;
            dataGridView2.DataSource          = null;
            this.propertyGrid1.SelectedObject = null;
            Application.DoEvents();
            server = TerminalServer.LoadServer(this.ServerNameComboBox.Text);

            try
            {
                if (server.IsATerminalServer)
                {
                    dataGridView1.DataSource         = server.Sessions;
                    dataGridView1.Columns[1].Visible = false;
                }
                else
                {
                    MessageBox.Show("This machine does not appear to be a Terminal Server");
                }
            }
            catch (Exception)
            {
                // Do nothing when error
            }


            if (this.ParentForm != null)
            {
                this.ParentForm.Cursor = Cursors.Default;
            }
        }
示例#12
0
 protected virtual void ProcessServer(TerminalServer server)
 {
 }
示例#13
0
 private void SendMessageToolStripMenuItem_Click(object sender, EventArgs e)
 {
     TerminalServer.SendMessageToSession(this.selectedSession);
 }
示例#14
0
 protected virtual void ProcessServer(TerminalServer server)
 {
 }