Merge pull request #3 from mRemoteNG/kmcode_csharp_conv
Remove WTS Sessions panel
266
.gitignore
vendored
@@ -1,16 +1,13 @@
|
||||
Release/
|
||||
mRemoteV1/bin/
|
||||
mRemoteV1/obj/
|
||||
mRemoteV1/publish/
|
||||
**/bin/
|
||||
**/obj/
|
||||
**/[Rr]elease [Pp]ortable/
|
||||
**/[Dd]ebug [Pp]ortable/
|
||||
|
||||
*.pfx
|
||||
*.suo
|
||||
*.vbproj.user
|
||||
Thumbs.db
|
||||
[Dd]ebug/
|
||||
_Re[Ss]harper.*
|
||||
*.resharper
|
||||
*.resharper.user
|
||||
*.suo
|
||||
*.cache
|
||||
*~
|
||||
*.swp
|
||||
@@ -24,3 +21,256 @@ UpgradeLog.XML
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.ipch
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opendb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
*.VC.db
|
||||
*.VC.VC.opendb
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
nCrunchTemp_*
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||
# in these scripts will be unencrypted
|
||||
PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
# Microsoft Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Microsoft Azure Emulator
|
||||
ecf/
|
||||
rcf/
|
||||
|
||||
# Windows Store app package directories and files
|
||||
AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# GhostDoc plugin setting file
|
||||
*.GhostDoc.xml
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/ModelManifest.xml
|
||||
**/*.Server/GeneratedArtifacts
|
||||
**/*.Server/ModelManifest.xml
|
||||
_Pvt_Extensions
|
||||
|
||||
# Paket dependency manager
|
||||
.paket/paket.exe
|
||||
paket-files/
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\bin\Debug\SharedLibraryNG.dll
|
||||
C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\bin\Debug\SharedLibraryNG.pdb
|
||||
C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.dll
|
||||
C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.pdb
|
||||
C:\Users\David\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\bin\Debug\SharedLibraryNG.dll
|
||||
C:\Users\David\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\bin\Debug\SharedLibraryNG.pdb
|
||||
C:\Users\David\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.csprojResolveAssemblyReference.cache
|
||||
C:\Users\David\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.dll
|
||||
C:\Users\David\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.pdb
|
||||
C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\obj\Debug\SharedLibraryNG.csprojResolveAssemblyReference.cache
|
||||
C:\Users\hiriumi\dev\mRemoteNG\SharedLibraryNG\bin\Debug\SharedLibraryNG.dll
|
||||
C:\Users\hiriumi\dev\mRemoteNG\SharedLibraryNG\bin\Debug\SharedLibraryNG.pdb
|
||||
C:\Users\hiriumi\dev\mRemoteNG\SharedLibraryNG\obj\Debug\SharedLibraryNG.dll
|
||||
C:\Users\hiriumi\dev\mRemoteNG\SharedLibraryNG\obj\Debug\SharedLibraryNG.pdb
|
||||
@@ -716,13 +716,13 @@ namespace mRemoteNG.App
|
||||
public static string GetDefaultStartupConnectionFileName()
|
||||
{
|
||||
string newPath = App.Info.ConnectionsFileInfo.DefaultConnectionsPath + "\\" + Info.ConnectionsFileInfo.DefaultConnectionsFile;
|
||||
#if !PORTABLE
|
||||
string oldPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + "\\" + (new Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase()).Info.ProductName + "\\" + Info.Connections.DefaultConnectionsFile;
|
||||
#if !PORTABLE
|
||||
string oldPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + "\\" + (new Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase()).Info.ProductName + "\\" + App.Info.ConnectionsFileInfo.DefaultConnectionsFile;
|
||||
if (File.Exists(oldPath))
|
||||
{
|
||||
return oldPath;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return newPath;
|
||||
}
|
||||
|
||||
|
||||
@@ -102,9 +102,6 @@ namespace mRemoteNG.App
|
||||
Windows.errorsForm = new ErrorAndInfoWindow(Windows.errorsPanel);
|
||||
Windows.errorsPanel = Windows.errorsForm;
|
||||
|
||||
Windows.sessionsForm = new SessionsWindow(Windows.sessionsPanel);
|
||||
Windows.sessionsPanel = Windows.sessionsForm;
|
||||
|
||||
Windows.screenshotForm = new ScreenshotManagerWindow(Windows.screenshotPanel);
|
||||
Windows.screenshotPanel = Windows.screenshotForm;
|
||||
|
||||
@@ -223,11 +220,11 @@ namespace mRemoteNG.App
|
||||
}
|
||||
private static void LogApplicationData()
|
||||
{
|
||||
#if !PORTABLE
|
||||
Log.InfoFormat("{0} {1} starting.", System.Windows.Forms.Application.ProductName, System.Windows.Forms.Application.ProductVersion);
|
||||
#else
|
||||
#if !PORTABLE
|
||||
Runtime.Log.InfoFormat("{0} {1} starting.", System.Windows.Forms.Application.ProductName, System.Windows.Forms.Application.ProductVersion);
|
||||
#else
|
||||
Runtime.Log.InfoFormat("{0} {1} {2} starting.", System.Windows.Forms.Application.ProductName, System.Windows.Forms.Application.ProductVersion, My.Language.strLabelPortableEdition);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
private static void LogCmdLineArgs()
|
||||
{
|
||||
|
||||
@@ -15,8 +15,6 @@ namespace mRemoteNG.App
|
||||
public static DockContent configPanel = new DockContent();
|
||||
public static UI.Window.ErrorAndInfoWindow errorsForm;
|
||||
public static DockContent errorsPanel = new DockContent();
|
||||
public static UI.Window.SessionsWindow sessionsForm;
|
||||
public static DockContent sessionsPanel = new DockContent();
|
||||
public static UI.Window.ScreenshotManagerWindow screenshotForm;
|
||||
public static DockContent screenshotPanel = new DockContent();
|
||||
public static ExportForm exportForm;
|
||||
|
||||
@@ -341,10 +341,7 @@ namespace mRemoteNG.Config.Settings
|
||||
|
||||
if (persistString == typeof(ErrorAndInfoWindow).ToString())
|
||||
return Windows.errorsPanel;
|
||||
|
||||
if (persistString == typeof(SessionsWindow).ToString())
|
||||
return Windows.sessionsPanel;
|
||||
|
||||
|
||||
if (persistString == typeof(ScreenshotManagerWindow).ToString())
|
||||
return Windows.screenshotPanel;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ using Microsoft.VisualBasic;
|
||||
using System.Collections;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
using EOLWTSCOM;
|
||||
using System.ComponentModel;
|
||||
using mRemoteNG.Messages;
|
||||
using mRemoteNG.App;
|
||||
@@ -16,7 +15,7 @@ using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public class ProtocolRDP : ProtocolBase
|
||||
public class ProtocolRDP : ProtocolBase
|
||||
{
|
||||
#region Private Declarations
|
||||
private MsRdpClient6NotSafeForScripting _rdpClient;
|
||||
@@ -817,182 +816,6 @@ namespace mRemoteNG.Connection.Protocol.RDP
|
||||
public static Version RDC80 = new Version(6, 2, 9200);
|
||||
}
|
||||
|
||||
#region Terminal Sessions
|
||||
public class TerminalSessions
|
||||
{
|
||||
private WTSCOM _wtsCom;
|
||||
|
||||
public TerminalSessions()
|
||||
{
|
||||
try
|
||||
{
|
||||
_wtsCom = new WTSCOM();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage("TerminalSessions.New() failed.", ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
}
|
||||
|
||||
public int OpenConnection(string hostname)
|
||||
{
|
||||
if (_wtsCom == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return _wtsCom.WTSOpenServer(hostname);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage(My.Language.strRdpOpenConnectionFailed, ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void CloseConnection(int serverHandle)
|
||||
{
|
||||
if (_wtsCom == null)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
_wtsCom.WTSCloseServer(serverHandle);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage(My.Language.strRdpCloseConnectionFailed, ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
}
|
||||
|
||||
public SessionsCollection GetSessions(int serverHandle)
|
||||
{
|
||||
if (_wtsCom == null)
|
||||
{
|
||||
return new SessionsCollection();
|
||||
}
|
||||
|
||||
SessionsCollection sessions = new SessionsCollection();
|
||||
|
||||
try
|
||||
{
|
||||
WTSSessions wtsSessions = _wtsCom.WTSEnumerateSessions(serverHandle);
|
||||
|
||||
int sessionId = 0;
|
||||
string sessionUser = "";
|
||||
long sessionState;
|
||||
string sessionName = "";
|
||||
|
||||
foreach (WTSSession wtsSession in wtsSessions)
|
||||
{
|
||||
sessionId = wtsSession.SessionId;
|
||||
sessionUser = _wtsCom.WTSQuerySessionInformation(serverHandle, wtsSession.SessionId, 5); // WFUsername = 5
|
||||
sessionState = long.Parse(wtsSession.State + "\r\n");
|
||||
sessionName = wtsSession.WinStationName + "\r\n";
|
||||
|
||||
if (!string.IsNullOrEmpty(sessionUser))
|
||||
{
|
||||
if (sessionState == 0)
|
||||
{
|
||||
sessions.Add(sessionId, My.Language.strActive, sessionUser, sessionName);
|
||||
}
|
||||
else
|
||||
{
|
||||
sessions.Add(sessionId, My.Language.strInactive, sessionUser, sessionName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage(My.Language.strRdpGetSessionsFailed, ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
|
||||
return sessions;
|
||||
}
|
||||
|
||||
public bool KillSession(int serverHandle, int sessionId)
|
||||
{
|
||||
if (_wtsCom == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool result = false;
|
||||
|
||||
try
|
||||
{
|
||||
result = _wtsCom.WTSLogoffSession(serverHandle, sessionId, true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage("TerminalSessions.KillSession() failed.", ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public class SessionsCollection : CollectionBase
|
||||
{
|
||||
|
||||
public Session this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
return ((Session) (List[index]));
|
||||
}
|
||||
}
|
||||
|
||||
public int ItemsCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return List.Count;
|
||||
}
|
||||
}
|
||||
|
||||
public Session Add(int sessionId, string sessionState, string sessionUser, string sessionName)
|
||||
{
|
||||
Session newSession = new Session();
|
||||
|
||||
try
|
||||
{
|
||||
newSession.SessionId = sessionId;
|
||||
newSession.SessionState = sessionState;
|
||||
newSession.SessionUser = sessionUser;
|
||||
newSession.SessionName = sessionName;
|
||||
|
||||
List.Add(newSession);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionMessage(My.Language.strRdpAddSessionFailed, ex, MessageClass.ErrorMsg, true);
|
||||
}
|
||||
|
||||
return newSession;
|
||||
}
|
||||
|
||||
public void ClearSessions()
|
||||
{
|
||||
List.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public class Session : CollectionBase
|
||||
{
|
||||
|
||||
public int SessionId {get; set;}
|
||||
public string SessionState {get; set;}
|
||||
public string SessionUser {get; set;}
|
||||
public string SessionName {get; set;}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Fatal Errors
|
||||
public class FatalErrors
|
||||
{
|
||||
|
||||
28
mRemoteV1/UI/Forms/frmMain.Designer.cs
generated
@@ -100,8 +100,6 @@ namespace mRemoteNG
|
||||
this.mMenViewConnections.Click += new System.EventHandler(this.mMenViewConnections_Click);
|
||||
this.mMenViewConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewConfig.Click += new System.EventHandler(this.mMenViewConfig_Click);
|
||||
this.mMenViewSessions = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewSessions.Click += new System.EventHandler(this.mMenViewSessions_Click);
|
||||
this.mMenViewErrorsAndInfos = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewErrorsAndInfos.Click += new System.EventHandler(this.mMenViewErrorsAndInfos_Click);
|
||||
this.mMenViewScreenshotManager = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -110,8 +108,6 @@ namespace mRemoteNG
|
||||
this.mMenViewJumpTo = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewJumpToConnectionsConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewJumpToConnectionsConfig.Click += new System.EventHandler(this.mMenViewJumpToConnectionsConfig_Click);
|
||||
this.mMenViewJumpToSessionsScreenshots = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewJumpToSessionsScreenshots.Click += new System.EventHandler(this.mMenViewJumpToSessionsScreenshots_Click);
|
||||
this.mMenViewJumpToErrorsInfos = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.mMenViewJumpToErrorsInfos.Click += new System.EventHandler(this.mMenViewJumpToErrorsInfos_Click);
|
||||
this.mMenViewResetLayout = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -406,7 +402,7 @@ namespace mRemoteNG
|
||||
//
|
||||
//mMenView
|
||||
//
|
||||
this.mMenView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {this.mMenViewAddConnectionPanel, this.mMenViewConnectionPanels, this.mMenViewSep1, this.mMenViewConnections, this.mMenViewConfig, this.mMenViewSessions, this.mMenViewErrorsAndInfos, this.mMenViewScreenshotManager, this.ToolStripSeparator1, this.mMenViewJumpTo, this.mMenViewResetLayout, this.mMenViewSep2, this.mMenViewQuickConnectToolbar, this.mMenViewExtAppsToolbar, this.mMenViewSep3, this.mMenViewFullscreen});
|
||||
this.mMenView.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {this.mMenViewAddConnectionPanel, this.mMenViewConnectionPanels, this.mMenViewSep1, this.mMenViewConnections, this.mMenViewConfig, this.mMenViewErrorsAndInfos, this.mMenViewScreenshotManager, this.ToolStripSeparator1, this.mMenViewJumpTo, this.mMenViewResetLayout, this.mMenViewSep2, this.mMenViewQuickConnectToolbar, this.mMenViewExtAppsToolbar, this.mMenViewSep3, this.mMenViewFullscreen});
|
||||
this.mMenView.Name = "mMenView";
|
||||
this.mMenView.Size = new System.Drawing.Size(44, 20);
|
||||
this.mMenView.Text = "&View";
|
||||
@@ -448,15 +444,6 @@ namespace mRemoteNG
|
||||
this.mMenViewConfig.Size = new System.Drawing.Size(228, 22);
|
||||
this.mMenViewConfig.Text = "Config";
|
||||
//
|
||||
//mMenViewSessions
|
||||
//
|
||||
this.mMenViewSessions.Checked = true;
|
||||
this.mMenViewSessions.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.mMenViewSessions.Image = (System.Drawing.Image) (resources.GetObject("mMenViewSessions.Image"));
|
||||
this.mMenViewSessions.Name = "mMenViewSessions";
|
||||
this.mMenViewSessions.Size = new System.Drawing.Size(228, 22);
|
||||
this.mMenViewSessions.Text = "Sessions";
|
||||
//
|
||||
//mMenViewErrorsAndInfos
|
||||
//
|
||||
this.mMenViewErrorsAndInfos.Checked = true;
|
||||
@@ -480,7 +467,7 @@ namespace mRemoteNG
|
||||
//
|
||||
//mMenViewJumpTo
|
||||
//
|
||||
this.mMenViewJumpTo.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {this.mMenViewJumpToConnectionsConfig, this.mMenViewJumpToSessionsScreenshots, this.mMenViewJumpToErrorsInfos});
|
||||
this.mMenViewJumpTo.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {this.mMenViewJumpToConnectionsConfig, this.mMenViewJumpToErrorsInfos});
|
||||
this.mMenViewJumpTo.Image = My.Resources.JumpTo;
|
||||
this.mMenViewJumpTo.Name = "mMenViewJumpTo";
|
||||
this.mMenViewJumpTo.Size = new System.Drawing.Size(228, 22);
|
||||
@@ -495,15 +482,6 @@ namespace mRemoteNG
|
||||
this.mMenViewJumpToConnectionsConfig.Size = new System.Drawing.Size(260, 22);
|
||||
this.mMenViewJumpToConnectionsConfig.Text = "Connections && Config";
|
||||
//
|
||||
//mMenViewJumpToSessionsScreenshots
|
||||
//
|
||||
this.mMenViewJumpToSessionsScreenshots.Image = My.Resources.Sessions;
|
||||
this.mMenViewJumpToSessionsScreenshots.Name = "mMenViewJumpToSessionsScreenshots";
|
||||
this.mMenViewJumpToSessionsScreenshots.ShortcutKeys = (System.Windows.Forms.Keys) ((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt)
|
||||
| System.Windows.Forms.Keys.S);
|
||||
this.mMenViewJumpToSessionsScreenshots.Size = new System.Drawing.Size(260, 22);
|
||||
this.mMenViewJumpToSessionsScreenshots.Text = "Sessions && Screenshots";
|
||||
//
|
||||
//mMenViewJumpToErrorsInfos
|
||||
//
|
||||
this.mMenViewJumpToErrorsInfos.Image = My.Resources.InformationSmall;
|
||||
@@ -918,7 +896,6 @@ namespace mRemoteNG
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenInfoAbout;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewConnectionPanels;
|
||||
internal System.Windows.Forms.ToolStripSeparator mMenViewSep1;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewSessions;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewConnections;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewConfig;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewErrorsAndInfos;
|
||||
@@ -944,7 +921,6 @@ namespace mRemoteNG
|
||||
internal Controls.ToolStripSplitButton btnQuickConnect;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewJumpTo;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewJumpToConnectionsConfig;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewJumpToSessionsScreenshots;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenViewJumpToErrorsInfos;
|
||||
internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator1;
|
||||
internal System.Windows.Forms.ToolStripMenuItem mMenToolsUVNCSC;
|
||||
|
||||
@@ -245,12 +245,10 @@ namespace mRemoteNG
|
||||
mMenViewConnectionPanels.Text = My.Language.strMenuConnectionPanels;
|
||||
mMenViewConnections.Text = My.Language.strMenuConnections;
|
||||
mMenViewConfig.Text = My.Language.strMenuConfig;
|
||||
mMenViewSessions.Text = My.Language.strMenuSessions;
|
||||
mMenViewErrorsAndInfos.Text = My.Language.strMenuNotifications;
|
||||
mMenViewScreenshotManager.Text = My.Language.strScreenshots;
|
||||
mMenViewJumpTo.Text = My.Language.strMenuJumpTo;
|
||||
mMenViewJumpToConnectionsConfig.Text = My.Language.strMenuConnectionsAndConfig;
|
||||
mMenViewJumpToSessionsScreenshots.Text = My.Language.strMenuSessionsAndScreenshots;
|
||||
mMenViewJumpToErrorsInfos.Text = My.Language.strMenuNotifications;
|
||||
mMenViewResetLayout.Text = My.Language.strMenuResetLayout;
|
||||
mMenViewQuickConnectToolbar.Text = My.Language.strMenuQuickConnectToolbar;
|
||||
@@ -663,7 +661,6 @@ namespace mRemoteNG
|
||||
this.mMenViewConnections.Checked = !Windows.treeForm.IsHidden;
|
||||
this.mMenViewConfig.Checked = !Windows.configForm.IsHidden;
|
||||
this.mMenViewErrorsAndInfos.Checked = !Windows.errorsForm.IsHidden;
|
||||
this.mMenViewSessions.Checked = !Windows.sessionsForm.IsHidden;
|
||||
this.mMenViewScreenshotManager.Checked = !Windows.screenshotForm.IsHidden;
|
||||
|
||||
this.mMenViewExtAppsToolbar.Checked = tsExternalTools.Visible;
|
||||
@@ -690,20 +687,6 @@ namespace mRemoteNG
|
||||
(((Control)sender).Tag as BaseWindow).Focus();
|
||||
}
|
||||
|
||||
public void mMenViewSessions_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.mMenViewSessions.Checked == false)
|
||||
{
|
||||
Windows.sessionsPanel.Show(this.pnlDock);
|
||||
this.mMenViewSessions.Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Windows.sessionsPanel.Hide();
|
||||
this.mMenViewSessions.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void mMenViewConnections_Click(Object sender, EventArgs e)
|
||||
{
|
||||
if (this.mMenViewConnections.Checked == false)
|
||||
@@ -772,18 +755,6 @@ namespace mRemoteNG
|
||||
}
|
||||
}
|
||||
|
||||
public void mMenViewJumpToSessionsScreenshots_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (pnlDock.ActiveContent == Windows.sessionsPanel)
|
||||
{
|
||||
Windows.screenshotForm.Activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
Windows.sessionsForm.Activate();
|
||||
}
|
||||
}
|
||||
|
||||
public void mMenViewJumpToErrorsInfos_Click(object sender, EventArgs e)
|
||||
{
|
||||
Windows.errorsForm.Activate();
|
||||
|
||||
@@ -34,10 +34,6 @@ namespace mRemoteNG.UI.Window
|
||||
internal System.Windows.Forms.TextBox txtCheck5;
|
||||
internal System.Windows.Forms.CheckBox chkAlwaysShow;
|
||||
internal System.Windows.Forms.Panel pnlChecks;
|
||||
internal System.Windows.Forms.Panel pnlCheck6;
|
||||
internal System.Windows.Forms.TextBox txtCheck6;
|
||||
internal System.Windows.Forms.Label lblCheck6;
|
||||
internal System.Windows.Forms.PictureBox pbCheck6;
|
||||
internal System.Windows.Forms.Panel pnlCheck1;
|
||||
|
||||
private void InitializeComponent()
|
||||
@@ -68,10 +64,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.chkAlwaysShow = new System.Windows.Forms.CheckBox();
|
||||
this.chkAlwaysShow.CheckedChanged += new System.EventHandler(this.chkAlwaysShow_CheckedChanged);
|
||||
this.pnlChecks = new System.Windows.Forms.Panel();
|
||||
this.pnlCheck6 = new System.Windows.Forms.Panel();
|
||||
this.txtCheck6 = new System.Windows.Forms.TextBox();
|
||||
this.lblCheck6 = new System.Windows.Forms.Label();
|
||||
this.pbCheck6 = new System.Windows.Forms.PictureBox();
|
||||
this.pnlCheck1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbCheck1).BeginInit();
|
||||
this.pnlCheck2.SuspendLayout();
|
||||
@@ -83,8 +75,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.pnlCheck5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbCheck5).BeginInit();
|
||||
this.pnlChecks.SuspendLayout();
|
||||
this.pnlCheck6.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbCheck6).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
//pnlCheck1
|
||||
@@ -360,7 +350,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck1);
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck2);
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck3);
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck6);
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck5);
|
||||
this.pnlChecks.Controls.Add(this.pnlCheck4);
|
||||
this.pnlChecks.Location = new System.Drawing.Point(12, 12);
|
||||
@@ -368,54 +357,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.pnlChecks.Size = new System.Drawing.Size(568, 824);
|
||||
this.pnlChecks.TabIndex = 52;
|
||||
//
|
||||
//pnlCheck6
|
||||
//
|
||||
this.pnlCheck6.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right);
|
||||
this.pnlCheck6.Controls.Add(this.txtCheck6);
|
||||
this.pnlCheck6.Controls.Add(this.lblCheck6);
|
||||
this.pnlCheck6.Controls.Add(this.pbCheck6);
|
||||
this.pnlCheck6.Location = new System.Drawing.Point(3, 683);
|
||||
this.pnlCheck6.Name = "pnlCheck6";
|
||||
this.pnlCheck6.Size = new System.Drawing.Size(562, 130);
|
||||
this.pnlCheck6.TabIndex = 50;
|
||||
this.pnlCheck6.Visible = false;
|
||||
//
|
||||
//txtCheck6
|
||||
//
|
||||
this.txtCheck6.Anchor = (System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right);
|
||||
this.txtCheck6.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.txtCheck6.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.txtCheck6.Location = new System.Drawing.Point(129, 29);
|
||||
this.txtCheck6.Multiline = true;
|
||||
this.txtCheck6.Name = "txtCheck6";
|
||||
this.txtCheck6.ReadOnly = true;
|
||||
this.txtCheck6.Size = new System.Drawing.Size(430, 97);
|
||||
this.txtCheck6.TabIndex = 2;
|
||||
//
|
||||
//lblCheck6
|
||||
//
|
||||
this.lblCheck6.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right);
|
||||
this.lblCheck6.Font = new System.Drawing.Font("Microsoft Sans Serif", (float) (12.0F), System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, System.Convert.ToByte(0));
|
||||
this.lblCheck6.Location = new System.Drawing.Point(112, 3);
|
||||
this.lblCheck6.Name = "lblCheck6";
|
||||
this.lblCheck6.Size = new System.Drawing.Size(447, 23);
|
||||
this.lblCheck6.TabIndex = 1;
|
||||
this.lblCheck6.Text = "RDP check succeeded!";
|
||||
//
|
||||
//pbCheck6
|
||||
//
|
||||
this.pbCheck6.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left);
|
||||
this.pbCheck6.Location = new System.Drawing.Point(3, 3);
|
||||
this.pbCheck6.Name = "pbCheck6";
|
||||
this.pbCheck6.Size = new System.Drawing.Size(72, 123);
|
||||
this.pbCheck6.TabIndex = 0;
|
||||
this.pbCheck6.TabStop = false;
|
||||
//
|
||||
//ComponentsCheck
|
||||
//
|
||||
this.ClientSize = new System.Drawing.Size(592, 877);
|
||||
@@ -442,9 +383,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.pnlCheck5.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbCheck5).EndInit();
|
||||
this.pnlChecks.ResumeLayout(false);
|
||||
this.pnlCheck6.ResumeLayout(false);
|
||||
this.pnlCheck6.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbCheck6).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -499,8 +437,6 @@ namespace mRemoteNG.UI.Window
|
||||
pnlCheck3.Visible = true;
|
||||
pnlCheck4.Visible = true;
|
||||
pnlCheck5.Visible = true;
|
||||
pnlCheck6.Visible = true;
|
||||
|
||||
|
||||
AxMSTSCLib.AxMsRdpClient5NotSafeForScripting rdpClient = null;
|
||||
|
||||
@@ -678,28 +614,6 @@ namespace mRemoteNG.UI.Window
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "XULrunner was not found in " + My.Settings.Default.XULRunnerPath, true);
|
||||
}
|
||||
|
||||
|
||||
EOLWTSCOM.WTSCOM eol = null;
|
||||
|
||||
try
|
||||
{
|
||||
eol = new EOLWTSCOM.WTSCOM();
|
||||
|
||||
pbCheck6.Image = My.Resources.Good_Symbol;
|
||||
lblCheck6.ForeColor = Color.DarkOliveGreen;
|
||||
lblCheck6.Text = "(RDP) Sessions " + My.Language.strCcCheckSucceeded;
|
||||
txtCheck6.Text = My.Language.strCcEOLOK;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
pbCheck6.Image = My.Resources.Bad_Symbol;
|
||||
lblCheck6.ForeColor = Color.Firebrick;
|
||||
lblCheck6.Text = "(RDP) Sessions " + My.Language.strCcCheckFailed;
|
||||
txtCheck6.Text = My.Language.strCcEOLFailed;
|
||||
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "EOLWTSCOM " + errorMsg, true);
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, true);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -173,7 +173,6 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
Windows.configForm.pGrid_SelectedObjectChanged();
|
||||
ShowHideTreeContextMenuItems(e.Node);
|
||||
Windows.sessionsForm.GetSessions(true);
|
||||
|
||||
Runtime.LastSelected = mRemoteNG.Tree.Node.GetConstantID(e.Node);
|
||||
}
|
||||
|
||||
105
mRemoteV1/UI/Window/SessionsWindow.Designer.cs
generated
@@ -1,105 +0,0 @@
|
||||
|
||||
|
||||
namespace mRemoteNG.UI.Window
|
||||
{
|
||||
public partial class SessionsWindow
|
||||
{
|
||||
#region Windows Form Designer generated code
|
||||
private System.ComponentModel.Container components = null;
|
||||
internal System.Windows.Forms.ToolStripMenuItem sessionMenuRetrieve;
|
||||
internal System.Windows.Forms.ToolStripMenuItem sessionMenuLogoff;
|
||||
internal System.Windows.Forms.ListView sessionList;
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.Load += new System.EventHandler(Sessions_Load);
|
||||
System.Windows.Forms.ContextMenuStrip sessionMenu = default(System.Windows.Forms.ContextMenuStrip);
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SessionsWindow));
|
||||
this.sessionMenuRetrieve = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.sessionMenuRetrieve.Click += new System.EventHandler(this.sessionMenuRetrieve_Click);
|
||||
this.sessionMenuLogoff = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.sessionMenuLogoff.Click += new System.EventHandler(this.sessionMenuLogoff_Click);
|
||||
this.sessionList = new System.Windows.Forms.ListView();
|
||||
this.sessionUsernameColumn = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
|
||||
this.sessionActivityColumn = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
|
||||
this.sessionTypeColumn = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
|
||||
sessionMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
sessionMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
//sessionMenu
|
||||
//
|
||||
sessionMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {this.sessionMenuRetrieve, this.sessionMenuLogoff});
|
||||
sessionMenu.Name = "cMenSession";
|
||||
sessionMenu.Size = new System.Drawing.Size(153, 70);
|
||||
sessionMenu.Opening += this.menuSession_Opening;
|
||||
//
|
||||
//sessionMenuRetrieve
|
||||
//
|
||||
this.sessionMenuRetrieve.Image = My.Resources.Refresh;
|
||||
this.sessionMenuRetrieve.Name = "sessionMenuRetrieve";
|
||||
this.sessionMenuRetrieve.Size = new System.Drawing.Size(152, 22);
|
||||
this.sessionMenuRetrieve.Text = "Retrieve";
|
||||
//
|
||||
//sessionMenuLogoff
|
||||
//
|
||||
this.sessionMenuLogoff.Image = My.Resources.Session_LogOff;
|
||||
this.sessionMenuLogoff.Name = "sessionMenuLogoff";
|
||||
this.sessionMenuLogoff.Size = new System.Drawing.Size(152, 22);
|
||||
this.sessionMenuLogoff.Text = My.Language.strLogOff;
|
||||
//
|
||||
//sessionList
|
||||
//
|
||||
this.sessionList.Anchor = (System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right);
|
||||
this.sessionList.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.sessionList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {this.sessionUsernameColumn, this.sessionActivityColumn, this.sessionTypeColumn});
|
||||
this.sessionList.ContextMenuStrip = sessionMenu;
|
||||
this.sessionList.FullRowSelect = true;
|
||||
this.sessionList.GridLines = true;
|
||||
this.sessionList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.sessionList.Location = new System.Drawing.Point(0, -1);
|
||||
this.sessionList.MultiSelect = false;
|
||||
this.sessionList.Name = "sessionList";
|
||||
this.sessionList.ShowGroups = false;
|
||||
this.sessionList.Size = new System.Drawing.Size(242, 174);
|
||||
this.sessionList.TabIndex = 0;
|
||||
this.sessionList.UseCompatibleStateImageBehavior = false;
|
||||
this.sessionList.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
//sessionUsernameColumn
|
||||
//
|
||||
this.sessionUsernameColumn.Text = My.Language.strColumnUsername;
|
||||
this.sessionUsernameColumn.Width = 80;
|
||||
//
|
||||
//sessionActivityColumn
|
||||
//
|
||||
this.sessionActivityColumn.Text = My.Language.strActivity;
|
||||
//
|
||||
//sessionTypeColumn
|
||||
//
|
||||
this.sessionTypeColumn.Text = My.Language.strType;
|
||||
this.sessionTypeColumn.Width = 80;
|
||||
//
|
||||
//Sessions
|
||||
//
|
||||
this.ClientSize = new System.Drawing.Size(242, 173);
|
||||
this.Controls.Add(this.sessionList);
|
||||
this.Font = new System.Drawing.Font("Microsoft Sans Serif", (float) (8.25F), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, System.Convert.ToByte(0));
|
||||
this.HideOnClose = true;
|
||||
this.Icon = (System.Drawing.Icon) (resources.GetObject("$this.Icon"));
|
||||
this.Name = "Sessions";
|
||||
this.TabText = My.Language.strMenuSessions;
|
||||
this.Text = "Sessions";
|
||||
sessionMenu.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
internal System.Windows.Forms.ColumnHeader sessionUsernameColumn;
|
||||
internal System.Windows.Forms.ColumnHeader sessionActivityColumn;
|
||||
internal System.Windows.Forms.ColumnHeader sessionTypeColumn;
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,369 +0,0 @@
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.Connection;
|
||||
using mRemoteNG.Connection.Protocol;
|
||||
using mRemoteNG.Connection.Protocol.RDP;
|
||||
using mRemoteNG.My;
|
||||
using mRemoteNG.Tree;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
|
||||
|
||||
namespace mRemoteNG.UI.Window
|
||||
{
|
||||
public partial class SessionsWindow : BaseWindow
|
||||
{
|
||||
#region Private Fields
|
||||
private Thread _getSessionsThread;
|
||||
private bool _retrieved = false;
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
public SessionsWindow(DockContent panel)
|
||||
{
|
||||
WindowType = WindowType.Sessions;
|
||||
DockPnl = panel;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void GetSessions(bool Auto = false)
|
||||
{
|
||||
ClearList();
|
||||
if (Auto)
|
||||
{
|
||||
_retrieved = false;
|
||||
if (!Settings.Default.AutomaticallyGetSessionInfo)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ConnectionInfo connectionInfo = ConnectionTree.SelectedNode.Tag as ConnectionInfo;
|
||||
if (connectionInfo == null)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
if (!(connectionInfo.Protocol == ProtocolType.RDP | connectionInfo.Protocol == ProtocolType.ICA))
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
BackgroundData data = new BackgroundData();
|
||||
data.Hostname = connectionInfo.Hostname;
|
||||
data.Username = connectionInfo.Username;
|
||||
data.Password = connectionInfo.Password;
|
||||
data.Domain = connectionInfo.Domain;
|
||||
|
||||
if (Settings.Default.EmptyCredentials == "custom")
|
||||
{
|
||||
if (string.IsNullOrEmpty(data.Username))
|
||||
{
|
||||
data.Username = Settings.Default.DefaultUsername;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(data.Password))
|
||||
{
|
||||
data.Password = Security.Crypt.Decrypt(Settings.Default.DefaultPassword, App.Info.GeneralAppInfo.EncryptionKey);
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(data.Domain))
|
||||
{
|
||||
data.Domain = Settings.Default.DefaultDomain;
|
||||
}
|
||||
}
|
||||
|
||||
if (_getSessionsThread != null)
|
||||
{
|
||||
if (_getSessionsThread.IsAlive)
|
||||
{
|
||||
_getSessionsThread.Abort();
|
||||
}
|
||||
}
|
||||
_getSessionsThread = new Thread(GetSessionsAsync);
|
||||
_getSessionsThread.SetApartmentState(ApartmentState.STA);
|
||||
_getSessionsThread.IsBackground = true;
|
||||
_getSessionsThread.Start(data);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "UI.Window.Sessions.GetSessions() failed." + Environment.NewLine + ex.Message, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void KillSession()
|
||||
{
|
||||
if (sessionList.SelectedItems.Count == 0)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
ConnectionInfo connectionInfo = ConnectionTree.SelectedNode.Tag as ConnectionInfo;
|
||||
if (connectionInfo == null)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
if (!(connectionInfo.Protocol == ProtocolType.RDP))
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
foreach (ListViewItem lvItem in sessionList.SelectedItems)
|
||||
{
|
||||
KillSession(connectionInfo.Hostname, connectionInfo.Username, connectionInfo.Password, connectionInfo.Domain, System.Convert.ToString(lvItem.Tag));
|
||||
}
|
||||
}
|
||||
|
||||
public void KillSession(string hostname, string username, string password, string domain, string sessionId)
|
||||
{
|
||||
try
|
||||
{
|
||||
BackgroundData data = new BackgroundData();
|
||||
data.Hostname = hostname;
|
||||
data.Username = username;
|
||||
data.Password = password;
|
||||
data.Domain = domain;
|
||||
data.SessionId = int.Parse(sessionId);
|
||||
|
||||
Thread thread = new Thread(KillSessionAsync);
|
||||
thread.SetApartmentState(ApartmentState.STA);
|
||||
thread.IsBackground = true;
|
||||
thread.Start(data);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "UI.Window.Sessions.KillSession() failed." + Environment.NewLine + ex.Message, true);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private Methods
|
||||
#region Form Stuff
|
||||
public void Sessions_Load(object sender, EventArgs e)
|
||||
{
|
||||
ApplyLanguage();
|
||||
}
|
||||
|
||||
private void ApplyLanguage()
|
||||
{
|
||||
TabText = Language.strMenuSessions;
|
||||
Text = Language.strMenuSessions;
|
||||
sessionActivityColumn.Text = Language.strActivity;
|
||||
sessionMenuLogoff.Text = Language.strLogOff;
|
||||
sessionMenuRetrieve.Text = Language.strMenuSessionRetrieve;
|
||||
sessionTypeColumn.Text = Language.strType;
|
||||
sessionUsernameColumn.Text = Language.strColumnUsername;
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void GetSessionsAsync(object dataObject)
|
||||
{
|
||||
BackgroundData data = dataObject as BackgroundData;
|
||||
if (data == null)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
Security.Impersonator impersonator = new Security.Impersonator();
|
||||
ProtocolRDP.TerminalSessions terminalSessions = new ProtocolRDP.TerminalSessions();
|
||||
int serverHandle = 0;
|
||||
try
|
||||
{
|
||||
impersonator.StartImpersonation(data.Domain, data.Username, data.Password);
|
||||
|
||||
serverHandle = terminalSessions.OpenConnection(data.Hostname);
|
||||
if (serverHandle == 0)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
GetSessions(terminalSessions, serverHandle);
|
||||
|
||||
_retrieved = true;
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strSessionGetFailed + Environment.NewLine + ex.Message, true);
|
||||
}
|
||||
finally
|
||||
{
|
||||
impersonator.StopImpersonation();
|
||||
if (!(serverHandle == 0))
|
||||
{
|
||||
terminalSessions.CloseConnection(serverHandle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get sessions from an already impersonated and connected TerminalSessions object
|
||||
private void GetSessions(ProtocolRDP.TerminalSessions terminalSessions, int serverHandle)
|
||||
{
|
||||
ProtocolRDP.SessionsCollection rdpSessions = terminalSessions.GetSessions(serverHandle);
|
||||
foreach (ProtocolRDP.Session session in rdpSessions)
|
||||
{
|
||||
ListViewItem item = new ListViewItem();
|
||||
item.Tag = session.SessionId;
|
||||
item.Text = session.SessionUser;
|
||||
item.SubItems.Add(session.SessionState);
|
||||
item.SubItems.Add(session.SessionName.Replace(Environment.NewLine, ""));
|
||||
AddToList(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void KillSessionAsync(object dataObject)
|
||||
{
|
||||
BackgroundData data = dataObject as BackgroundData;
|
||||
if (data == null)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
Security.Impersonator impersonator = new Security.Impersonator();
|
||||
ProtocolRDP.TerminalSessions terminalSessions = new ProtocolRDP.TerminalSessions();
|
||||
int serverHandle = 0;
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(data.Username) || string.IsNullOrEmpty(data.Password))
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
impersonator.StartImpersonation(data.Domain, data.Username, data.Password);
|
||||
|
||||
serverHandle = terminalSessions.OpenConnection(data.Hostname);
|
||||
if (!(serverHandle == 0))
|
||||
{
|
||||
terminalSessions.KillSession(
|
||||
serverHandle, data.SessionId);
|
||||
}
|
||||
|
||||
ClearList();
|
||||
GetSessions(terminalSessions, serverHandle);
|
||||
|
||||
_retrieved = true;
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strSessionKillFailed + Environment.NewLine + ex.Message, true);
|
||||
}
|
||||
finally
|
||||
{
|
||||
impersonator.StopImpersonation();
|
||||
if (!(serverHandle == 0))
|
||||
{
|
||||
terminalSessions.CloseConnection(serverHandle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delegate void AddToListCallback(ListViewItem item);
|
||||
private void AddToList(ListViewItem item)
|
||||
{
|
||||
if (sessionList.InvokeRequired)
|
||||
{
|
||||
AddToListCallback callback = new AddToListCallback(AddToList);
|
||||
sessionList.Invoke(callback, new object[] {item});
|
||||
}
|
||||
else
|
||||
{
|
||||
sessionList.Items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
delegate void ClearListCallback();
|
||||
private void ClearList()
|
||||
{
|
||||
if (sessionList.InvokeRequired)
|
||||
{
|
||||
ClearListCallback callback = new ClearListCallback(ClearList);
|
||||
sessionList.Invoke(callback);
|
||||
}
|
||||
else
|
||||
{
|
||||
sessionList.Items.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void menuSession_Opening(object sender, System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
mRemoteNG.Connection.ConnectionInfo connectionInfo = default(mRemoteNG.Connection.ConnectionInfo);
|
||||
if (mRemoteNG.Tree.ConnectionTree.TreeView == null || mRemoteNG.Tree.ConnectionTree.SelectedNode == null)
|
||||
{
|
||||
connectionInfo = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
connectionInfo = mRemoteNG.Tree.ConnectionTree.SelectedNode.Tag as ConnectionInfo;
|
||||
}
|
||||
|
||||
if (connectionInfo == null)
|
||||
{
|
||||
sessionMenuLogoff.Enabled = false;
|
||||
sessionMenuRetrieve.Enabled = false;
|
||||
sessionMenuRetrieve.Text = Language.strMenuSessionRetrieve;
|
||||
return ;
|
||||
}
|
||||
|
||||
if (connectionInfo.Protocol == mRemoteNG.Connection.Protocol.ProtocolType.RDP & sessionList.SelectedItems.Count > 0)
|
||||
{
|
||||
sessionMenuLogoff.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
sessionMenuLogoff.Enabled = false;
|
||||
}
|
||||
|
||||
if (connectionInfo.Protocol == mRemoteNG.Connection.Protocol.ProtocolType.RDP | connectionInfo.Protocol == mRemoteNG.Connection.Protocol.ProtocolType.ICA)
|
||||
{
|
||||
sessionMenuRetrieve.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
sessionMenuRetrieve.Enabled = false;
|
||||
}
|
||||
|
||||
if (!_retrieved)
|
||||
{
|
||||
sessionMenuRetrieve.Text = Language.strMenuSessionRetrieve;
|
||||
}
|
||||
else
|
||||
{
|
||||
sessionMenuRetrieve.Text = Language.strRefresh;
|
||||
}
|
||||
}
|
||||
|
||||
public void sessionMenuRetrieve_Click(System.Object sender, EventArgs e)
|
||||
{
|
||||
GetSessions();
|
||||
}
|
||||
|
||||
public void sessionMenuLogoff_Click(System.Object sender, EventArgs e)
|
||||
{
|
||||
KillSession();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private Classes
|
||||
private class BackgroundData
|
||||
{
|
||||
public string Hostname;
|
||||
public string Username;
|
||||
public string Password;
|
||||
public string Domain;
|
||||
public int SessionId;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,154 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="sessionMenu.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="sessionMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>14, 16</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>49</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABtqNwNW4y4K0lEPoJKSkrgVVVV709PT/dKSkr3U1NT9EBAQN1KSEhkXprRKm+n2g0AAAAAAAAAAAAA
|
||||
AAAAAAAAU5jbr0Z7sv9gWVL/eXl5/4eHh/95eXn/Xl5e/4qKiv9ubm7/SUhH/0aIyf9YmNenAAAAAAAA
|
||||
AAAAAAAAAAAAADGN6f9/qM3/fHdy/4yMjP9tbW3/TU1N/0hISP9nZ2f/dXV1/2dmZP9+t+v/K4He+gAA
|
||||
AAAAAAAAAAAAAAAAAABCX3uuf42a/4WDgv9ZWVn/Wlpa/5GRkf+KiYn/TExM/1FRUf93dnX/a36P/z9Z
|
||||
dqEAAAAAAAAAAAAAAAAAAAAAUk1HHG9tasFOTk//dXR0/2ZlZP+wsLD/lpaW/19eXf9wcG//VlZX/3JJ
|
||||
N/SkSynkrkYd1ppWPWtklMMYbKfcCQAAAABLSkkoRD88vnh7ff1udXv/Y4er/1t4lP9xdXj/bm1t/4lp
|
||||
Sf/knFT/7aZX/9+FQP+XTTvlR323y2Cg2XUAAAAAAAAAAFhAM0tFbJP0lsbz/7LZ/f+53v//jb3o/1Nn
|
||||
dv/nmlP//6RY//+nVv//qFz/z3pS/4Ocwf8zi+L8AAAAAAAAAAAsRWRmgKrU/7vc+P+q0vj/msXu/7jZ
|
||||
9/9fjr3/26Bl//6oWv/9nlP//5VG/++bZf+aobj/RnGn2gAAAAAAAAAABTVrezxcgf9zl7v/X4at/zZh
|
||||
iv9QdJn/I0Vm/8+2c///wFv//7JS///Bg//4tZD/rksk3pI/DzsAAAAAAAAAAC9Jc3wjTYD/FUZ9/x1L
|
||||
e/8OO2z/GkVx/wgoTP9vgob/go6L/5qclv/9xKD/vVUw3Zs4BUMAAAAAAAAAAAAAAABiZGk0PVZ32yNV
|
||||
jf8VTYr/IFSK/w47av9JY33/i7jl/5TC8P+Buu//WW2K94g1CmYAAAAAAAAAAAAAAAAAAAAAYmVoAVtg
|
||||
Z1khR3rgDD9/6gw8dussS2/5oLvU/6rR9P+s1Pr/t9n4/3yy4v5VU2FkAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAALTJQcTXmq/cXe9v+Rv+3/ZI63/3SZvv90lbT/MnKsggAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAACUGQIBlQlv9MfrH/SHqv/xNEef8MO27/By9c/y5WgIYAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABI7dg8PQYLGBk2W/wdMjf8PUZH/EUyJ/w04Z/QbOVhPAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzJlJxNCgMERT5b3D0uO9xFBfOkUMldpEStGBAAA
|
||||
AAAAAAAAAA+cQQAPnEEAD5xBAA+cQQAAnEGAAJxBwACcQcAAnEHAAJxBwAGcQcADnEHAA5xB/AOcQfwD
|
||||
nEH8A5xB/gOcQQ==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 318 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
@@ -1,225 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Settings>
|
||||
<InhDefaultRedirectPrinters>False</InhDefaultRedirectPrinters>
|
||||
<ConDefaultMacAddress>
|
||||
</ConDefaultMacAddress>
|
||||
<ConDefaultVNCSmartSizeMode>SmartSAspect</ConDefaultVNCSmartSizeMode>
|
||||
<ConDefaultRDGatewayUsername>
|
||||
</ConDefaultRDGatewayUsername>
|
||||
<ConDefaultVNCCompression>CompNone</ConDefaultVNCCompression>
|
||||
<MainFormKiosk>False</MainFormKiosk>
|
||||
<InhDefaultDomain>False</InhDefaultDomain>
|
||||
<CheckForUpdatesFrequencyDays>7</CheckForUpdatesFrequencyDays>
|
||||
<ShowDescriptionTooltipsInTree>False</ShowDescriptionTooltipsInTree>
|
||||
<ShowSystemTrayIcon>False</ShowSystemTrayIcon>
|
||||
<DoubleClickOnTabClosesIt>True</DoubleClickOnTabClosesIt>
|
||||
<PuttySavedSessionsName>
|
||||
</PuttySavedSessionsName>
|
||||
<ConDefaultPreExtApp>
|
||||
</ConDefaultPreExtApp>
|
||||
<InhDefaultUseConsoleSession>False</InhDefaultUseConsoleSession>
|
||||
<DefaultUsername>
|
||||
</DefaultUsername>
|
||||
<QuickyTBVisible>True</QuickyTBVisible>
|
||||
<InhDefaultCacheBitmaps>False</InhDefaultCacheBitmaps>
|
||||
<InhDefaultRDGatewayDomain>False</InhDefaultRDGatewayDomain>
|
||||
<InhDefaultRDGatewayHostname>False</InhDefaultRDGatewayHostname>
|
||||
<ExtAppsTBParentDock>Bottom</ExtAppsTBParentDock>
|
||||
<UpdateProxyAuthUser>
|
||||
</UpdateProxyAuthUser>
|
||||
<InhDefaultPuttySession>False</InhDefaultPuttySession>
|
||||
<DefaultDomain>
|
||||
</DefaultDomain>
|
||||
<ExtAppsTBLocation>0, 0</ExtAppsTBLocation>
|
||||
<InhDefaultVNCProxyType>False</InhDefaultVNCProxyType>
|
||||
<InhDefaultVNCProxyPort>False</InhDefaultVNCProxyPort>
|
||||
<InhDefaultVNCProxyPassword>False</InhDefaultVNCProxyPassword>
|
||||
<CheckForUpdatesOnStartup>True</CheckForUpdatesOnStartup>
|
||||
<ConDefaultCacheBitmaps>True</ConDefaultCacheBitmaps>
|
||||
<QuickConnectProtocol>RDP</QuickConnectProtocol>
|
||||
<ConDefaultAutomaticResize>True</ConDefaultAutomaticResize>
|
||||
<WriteLogFile>True</WriteLogFile>
|
||||
<InhDefaultUseCredSsp>False</InhDefaultUseCredSsp>
|
||||
<CompatibilityWarnLenovoAutoScrollUtility>True</CompatibilityWarnLenovoAutoScrollUtility>
|
||||
<DoUpgrade>False</DoUpgrade>
|
||||
<ConDefaultIcon>mRemoteNG</ConDefaultIcon>
|
||||
<NoReconnect>False</NoReconnect>
|
||||
<MainFormRestoreLocation>
|
||||
</MainFormRestoreLocation>
|
||||
<CustomPuttyPath>
|
||||
</CustomPuttyPath>
|
||||
<ConDefaultUseConsoleSession>False</ConDefaultUseConsoleSession>
|
||||
<InhDefaultVNCViewOnly>False</InhDefaultVNCViewOnly>
|
||||
<InhDefaultAutomaticResize>False</InhDefaultAutomaticResize>
|
||||
<AutomaticallyGetSessionInfo>False</AutomaticallyGetSessionInfo>
|
||||
<CheckForUpdatesAsked>False</CheckForUpdatesAsked>
|
||||
<ReconnectOnDisconnect>False</ReconnectOnDisconnect>
|
||||
<BackupFileNameFormat>{0}.{1:yyyyMMdd-HHmmssffff}.backup</BackupFileNameFormat>
|
||||
<SingleClickOnConnectionOpensIt>False</SingleClickOnConnectionOpensIt>
|
||||
<SQLPass>
|
||||
</SQLPass>
|
||||
<KeysNextTab>9/8, 34/8</KeysNextTab>
|
||||
<ConDefaultRDGatewayUsageMethod>Never</ConDefaultRDGatewayUsageMethod>
|
||||
<SaveConsOnExit>True</SaveConsOnExit>
|
||||
<OpenTabsRightOfSelected>True</OpenTabsRightOfSelected>
|
||||
<ExtAppsTBShowText>True</ExtAppsTBShowText>
|
||||
<OpenConsFromLastSession>True</OpenConsFromLastSession>
|
||||
<UpdateProxyPort>80</UpdateProxyPort>
|
||||
<ConDefaultUserField>
|
||||
</ConDefaultUserField>
|
||||
<ConDefaultVNCAuthMode>AuthVNC</ConDefaultVNCAuthMode>
|
||||
<InhDefaultDisplayWallpaper>False</InhDefaultDisplayWallpaper>
|
||||
<UpdateUseProxy>False</UpdateUseProxy>
|
||||
<XULRunnerPath>
|
||||
</XULRunnerPath>
|
||||
<InhDefaultRedirectPorts>False</InhDefaultRedirectPorts>
|
||||
<InhDefaultPanel>False</InhDefaultPanel>
|
||||
<ConDefaultRedirectPorts>False</ConDefaultRedirectPorts>
|
||||
<OverrideUICulture>
|
||||
</OverrideUICulture>
|
||||
<UVNCSCPort>5500</UVNCSCPort>
|
||||
<UpdateAddress>https://update.mremoteng.org/</UpdateAddress>
|
||||
<ConDefaultUsername>
|
||||
</ConDefaultUsername>
|
||||
<SQLUser>
|
||||
</SQLUser>
|
||||
<ConDefaultRDGatewayUseConnectionCredentials>Yes</ConDefaultRDGatewayUseConnectionCredentials>
|
||||
<ConDefaultRedirectSmartCards>False</ConDefaultRedirectSmartCards>
|
||||
<UpdateProxyAddress>
|
||||
</UpdateProxyAddress>
|
||||
<InhDefaultDisplayThemes>False</InhDefaultDisplayThemes>
|
||||
<MainFormRestoreSize>
|
||||
</MainFormRestoreSize>
|
||||
<InhDefaultVNCAuthMode>False</InhDefaultVNCAuthMode>
|
||||
<QuickyTBParentDock>Top</QuickyTBParentDock>
|
||||
<CustomConsPath>
|
||||
</CustomConsPath>
|
||||
<ConDefaultDisplayWallpaper>False</ConDefaultDisplayWallpaper>
|
||||
<UpdateProxyUseAuthentication>False</UpdateProxyUseAuthentication>
|
||||
<MaxPuttyWaitTime>2</MaxPuttyWaitTime>
|
||||
<InhDefaultRDGatewayUsername>False</InhDefaultRDGatewayUsername>
|
||||
<SQLDatabaseName>mRemoteNG</SQLDatabaseName>
|
||||
<ShowConfigHelpText>True</ShowConfigHelpText>
|
||||
<InhDefaultRDPAuthenticationLevel>False</InhDefaultRDPAuthenticationLevel>
|
||||
<ShowCompleteConsPathInTitle>False</ShowCompleteConsPathInTitle>
|
||||
<MainFormState>Normal</MainFormState>
|
||||
<LoadConsFromCustomLocation>False</LoadConsFromCustomLocation>
|
||||
<PuttySavedSessionsPanel>
|
||||
</PuttySavedSessionsPanel>
|
||||
<InhDefaultRedirectKeys>False</InhDefaultRedirectKeys>
|
||||
<ConDefaultEnableFontSmoothing>False</ConDefaultEnableFontSmoothing>
|
||||
<BackupFileKeepCount>10</BackupFileKeepCount>
|
||||
<StartupComponentsCheck>False</StartupComponentsCheck>
|
||||
<RdpReconnectionCount>5</RdpReconnectionCount>
|
||||
<ShowNoMessageBoxes>True</ShowNoMessageBoxes>
|
||||
<InhDefaultRedirectSound>False</InhDefaultRedirectSound>
|
||||
<InhDefaultRDGatewayUsageMethod>False</InhDefaultRDGatewayUsageMethod>
|
||||
<ConDefaultRDGatewayPassword>
|
||||
</ConDefaultRDGatewayPassword>
|
||||
<ConDefaultExtApp>
|
||||
</ConDefaultExtApp>
|
||||
<ConDefaultResolution>FitToWindow</ConDefaultResolution>
|
||||
<ConDefaultVNCProxyUsername>
|
||||
</ConDefaultVNCProxyUsername>
|
||||
<UseSQLServer>False</UseSQLServer>
|
||||
<InhDefaultPassword>False</InhDefaultPassword>
|
||||
<InhDefaultColors>False</InhDefaultColors>
|
||||
<EncryptCompleteConnectionsFile>True</EncryptCompleteConnectionsFile>
|
||||
<InhDefaultDescription>False</InhDefaultDescription>
|
||||
<ConDefaultVNCColors>ColNormal</ConDefaultVNCColors>
|
||||
<LastAnnouncement>
|
||||
</LastAnnouncement>
|
||||
<SwitchToMCOnError>True</SwitchToMCOnError>
|
||||
<InhDefaultRedirectSmartCards>False</InhDefaultRedirectSmartCards>
|
||||
<ConDefaultUseCredSsp>True</ConDefaultUseCredSsp>
|
||||
<UpdatePending>False</UpdatePending>
|
||||
<InhDefaultResolution>False</InhDefaultResolution>
|
||||
<ConDefaultRedirectKeys>False</ConDefaultRedirectKeys>
|
||||
<UseCustomPuttyPath>False</UseCustomPuttyPath>
|
||||
<ConDefaultPassword>
|
||||
</ConDefaultPassword>
|
||||
<ExtAppsTBVisible>False</ExtAppsTBVisible>
|
||||
<IdentifyQuickConnectTabs>False</IdentifyQuickConnectTabs>
|
||||
<ConDefaultRedirectSound>DoNotPlay</ConDefaultRedirectSound>
|
||||
<QuickyTBLocation>3, 24</QuickyTBLocation>
|
||||
<ConDefaultDisplayThemes>False</ConDefaultDisplayThemes>
|
||||
<ConDefaultDomain>
|
||||
</ConDefaultDomain>
|
||||
<InhDefaultRedirectDiskDrives>False</InhDefaultRedirectDiskDrives>
|
||||
<ThemeName>Default Theme</ThemeName>
|
||||
<ConDefaultRDGatewayHostname>
|
||||
</ConDefaultRDGatewayHostname>
|
||||
<InhDefaultRDGatewayPassword>False</InhDefaultRDGatewayPassword>
|
||||
<DefaultPassword>
|
||||
</DefaultPassword>
|
||||
<ConDefaultRDGatewayDomain>
|
||||
</ConDefaultRDGatewayDomain>
|
||||
<SingleClickSwitchesToOpenConnection>False</SingleClickSwitchesToOpenConnection>
|
||||
<ConDefaultICAEncryptionStrength>EncrBasic</ConDefaultICAEncryptionStrength>
|
||||
<ConDefaultRedirectPrinters>False</ConDefaultRedirectPrinters>
|
||||
<FirstStart>True</FirstStart>
|
||||
<ConDefaultColors>Colors16Bit</ConDefaultColors>
|
||||
<SwitchToMCOnInformation>True</SwitchToMCOnInformation>
|
||||
<InhDefaultVNCProxyUsername>False</InhDefaultVNCProxyUsername>
|
||||
<ConDefaultVNCProxyType>ProxyNone</ConDefaultVNCProxyType>
|
||||
<InhDefaultICAEncryptionStrength>False</InhDefaultICAEncryptionStrength>
|
||||
<InhDefaultPort>False</InhDefaultPort>
|
||||
<ConDefaultVNCProxyPassword>
|
||||
</ConDefaultVNCProxyPassword>
|
||||
<AlwaysShowPanelSelectionDlg>False</AlwaysShowPanelSelectionDlg>
|
||||
<ConDefaultVNCProxyIP>
|
||||
</ConDefaultVNCProxyIP>
|
||||
<ConDefaultRedirectDiskDrives>False</ConDefaultRedirectDiskDrives>
|
||||
<SwitchToMCOnWarning>True</SwitchToMCOnWarning>
|
||||
<ConDefaultDescription>
|
||||
</ConDefaultDescription>
|
||||
<CheckForUpdatesLastCheck>1980-01-01</CheckForUpdatesLastCheck>
|
||||
<ConDefaultRenderingEngine>IE</ConDefaultRenderingEngine>
|
||||
<InhDefaultPreExtApp>False</InhDefaultPreExtApp>
|
||||
<MainFormLocation>0, 0</MainFormLocation>
|
||||
<InhDefaultVNCColors>False</InhDefaultVNCColors>
|
||||
<ConDefaultVNCViewOnly>False</ConDefaultVNCViewOnly>
|
||||
<AutoSaveEveryMinutes>0</AutoSaveEveryMinutes>
|
||||
<InhDefaultIcon>False</InhDefaultIcon>
|
||||
<ConDefaultPostExtApp>
|
||||
</ConDefaultPostExtApp>
|
||||
<ConDefaultVNCProxyPort>0</ConDefaultVNCProxyPort>
|
||||
<ConDefaultRDPAuthenticationLevel>NoAuth</ConDefaultRDPAuthenticationLevel>
|
||||
<InhDefaultProtocol>False</InhDefaultProtocol>
|
||||
<EmptyCredentials>noinfo</EmptyCredentials>
|
||||
<ConDefaultLoadBalanceInfo>
|
||||
</ConDefaultLoadBalanceInfo>
|
||||
<AlwaysShowPanelTabs>False</AlwaysShowPanelTabs>
|
||||
<ConDefaultEnableDesktopComposition>False</ConDefaultEnableDesktopComposition>
|
||||
<InhDefaultExtApp>False</InhDefaultExtApp>
|
||||
<MinimizeToTray>False</MinimizeToTray>
|
||||
<InhDefaultUserField>False</InhDefaultUserField>
|
||||
<AnnouncementAddress>https://update.mremoteng.org/announcement.txt</AnnouncementAddress>
|
||||
<ConDefaultPuttySession>Default Settings</ConDefaultPuttySession>
|
||||
<ShowLogonInfoOnTabs>False</ShowLogonInfoOnTabs>
|
||||
<InhDefaultPostExtApp>False</InhDefaultPostExtApp>
|
||||
<InhDefaultMacAddress>False</InhDefaultMacAddress>
|
||||
<SQLHost>
|
||||
</SQLHost>
|
||||
<InhDefaultUsername>False</InhDefaultUsername>
|
||||
<InhDefaultVNCEncoding>False</InhDefaultVNCEncoding>
|
||||
<KeysPreviousTab>9/9, 33/8</KeysPreviousTab>
|
||||
<UpdateChannel>release</UpdateChannel>
|
||||
<ConfirmCloseConnection>4</ConfirmCloseConnection>
|
||||
<InhDefaultEnableFontSmoothing>False</InhDefaultEnableFontSmoothing>
|
||||
<ConDefaultProtocol>RDP</ConDefaultProtocol>
|
||||
<MainFormSize>0, 0</MainFormSize>
|
||||
<UpdateProxyAuthPass>
|
||||
</UpdateProxyAuthPass>
|
||||
<InhDefaultVNCProxyIP>False</InhDefaultVNCProxyIP>
|
||||
<SetHostnameLikeDisplayName>False</SetHostnameLikeDisplayName>
|
||||
<InhDefaultLoadBalanceInfo>False</InhDefaultLoadBalanceInfo>
|
||||
<InhDefaultVNCCompression>False</InhDefaultVNCCompression>
|
||||
<SingleInstance>False</SingleInstance>
|
||||
<ShowProtocolOnTabs>False</ShowProtocolOnTabs>
|
||||
<InhDefaultRDGatewayUseConnectionCredentials>False</InhDefaultRDGatewayUseConnectionCredentials>
|
||||
<InhDefaultVNCSmartSizeMode>False</InhDefaultVNCSmartSizeMode>
|
||||
<InhDefaultEnableDesktopComposition>False</InhDefaultEnableDesktopComposition>
|
||||
<ConDefaultVNCEncoding>EncHextile</ConDefaultVNCEncoding>
|
||||
<InhDefaultRenderingEngine>False</InhDefaultRenderingEngine>
|
||||
</Settings>
|
||||
@@ -91,7 +91,6 @@
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="ADTree, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -118,15 +117,10 @@
|
||||
<HintPath>References\MagicLibrary.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
|
||||
<Reference Include="MiniGeckoBrowser, Version=1.0.3142.33318, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>References\MiniGeckoBrowser.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MiniTabControl, Version=1.0.3142.32770, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>References\MiniTabControl.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Org.Mentalis.Security, Version=1.0.13.715, Culture=neutral">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>References\Org.Mentalis.Security.dll</HintPath>
|
||||
@@ -478,12 +472,6 @@
|
||||
<Compile Include="UI\Window\ScreenshotManagerWindow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\Window\SessionsWindow.Designer.cs">
|
||||
<DependentUpon>SessionsWindow.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Window\SessionsWindow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\Window\SSHTransferWindow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -661,10 +649,6 @@
|
||||
<DependentUpon>ScreenshotManagerWindow.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\Window\SessionsWindow.resx">
|
||||
<DependentUpon>SessionsWindow.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\Window\SSHTransferWindow.resx">
|
||||
<DependentUpon>SSHTransferWindow.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -1183,14 +1167,6 @@
|
||||
<WrapperTool>aximp</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
<COMReference Include="EOLWTSCOM">
|
||||
<Guid>{96C3FA7A-3211-4D93-BFEA-4589DA4ABDE2}</Guid>
|
||||
<VersionMajor>1</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>tlbimp</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
</COMReference>
|
||||
<COMReference Include="MSTSCLib">
|
||||
<Guid>{8C11EFA1-92C3-11D1-BC1E-00C04FA31489}</Guid>
|
||||
<VersionMajor>1</VersionMajor>
|
||||
@@ -1233,7 +1209,6 @@
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="C:\Users\vsparda\Documents\Repositories\mRemoteNG_MyFork\SharedLibraryNG\bin\Debug\SharedLibraryNG.dll" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
|
||||