Git Product home page Git Product logo

easyconnect's Introduction

Build status

This is a Windows tabbed remote desktop application whose UI was designed to resemble Chrome's. Currently it supports Microsoft's Remote Desktop Protocol (RDP), Secure Shell (SSH), Telnet, PowerShell, and VNC but has a plugin architecture designed to enable third-party support for other protocols such as Citrix, etc.

Installation Options

Implementing Protocol Plugins

For an example of implementing a protocol plugin, you can look at the EasyConnect.Protocols.Rdp project. You'll want to reference EasyConnect.Common and EasyConnect.Protocols and then implement classes that inherit from the following base classes:

  • BaseConnection - This holds the configuration for a connection using your protocol. Make sure to implement your own ISerializable constructor and override GetObjectData().
  • BaseConnectionForm<T> - This is the form that contains the actual UI controls and logic to create a connection using your protocol. The easiest thing to do is initially derive from Form, design the window (bear in mind that it will be displayed as a child of a Panel control with a BorderStyle of None), and then change the base class to BaseConnectionForm<T>.
  • IOptionsForm - This is the form that will allow the user to configure a connection using your protocol. Like BaseConnectionForm<T>, this will be displayed as a child of a Panel control with a BorderStyle of None.
  • BaseProtocol - This serves simply to aggregate the previous classes and provide some display data for your new protocol.

That's it! Just make sure that the assembly for your protocol is in the EasyConnect directory and it will be picked up and used automatically by the application. The protocol plugin architecture is still evolving, so if you find limitations to the API or want other things added to enable you to implement your protocol, please feel free to contact me or send me a pull request. I'm also happy to accept pull requests for your protocol projects to include them in the main application.

This project is licensed under the GPL

easyconnect's People

Contributors

cdhunt avatar jordan-clark avatar lstratman avatar mis98zb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easyconnect's Issues

Add OmniBar

Add the equivalent of Chrome's OmniBar to the URI box.

Open All Selected Bookmarks

I don't know how to actually do a pull request and all of that, but I've made this change to open all selected bookmarks.

    private void _openBookmarkNewTabMenuItem_Click(object sender, EventArgs e)
    {

        OpenAllBookmarks(_bookmarksListView.SelectedItems);

    }

    // Overload
    private void OpenAllBookmarks(ListView.SelectedListViewItemCollection selectedItems)
    {

        foreach (ListViewItem item in _bookmarksListView.SelectedItems)
        {
            _applicationForm.Connect(_listViewConnections[item]);
        }
    }

Bookmark Manager Cut/Paste

Cut and Paste doesn't seem to work in the Bookmark manager.It just keeps pasting connection 1 after cutting connection 2. Copy/Paste does work as expected.

NullReference Exeption in FormClosing

System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=EasyConnect
StackTrace:
at EasyConnect.MainForm.MainForm_FormClosing(Object sender, FormClosingEventArgs e) in C:\perforce\main\EasyConnect\MainForm.cs:line 445
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at Stratman.Windows.Forms.TitleBarTabs.TitleBarTabs.WndProc(Message& m) in C:\perforce\main\TitleBarTabs\TitleBarTabs.cs:line 566
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control.SendMessage(Int32 msg, Int32 wparam, Int32 lparam)
at System.Windows.Forms.Form.Close()
at Stratman.Windows.Forms.TitleBarTabs.TitleBarTabs.CloseTab(TitleBarTab closingTab) in C:\perforce\main\TitleBarTabs\TitleBarTabs.cs:line 604
at Stratman.Windows.Forms.TitleBarTabs.TitleBarTabs.TitleBarTabs_Closing(Object sender, CancelEventArgs e) in C:\perforce\main\TitleBarTabs\TitleBarTabs.cs:line 489
at Stratman.Windows.Forms.TitleBarTabs.TitleBarTab.Content_Closing(Object sender, CancelEventArgs e) in C:\perforce\main\TitleBarTabs\TitleBarTab.cs:line 183
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control.SendMessage(Int32 msg, Int32 wparam, Int32 lparam)
at System.Windows.Forms.Form.Close()
at Stratman.Windows.Forms.TitleBarTabs.TitleBarTabsOverlay.WndProc(Message& m) in C:\perforce\main\TitleBarTabs\TitleBarTabsOverlay.cs:line 359
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at EasyConnect.Program.Main() in C:\perforce\main\EasyConnect\Program.cs:line 66
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

Unhandled Exception opening from bookmark menu

I only get this opening a particular bookmark from the dropdown. I don't get it opening the same connection from the bookmark manager.

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
at MSTSCLib.IMsRdpClient2.set_DesktopWidth(Int32 pVal)
at AxMSTSCLib.AxMsRdpClient2.set_DesktopWidth(Int32 value)
at EasyConnect.RdpWindow.set_DesktopWidth(Int32 value)
at EasyConnect.RdpWindow.Connect(RdpConnection connection)
at EasyConnect.RdpWindow.b__3(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Tab scale

Tabs cover min, restore icons when Title Bar is full.

Auto-hide URL bar does not auto-hide

Sometimes it does, sometimes it does not. Still trying to figure out the sequence. When it doesn't auto-hide, the connection window gets covered.

Runtime error closing tab from Aero peak thumbnail

System.ArgumentNullException: Value cannot be null.
Parameter name: key
   at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
   at Microsoft.WindowsAPICodePack.Taskbar.TabbedThumbnailManager.RemoveThumbnailPreview(TabbedThumbnail preview)
   at Stratman.Windows.Forms.TitleBarTabs.TitleBarTabs.preview_TabbedThumbnailClosed(Object sender, TabbedThumbnailEventArgs e)
   at Microsoft.WindowsAPICodePack.Taskbar.TabbedThumbnail.OnTabbedThumbnailClosed()
   at Microsoft.WindowsAPICodePack.Taskbar.TaskbarWindowManager.DispatchMessage(Message& m, TaskbarWindow taskbarWindow)
   at Microsoft.WindowsAPICodePack.Taskbar.TabbedThumbnailProxyWindow.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Open Bookmark causes run-time error

Opening a bookmark from the dropdown list w/o creating a new blank tab overwrites current tab and causes a run-time error.

System.ArgumentException: This preview has already been added
at Microsoft.WindowsAPICodePack.Taskbar.TabbedThumbnailManager.AddThumbnailPreview(TabbedThumbnail preview)
at EasyConnect.MainForm.RegisterConnection(ConnectionWindow connectionWindow, IConnection connection)
at EasyConnect.ConnectionWindow.Connect()
at EasyConnect.ConnectionWindow.b__5(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Add bookmark folder context menu option to update passwords

When the user right-clicks on a folder in the bookmarks manager, present a new context menu item called "Update passwords" that allows the user to update the password for all connections in that folder and its subfolders in one operation.

Unhandled Exception in on TextBox Change

Encountered after backspacing to change text.

Version 1.3.

************** Exception Text **************
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException()
   at EasyConnect.ConnectionWindow.urlTextBox_TextChanged(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnTextChanged(EventArgs e)
   at System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
   at System.Windows.Forms.TextBoxBase.WmReflectCommand(Message& m)
   at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
   at System.Windows.Forms.TextBox.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

VS Error

VS complains when I open the latest code.

The designer must create an instance of type 'Stratman.Windows.Forms.TitleBarTabs.TitleBarTabs' but it cannot because the type is declared as abstract.

Bad password unhandled

With the latest build, entering a bad password just closes the program. No retry or notification.

About Page

Would be nice if there was an "About" page with version and link to release repository.

Support for /admin

Either parse the URL bar for /admin switch or a checkbox in the a bookmarked session to allow you to connect to the /admin RDP channel.

New Tab is inaccessible

Sometimes when I open a new tab, I cannot click inside of it. Windows responds with the "ding" of clicking on a background window. I have to click back and forth between tabs a few times to get the new window in focus. Not 100% sure of the steps to reproduce at this point.

Null exception typing in urlTextBox

I have two installs of EasyConnect and one gets this error and the other doesn't.

System.NullReferenceException: Object reference not set to an instance of an object.
at EasyConnect.ConnectionWindow.urlTextBox_TextChanged(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnTextChanged(EventArgs e)
at System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
at System.Windows.Forms.TextBoxBase.WmReflectCommand(Message& m)
at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
at System.Windows.Forms.TextBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Add support for PowerShell

Similar to the SSH support, add PowerShell support that enables the user to connect remotely to a PowerShell-enabled server and run commands.

Folder disappared

I lost an entire folder of bookmarks. I believe the action was click and drag off-screen from the bookmark manager. Closing and reopening did not restore the folder.

Global options form not displayed

When the options screen is opened and the user clicks away from Global Options, the screen is not displayed when the user clicks back on it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.