private void SendMessage(object sender, EventArgs e) { var session = new PuzzelLibrary.Terminal.Explorer().FindSession(new PuzzelLibrary.Terminal.Explorer().GetRemoteServer(hostName), selectedSessionID); session.MessageBox(richTextBoxContents.Text, textBoxTitleValue.Text); this.Close(); }
public void GetSessionsToDataGridView() { try { if (DataGridView != null) { DataGridView.Rows.Clear(); } var Server = new PuzzelLibrary.Terminal.Explorer().GetRemoteServer(HostName); var sessions = new PuzzelLibrary.Terminal.Explorer().FindSessions(Server); foreach (ITerminalServicesSession session in sessions) { if (session.UserAccount != null) { DataGridView.BeginInvoke(new Action(() => DataGridView.Rows.Add( session.Server.ServerName, session.UserName, session.WindowStationName, session.SessionId, session.ConnectionState, session.IdleTime, session.LoginTime))); } } labelSessionCount.BeginInvoke(new Action(() => labelSessionCount.Text = "Aktywne sesje: " + DataGridView.RowCount)); } catch (Win32Exception) { MessageBox.Show(new Form() { TopMost = true }, "Brak dostępu", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void ContextMenus(object sender, EventArgs e) { int selectedSessionID = 0; DataGridView datagridview = null; int selectedRowIndex = 0; if (tabControl.SelectedTab.Name != "dynaStatusTab") { var tabpage = tabControl.SelectedTab; datagridview = (DataGridView)tabpage.Controls.Find("DataGridView", true)[0]; selectedRowIndex = datagridview.SelectedRows[0].Index; selectedSessionID = Convert.ToInt16(datagridview.Rows[selectedRowIndex].Cells[3].Value); } else { selectedSessionID = Convert.ToInt16(IDSessionLabel.Text); } try { using (ITerminalServer server = new PuzzelLibrary.Terminal.Explorer().GetRemoteServer(HostName)) { server.Open(); ITerminalServicesSession session = server.GetSession(selectedSessionID); if (sender is ToolStripMenuItem) { switch (((ToolStripMenuItem)sender).Name) { case nameof(menuItemSessionDisconnect): { session.Disconnect(); MessageBox.Show(new Form() { TopMost = true }, "Sesja została rozłączona", "Rozłączanie sesji", MessageBoxButtons.OK, MessageBoxIcon.Information); BtnRefresh_Click(sender, e); break; } case nameof(menuItemSessionSendMessage): { using (var terms = new ExplorerFormSendMessage(HostName, selectedSessionID)) { terms.ShowDialog(); MessageBox.Show("Wiadomość wysłano", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; } case nameof(menuItemSessionRemoteControl): { var ADCompResult = PuzzelLibrary.AD.Computer.Search.ByComputerName(HostName, "operatingSystemVersion"); var osVersionComplete = ADCompResult[0].GetDirectoryEntry().Properties["operatingSystemVersion"].Value.ToString().Split(" "); double osVersion = Convert.ToDouble(osVersionComplete[0].Replace('.', ',')); if (osVersion > 6.1) { PuzzelLibrary.ProcessExecutable.ProcExec.StartSimpleProcess("mstsc.exe", "/v:" + HostName + " /shadow:" + selectedSessionID + " /control /NoConsentPrompt"); } else { PuzzelLibrary.Terminal.TerminalExplorer Term = new PuzzelLibrary.Terminal.TerminalExplorer(); Term.ConnectToSession(HostName, selectedSessionID); } break; } case nameof(menuItemSessionLogoff): { session.Logoff(); MessageBox.Show(new Form() { TopMost = true }, "Sesja została wylogowana", "Wylogowywanie sesji", MessageBoxButtons.OK, MessageBoxIcon.Information); BtnRefresh_Click(sender, e); break; } case nameof(menuItemSessionStatus): { DynaStatusTab(session, selectedSessionID); break; } case nameof(menuItemSessionProcesses): { DynaProcessTab(server, session, selectedSessionID); break; } case "KillProcess": { var processId = Convert.ToInt16(datagridview.Rows[selectedRowIndex].Cells[4].Value); var process = server.GetProcess(processId); process.Kill(); RefreshProcesses(sender, server, session, selectedSessionID); MessageBox.Show("Zabito aplikację"); break; } } } else { switch (((Button)sender).Name) { case nameof(btnRefreshNow): { if (tabControl.SelectedTab.Name == "dynaProcesTab") { RefreshProcesses(sender, server, session, selectedSessionID); break; } if (tabControl.SelectedTab.Name == "dynaStatusTab") { RefreshStatus(session, selectedSessionID); break; } break; } } } server.Close(); } } catch (Exception ex) { PuzzelLibrary.Debug.LogsCollector.GetLogs(ex, HostName); } }