<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1680502873272693338</id><updated>2011-12-12T14:43:41.638-08:00</updated><category term='Code Snippets'/><category term='Screen Shots'/><category term='Release History'/><category term='Features'/><category term='Multi Remote Desktop Client .NET (Open Source)'/><title type='text'>Multi Remote Desktop Client .NET</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1680502873272693338.post-2371189868568232228</id><published>2009-04-11T08:40:00.000-07:00</published><updated>2011-12-12T14:43:41.862-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Remote Desktop Client .NET (Open Source)'/><title type='text'>Multi Remote Desktop Client .NET</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sFWYXIolhXw/TuaDGXg6bkI/AAAAAAAACXw/jbI2LCv8bkM/s1600/MainWindow_thumb%255B5%255D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="390" src="http://1.bp.blogspot.com/-sFWYXIolhXw/TuaDGXg6bkI/AAAAAAAACXw/jbI2LCv8bkM/s640/MainWindow_thumb%255B5%255D.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=1680502873272693338" name="top"&gt; &lt;/a&gt;&lt;a href="http://lh5.ggpht.com/_kFNcLq9qQIg/SdQKJqc62rI/AAAAAAAAAuA/nWp3X3UpJWM/s1600-h/MainWindow%5B13%5D.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mrdcdotnet.blogspot.com/search/label/Screen%20Shots"&gt;Screenshots&lt;/a&gt; . &lt;a href="http://mrdcdotnet.blogspot.com/search/label/Code%20Snippets"&gt;Code Snippets&lt;/a&gt; . &lt;a href="http://mrdcdotnet.blogspot.com/search/label/Features"&gt;Features&lt;/a&gt; . &lt;a href="http://mrdcdotnet.blogspot.com/search/label/Release%20History"&gt;History&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;&lt;br /&gt;Introduction&lt;/h3&gt;Comes on handy when managing your RDP connections. A friendly user interface for you to work and navigate easily. &lt;br /&gt;&lt;h3&gt;Background&lt;/h3&gt;Thanks to AxInterop.MSTSCLib (mstscax.dll) It's an ActiveX COM Component which you can use to connect on your Remote Desktop. So, I made a GUI for it for you to connect on your servers via terminal service on multiple window view in one application. How to use MSTSCAX.DLL? &lt;br /&gt;&lt;ol&gt;&lt;li&gt;You must have the ActiveX file in your system called "mstscax.dll". &lt;/li&gt;&lt;li&gt;if not, then you can Google for the file and download it, then make sure you registered it using "RegSvr32 &lt;thefile&gt;". I think that's one of the IIS package if you installed the Remote Desktop Web Connection. &lt;/thefile&gt;&lt;/li&gt;&lt;li&gt;On the UI Design mode in VS2005 or 8.&lt;br /&gt;&lt;br /&gt;go to your toolbox and Open Choose Toolbox Items and look for Microsoft RDP Client Control in COM Components tab. &lt;/li&gt;&lt;li&gt;I'm guessing you successfully added that control in your toolbar. So I don't think I have to explain how to get that in your Form.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Source Codes or Binaries can be downloaded in&lt;br /&gt;&lt;a href="http://multirdpc.codeplex.com/"&gt;CodePlex&lt;/a&gt; or &lt;a href="http://www.codeproject.com/KB/cs/RemoteDesktopClient.aspx"&gt;CodeProject&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Though this is not the latest source code but it's working&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1680502873272693338-2371189868568232228?l=mrdcdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/2371189868568232228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/multi-remote-desktop-client-net.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2371189868568232228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2371189868568232228'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/multi-remote-desktop-client-net.html' title='Multi Remote Desktop Client .NET'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-sFWYXIolhXw/TuaDGXg6bkI/AAAAAAAACXw/jbI2LCv8bkM/s72-c/MainWindow_thumb%255B5%255D.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1680502873272693338.post-2514461071834768119</id><published>2009-04-11T08:39:00.000-07:00</published><updated>2010-03-01T04:21:08.104-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Screen Shots'/><title type='text'>Screen Shots</title><content type='html'>&lt;a href="http://www.blogger.com/post-edit.g?blogID=1391358886086129586&amp;amp;postID=2048788085041585636#top"&gt;&lt;i&gt;back to top&lt;/i&gt;&lt;/a&gt;&lt;h3&gt;&lt;a id="screenshot" name="screenshot" title="screenshot" class="anchor"&gt;Screen shots from Windows Vista (click the image for large preview)&lt;/a&gt; &lt;/h3&gt; &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Splashscreen &lt;a href="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKO5JP9mI/AAAAAAAAAuI/hN1fg0wbako/s1600-h/splashscreen%5B7%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="splashscreen" src="http://lh4.ggpht.com/_kFNcLq9qQIg/SdQKQLdL8QI/AAAAAAAAAuM/yxGitW5SwPI/splashscreen_thumb%5B3%5D.jpg?imgmax=800" width="204" height="104" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Startup Password &lt;a href="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKSMoBErI/AAAAAAAAAuQ/9KtCDykxGdY/s1600-h/PasswordWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="PasswordWindow" src="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKTfw5AkI/AAAAAAAAAuU/adioNwOWwPs/PasswordWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="108" /&gt;&lt;/a&gt;&lt;br /&gt;- A password screen will show up each time you start the application.&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Main Window &lt;a href="http://lh4.ggpht.com/_kFNcLq9qQIg/SdQKXObPn6I/AAAAAAAAAuY/BM_yr2NwZ5o/s1600-h/MainWindow%5B9%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="MainWindow" src="http://lh5.ggpht.com/_kFNcLq9qQIg/SdQKYddXnBI/AAAAAAAAAuc/9qnjvdx8nuA/MainWindow_thumb%5B3%5D.jpg?imgmax=800" width="204" height="126" /&gt;&lt;/a&gt;&lt;br /&gt;- A tabbed and multi window environment for easy window navigation.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Server list views &lt;a href="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKbL6uUjI/AAAAAAAAAug/9o6Tbm2vzrM/s1600-h/ServerLists_Icon_Views%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="ServerLists_Icon_Views" src="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKcQ24lmI/AAAAAAAAAuk/CUudS4yMouA/ServerLists_Icon_Views_thumb%5B1%5D.jpg?imgmax=800" width="204" height="143" /&gt;&lt;/a&gt;&lt;br /&gt;- Server panel which lists the RDP servers  in group name view&lt;br /&gt;- It can also be shown in different views such as: Tree, Small lists, and Large lists.&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Collapse/Expand &lt;a href="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKeTu0U1I/AAAAAAAAAuo/ONg5EvO18Fo/s1600-h/ServerListsCollapseExpand%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="ServerListsCollapseExpand" src="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKfnCIpwI/AAAAAAAAAus/44DFkW0C2bg/ServerListsCollapseExpand_thumb%5B1%5D.jpg?imgmax=800" width="204" height="219" /&gt;&lt;/a&gt;&lt;br /&gt;- Server panel can also be resize its width, expand, and collapse so you can have more space for you RDP window.&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Group Manager &lt;a href="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKiKKp17I/AAAAAAAAAuw/lyer1QDiu9M/s1600-h/GroupManagerWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="GroupManagerWindow" src="http://lh5.ggpht.com/_kFNcLq9qQIg/SdQKjodOZLI/AAAAAAAAAu0/FtWY8DBeukE/GroupManagerWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="197" /&gt;&lt;/a&gt;&lt;br /&gt;- A Group manager can be used to manage the type of servers.&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Import RDP File &lt;a href="http://lh5.ggpht.com/_kFNcLq9qQIg/SdQKmLYMF2I/AAAAAAAAAu4/MK14YegpCVw/s1600-h/ImportWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="ImportWindow" src="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKnsVLPLI/AAAAAAAAAu8/mbjnbvMaHnk/ImportWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="159" /&gt;&lt;/a&gt;&lt;br /&gt;- One main feature of MRDC.NET is; You can import the RDP files created on Remote Desktop Connection application included in Windows XP and Vista&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Export RDP File &lt;a href="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKp_PjUuI/AAAAAAAAAvA/lYyJC2zJWvs/s1600-h/ExportWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="ExportWindow" src="http://lh4.ggpht.com/_kFNcLq9qQIg/SdQKrPFjBwI/AAAAAAAAAvE/DbkRCzwLNzM/ExportWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="159" /&gt;&lt;/a&gt;&lt;br /&gt;- You can also export the RDP files to .RDP format.&lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;Configuration &lt;a href="http://lh3.ggpht.com/_kFNcLq9qQIg/SdQKt97XyPI/AAAAAAAAAvI/T__JF4aYM-U/s1600-h/ConfigurationWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="ConfigurationWindow" src="http://lh6.ggpht.com/_kFNcLq9qQIg/SdQKvB31bAI/AAAAAAAAAvM/xt1RSetilnE/ConfigurationWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="242" /&gt;&lt;/a&gt;&lt;br /&gt;- Configuration window. Here you can setup your startup password and UI display&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt;About &lt;a href="http://lh4.ggpht.com/_kFNcLq9qQIg/SdQKwzPUhpI/AAAAAAAAAvQ/NiYtkrf7rMU/s1600-h/AboutWindow%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " border="0" alt="AboutWindow" src="http://lh5.ggpht.com/_kFNcLq9qQIg/SdQKzS13s7I/AAAAAAAAAvU/07bhOADmmFc/AboutWindow_thumb%5B1%5D.jpg?imgmax=800" width="204" height="266" /&gt;&lt;/a&gt; &lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt; &lt;/td&gt; &lt;td valign="top" width="133" style="vertical-align: top; "&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1680502873272693338-2514461071834768119?l=mrdcdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/2514461071834768119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/screen-shots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2514461071834768119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2514461071834768119'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/screen-shots.html' title='Screen Shots'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kFNcLq9qQIg/SdQKQLdL8QI/AAAAAAAAAuM/yxGitW5SwPI/s72-c/splashscreen_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1680502873272693338.post-5895965108187467121</id><published>2009-04-11T08:38:00.000-07:00</published><updated>2010-03-01T04:21:08.081-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Snippets'/><title type='text'>Code Snippets</title><content type='html'>&lt;a href="#top"&gt;&lt;i&gt;back to top&lt;/i&gt;&lt;/a&gt;&lt;br/&gt;&lt;a name="codesnippets"&gt;&lt;strong&gt;A simple example code on connecting to RDP hosts desktop&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;Well the basic thing you need to know for you to connect on your server is ..&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Connection Settings&lt;/strong&gt; &lt;pre class="csharpcode"&gt;// for example, I have my AxMsRdpClient control named rdpClient.&lt;br /&gt;rdpClient.Server = "sever name here";&lt;br /&gt;rdpClient.UserName = "your username on remote pc";&lt;br /&gt;rdpClient.AdvancedSettings2.ClearTextPassword = "you password on remote pc";&lt;br /&gt;// optional&lt;br /&gt;rdpClient.ColorDepth = 16; // int value can be 8, 15, 16, or 24&lt;br /&gt;&lt;br /&gt;rdpClient.DesktopWidth = 1024&lt;desktop_width_size&gt;; // int value&lt;br /&gt;rdpClient.DesktopHeight = 768&lt;desktop_height_size&gt;; // int value&lt;br /&gt;rdpClient.FullScreen = true|false; // boolean value that can be True or False&lt;br /&gt;// and connect&lt;br /&gt;rdpClient.Connect();&lt;/desktop_height_size&gt;&lt;/desktop_width_size&gt; &lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;Going Fullscreen in runtime? Fairly Easy!&lt;/strong&gt; &lt;pre&gt;// just set the Fullsceen property to TRUE&lt;br /&gt;rdpClient.Fullscreen = true;&lt;br /&gt;&lt;br /&gt;// strecth the screen&lt;br /&gt;rdpClient.AdvanceSettings3.SmartSizing = true;&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Points of interest&lt;/h3&gt; &lt;p&gt;I implemented a Reconnect feature. But its not easy as calling Disconnect() and Connect().&lt;br /&gt;You should wait until it properly disconnected and call Connect().&lt;br /&gt;&lt;br /&gt;How to do is? Simple, in AxMsRdpClient, there's a Connect property which acts as a Connection Status:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;1 = Connected &lt;/li&gt; &lt;li&gt;0 = Disconnected &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;Now reconnecting can be done by doing this:&lt;br /&gt;&lt;pre&gt;// call Disconnect() method on AxMsRdpClient&lt;br /&gt;// wait for the server to properly disconnect&lt;br /&gt;while (rdpClient.Connected != 0)&lt;br /&gt;{&lt;br /&gt;System.Threading.Thread.Sleep(1000);&lt;br /&gt;Application.DoEvents();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// call Connect() method on AxMsRdpClient&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RDPFile Reader version 1.0 class - &lt;/strong&gt;Which is used to read RDP files&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    Author: Jayson Ragasa | aka: Nullstring&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;    Application Developer - Anomalist Designs LLC&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; *  ---&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; *  RDPFileReader 1.0&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; *  &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; *  RDP File Settings - http://dev.remotenetworktechnology.com/ts/rdpfile.htm&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; *  Terminal Services Team Blog - http://blogs.msdn.com/ts/archive/2008/09/02/specifying-the-ts-client-start-location-on-the-virtual-desktop.aspx&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text.RegularExpressions;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; RDPFileReader&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RDPFile&lt;br /&gt;{&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; KeyboardHooks&lt;br /&gt; {&lt;br /&gt;     ON_THE_LOCAL_COMPUTER = 0,&lt;br /&gt;     ON_THE_REMOTE_COMPUTER = 1,&lt;br /&gt;     IN_FULL_SCREEN_MODE_ONLY = 2&lt;br /&gt; };&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; AudioModes&lt;br /&gt; {&lt;br /&gt;     BRING_TO_THIS_COMPUTER = 0,&lt;br /&gt;     DO_NOT_PLAY = 1,&lt;br /&gt;     LeAVE_AT_REMOTE_COMOPUTER = 2&lt;br /&gt; };&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; WindowState : &lt;span class="kwrd"&gt;int&lt;/span&gt;&lt;br /&gt; {&lt;br /&gt;     NORMAL = 1,&lt;br /&gt;     MAXMIZE = 3&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; SessionBPPs&lt;br /&gt; {&lt;br /&gt;     BPP_8 = 8,&lt;br /&gt;     BPP_15 = 15,&lt;br /&gt;     BPP_16 = 16,&lt;br /&gt;     BPP_24 = 24&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; structs&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;struct&lt;/span&gt; RECT&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Top;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Left;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Width;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Height;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;struct&lt;/span&gt; WindowsPosition&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; WindowState WinState;&lt;br /&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; RECT Rect;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; variables&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _filename = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; RDP template&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] _rdpTemplate = {&lt;br /&gt;                             &lt;span class="str"&gt;"screen mode id:i:{0}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"desktopwidth:i:{1}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"desktopheight:i:{2}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"session bpp:i:{3}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"winposstr:s:0,{4},{5},{6},{7},{8}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"full address:s:{9}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"compression:i:{10}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"keyboardhook:i:{11}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"audiomode:i:{12}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"redirectdrives:i:{13}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"redirectprinters:i:{14}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"redirectcomports:i:{15}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"redirectsmartcards:i:{16}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"displayconnectionbar:i:{17}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"autoreconnection enabled:i:{18}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"username:s:{19}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"domain:s:{20}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"alternate shell:s:{21}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"shell working directory:s:{22}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"password 51:b:{23}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"disable wallpaper:i:{24}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"disable full window drag:i:{25}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"disable menu anims:i:{26}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"disable themes:i:{27}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"disable cursor setting:i:{28}"&lt;/span&gt;,&lt;br /&gt;                             &lt;span class="str"&gt;"bitmapcachepersistenable:i:{29}"&lt;/span&gt;&lt;br /&gt;                         };&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; member fields&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _screenMode = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _desktopWidth = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _desktopHeight = 0;&lt;br /&gt; SessionBPPs _sessionBPP = 0;&lt;br /&gt; WindowsPosition _winPosStr;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _fullAddress = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _compression = 0;&lt;br /&gt; KeyboardHooks _keyboardHook = 0;&lt;br /&gt; AudioModes _audiomode = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _redirectDrives = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _redirectPrinters = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _redirectComPorts = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _redirectSmartCards = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _displayConnectionBar = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _autoReconnectionEnabled = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _username = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _domain = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _alternateShell = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _shellWorkingDirectory = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _password = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _disableWallpaper = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _disableFullWindowDrag = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _disableMenuAnims = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _disableThemes = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _disableCursorSettings = 0;&lt;br /&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _bitmapCachePersistEnable = 0;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; properties&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; ScreenMode&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._screenMode;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._screenMode = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DesktopWidth&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopWidth;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopWidth = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DesktopHeight&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopHeight;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopHeight = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; SessionBPPs SessionBPP&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._sessionBPP;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._sessionBPP = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; WindowsPosition WinPosStr&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; FullAddress&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._fullAddress;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._fullAddress = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Compression&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._compression;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._compression = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; KeyboardHooks KeyboardHook&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._keyboardHook;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._keyboardHook = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; AudioModes AudioMode&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._audiomode;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._audiomode = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; RedirectDrives&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectDrives;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectDrives = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; RedirectPrinters&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectPrinters;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectPrinters = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; RedirectComPorts&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectComPorts;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectComPorts = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; RedirectSmartCards&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectSmartCards;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectSmartCards = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisplayConnectionBar&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._displayConnectionBar;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._displayConnectionBar = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; AutoReconnectionEnabled&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._autoReconnectionEnabled;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._autoReconnectionEnabled = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Username&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._username;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._username = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Domain&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._domain;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._domain = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; AlternateShell&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._alternateShell;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._alternateShell = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ShellWorkingDirectory&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._shellWorkingDirectory;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._shellWorkingDirectory = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Password&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._password;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._password = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableWallpaper&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableWallpaper;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableWallpaper = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableFullWindowDrag&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableFullWindowDrag;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableFullWindowDrag = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableMenuAnims&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableMenuAnims;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableMenuAnims = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableThemes&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableThemes;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableThemes = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; DisableCursorSettings&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableCursorSettings;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._displayConnectionBar = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; BitmapCachePersistEnable&lt;br /&gt; {&lt;br /&gt;     get&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._bitmapCachePersistEnable;&lt;br /&gt;     }&lt;br /&gt;     set&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._bitmapCachePersistEnable = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#region&lt;/span&gt; methods&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Read(&lt;span class="kwrd"&gt;string&lt;/span&gt; filepath)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;this&lt;/span&gt;._filename = filepath;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; data = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;using&lt;/span&gt; (StreamReader reader = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(filepath))&lt;br /&gt;     {&lt;br /&gt;         data = reader.ReadToEnd();&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt;[] settings = data.Split(&lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] { &lt;span class="str"&gt;"\r\n"&lt;/span&gt; }, StringSplitOptions.RemoveEmptyEntries);&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; thisSetting &lt;span class="kwrd"&gt;in&lt;/span&gt; settings)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;string&lt;/span&gt; regex = &lt;span class="str"&gt;"(?&amp;lt;type&amp;gt;.*)\\:(?&amp;lt;dtype&amp;gt;\\w)\\:(?&amp;lt;value&amp;gt;.*)"&lt;/span&gt;;&lt;br /&gt;  &lt;br /&gt;         RegexOptions options = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase);&lt;br /&gt;         Regex reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(regex, options);&lt;br /&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (reg.IsMatch(thisSetting))&lt;br /&gt;         {&lt;br /&gt;             Match m = reg.Match(thisSetting);&lt;br /&gt;&lt;br /&gt;             &lt;span class="kwrd"&gt;string&lt;/span&gt; v = m.Groups[&lt;span class="str"&gt;"value"&lt;/span&gt;].Value;&lt;br /&gt;&lt;br /&gt;             &lt;span class="kwrd"&gt;switch&lt;/span&gt; (m.Groups[&lt;span class="str"&gt;"type"&lt;/span&gt;].Value)&lt;br /&gt;             {&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"screen mode id"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._screenMode = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"desktopwidth"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopWidth = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"desktopheight"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopHeight = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"session bpp"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._sessionBPP = (SessionBPPs)&lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"winposstr"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;string&lt;/span&gt;[] vals = v.Split(&lt;span class="str"&gt;','&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.WinState = (WindowState)&lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(vals[1]);&lt;br /&gt;&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Top = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(vals[2]);&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Left = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(vals[3]);&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Width = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(vals[4]);&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Height = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(vals[5]);&lt;br /&gt;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"full address"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._fullAddress = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;              &lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"compression"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._compression = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"keyboardhook"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._keyboardHook = (KeyboardHooks)&lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"audiomode"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._audiomode = (AudioModes)&lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"redirectdrives"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectDrives = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"redirectprinters"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectPrinters = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"redirectcomports"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectComPorts = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"redirectsmartcards"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectSmartCards = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"displayconnectionbar"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._displayConnectionBar = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"autoreconnection enabled"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._autoReconnectionEnabled = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"username"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._username = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"domain"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._domain = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"alternate shell"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._alternateShell = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"shell working directory"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._shellWorkingDirectory = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"password 51"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._password = v;&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"disable wallpaper"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableWallpaper = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"disable full window drag"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableFullWindowDrag = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"disable menu anims"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableMenuAnims = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"disable themes"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableThemes = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"disable cursor setting"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableCursorSettings = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;                 &lt;span class="kwrd"&gt;case&lt;/span&gt; &lt;span class="str"&gt;"bitmapcachepersistenable"&lt;/span&gt;:&lt;br /&gt;                     &lt;span class="kwrd"&gt;this&lt;/span&gt;._bitmapCachePersistEnable = &lt;span class="kwrd"&gt;int&lt;/span&gt;.Parse(v);&lt;br /&gt;                     &lt;span class="kwrd"&gt;break&lt;/span&gt;;&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Update()&lt;br /&gt; {&lt;br /&gt;     Save(&lt;span class="kwrd"&gt;this&lt;/span&gt;._filename);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Save(&lt;span class="kwrd"&gt;string&lt;/span&gt; filepath)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;this&lt;/span&gt;._filename = filepath;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; template = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; temp &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;._rdpTemplate)&lt;br /&gt;     {&lt;br /&gt;         template += temp + &lt;span class="str"&gt;"\r\n"&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; data = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(template,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._screenMode,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopWidth,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._desktopHeight,&lt;br /&gt;         (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;._sessionBPP,&lt;br /&gt;         (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.WinState, &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Top, &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Left, &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Width, &lt;span class="kwrd"&gt;this&lt;/span&gt;._winPosStr.Rect.Height,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._fullAddress,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._compression,&lt;br /&gt;         (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;._keyboardHook,&lt;br /&gt;         (&lt;span class="kwrd"&gt;int&lt;/span&gt;)&lt;span class="kwrd"&gt;this&lt;/span&gt;._audiomode,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectDrives,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectPrinters,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectComPorts,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._redirectSmartCards,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._displayConnectionBar,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._autoReconnectionEnabled,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._username,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._domain,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._alternateShell,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._shellWorkingDirectory,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._password,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableWallpaper,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableFullWindowDrag,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableMenuAnims,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableThemes,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._disableCursorSettings,&lt;br /&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;._bitmapCachePersistEnable&lt;br /&gt;     );&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;using&lt;/span&gt; (StreamWriter writer = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamWriter(filepath))&lt;br /&gt;     {&lt;br /&gt;         writer.Write(data);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;We also have &lt;strong&gt;DataProtection&lt;/strong&gt; class which was provided by Microsoft and a little bit of modification and some methods to implement such as converting Byte[] &amp;lt; to &amp;gt; Hex blob. We could create a MSTSC valid password.&lt;br /&gt;&lt;br /&gt;Thanks to&lt;br /&gt;Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa302402.aspx#secnetht07_topic4"&gt;http://msdn.microsoft.com/en-us/library/aa302402.aspx#secnetht07_topic4&lt;/a&gt;&lt;br /&gt;- Implementing CryptProtectData and CryptUnprotectData from &lt;strong&gt;Crypt32.DLL&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remko Weijnen - "psw" descriptor on &lt;strong&gt;CryptProtectData&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/#comment-900"&gt;http://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/#comment-900&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Now I have created a wrapper called &lt;strong&gt;DataProtectionForRDPWrapper&lt;/strong&gt; to easily Encrypt and Decrypt RDP password CREATED in DataProtection class. Why did I emphasize the "created" word. Some limitation on DataProtection class is, we can't decrypt the password created by MSTSC and still under research. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Here's the &lt;strong&gt;DataProtectionForRDPWrapper&lt;/strong&gt; wrapper:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Author: Jayson Ragasa | aka: Nullstring&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Application Developer - Anomalist Designs LLC&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * --&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * Made a wrapper for DataProtector so I could&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * Encrypt/Decrypt valid password for RDP&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * TAKE NOTE:&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt; * This can't Decrypt MSTSC Password!&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; DataProtection&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DataProtectionForRDPWrapper&lt;br /&gt;{&lt;br /&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; DataProtection.DataProtector dp = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataProtector(DataProtector.Store.USE_USER_STORE);&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Encrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; text_password)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] e = dp.Encrypt(GetBytes(text_password), &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="str"&gt;"psw"&lt;/span&gt;);&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; GetHex(e);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; Decrypt(&lt;span class="kwrd"&gt;string&lt;/span&gt; enc_password)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] b = ToByteArray(enc_password);&lt;br /&gt;     &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] d = dp.Decrypt(b, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="str"&gt;"psw"&lt;/span&gt;);&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; GetString(d);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] GetBytes(&lt;span class="kwrd"&gt;string&lt;/span&gt; text)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; UnicodeEncoding.Unicode.GetBytes(text);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetString(&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] byt)&lt;br /&gt; {&lt;br /&gt;     System.Text.Encoding enc = System.Text.Encoding.Unicode;&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; enc.GetString(byt);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetHex(&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] byt_text)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;string&lt;/span&gt; ret = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; byt_text.Length; i++)&lt;br /&gt;     {&lt;br /&gt;         ret += Convert.ToString(byt_text[i], 16).PadLeft(2, &lt;span class="str"&gt;'0'&lt;/span&gt;).ToUpper();&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; ret;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] ToByteArray(String HexString)&lt;br /&gt; {&lt;br /&gt;     &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="kwrd"&gt;int&lt;/span&gt; NumberChars = HexString.Length;&lt;br /&gt;         &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] bytes = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[NumberChars / 2];&lt;br /&gt;         &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; NumberChars; i += 2)&lt;br /&gt;         {&lt;br /&gt;             bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);&lt;br /&gt;         }&lt;br /&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; bytes;&lt;br /&gt;     }&lt;br /&gt;     &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;     {&lt;br /&gt;         &lt;span class="rem"&gt;// this occures everytime we decrypt MSTSC generated password.&lt;/span&gt;&lt;br /&gt;         &lt;span class="rem"&gt;// so let's just throw an exception for now&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Exception(&lt;span class="str"&gt;"Problem converting Hex to Bytes"&lt;/span&gt;, ex);&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;strong&gt;&lt;h4&gt;&lt;br /&gt;Creating a new RDP File is simply done by doing this.&lt;/h4&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// RDP Key descriptions found at&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// http://dev.remotenetworktechnology.com/ts/rdpfile.htm&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;RDPFile rdp = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFile();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// we wan't the window to be on a Maximize state&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// 1 - windowed&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// 2 - fullscreen&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.ScreenMode = 1;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// remote desktop resolution&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DesktopWidth = 1024;&lt;br /&gt;rdp.DesktopHeight = 768;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;/* remote desktop color depth&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;public enum SessionBPPs&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    BPP_8 = 8,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    BPP_15 = 15,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    BPP_16 = 16,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    BPP_24 = 24&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.SessionBPP = SessionBPPs.BPP_16&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;/* how the window will look?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;Terminal Services Team Blog explained the "winposstr" key!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;The location on the virtual desktop where the TS Client initially positions itself can be controlled via the winposstr setting in the RDP file &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;winposstr:s:0,ShowCmd,Left,Top,Right,Bottom&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;RDPFile.WindowsPosition winpos = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFile.WindowsPosition();&lt;br /&gt;RDPFile.RECT r = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFile.RECT();&lt;br /&gt;r.Top = 0;&lt;br /&gt;r.Left = 0;&lt;br /&gt;r.Width = ss.DesktopWidth;&lt;br /&gt;r.Height = ss.DesktopHeight;&lt;br /&gt;winpos.Rect = r;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;/* this is equal to ShowCmd from Terminal Services Team Blog &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;public enum WindowState : int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    NORMAL = 1,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    MAXMIZE = 3&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;winpos.WinState = RDPFile.WindowState.MAXMIZE;&lt;br /&gt;&lt;br /&gt;rdp.WinPosStr = winpos; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// set all our winposstr from the obove configuration&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.FullAddress = &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"192.168.1.1"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// your server name or ip address;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.Compression = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// RemoteNetworkTechnology didn't fully explanied this but looks like this is needed for faster data transfer&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;/* For applying standard key combinations&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;public enum KeyboardHooks&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    ON_THE_LOCAL_COMPUTER = 0,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    ON_THE_REMOTE_COMPUTER = 1,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;    IN_FULL_SCREEN_MODE_ONLY = 2&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;};&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.KeyboardHook = RDPFile.KeyboardHooks.ON_THE_REMOTE_COMPUTER;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;/* How will the audio from the remote pc be played&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;public enum AudioModes&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;        {&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;            BRING_TO_THIS_COMPUTER = 0,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;            DO_NOT_PLAY = 1,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;            LeAVE_AT_REMOTE_COMOPUTER = 2&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;        };&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.AudioMode = RDPFile.AudioModes.BRING_TO_THIS_COMPUTER;&lt;br /&gt;&lt;br /&gt;rdp.RedirectDrives = 0; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we share our local drives in the remote pc?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.RedirectPrinters = 0; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we share our printers in the remote pc?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.RedirectComPorts = 0; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we share our com ports in the remoe pc?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.RedirectSmartCards = 0; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we share our smart cards in the remote pc?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DisplayConnectionBar = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// will the Connection bar visible when in Fullscreen mode?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.AutoReconnectionEnabled = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// do we need to automatically connect?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.Username = &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"Admin"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// remote pc Username&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.Domain = &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"DomainName"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// remote pc Domain&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.AlternateShell = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Empty; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// are we going to use different shell other than C:\Windows\Explorer.exe?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.ShellWorkingDirectory = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Empty; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// Working directory if an alternate shell was specified.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// here's the password implementing our DataProtection and the wrapper&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.Password = (ss.Password == &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Empty ? &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Empty : DataProtectionForRDPWrapper.Encrypt(ss.Password));&lt;br /&gt;&lt;br /&gt;rdp.DisableWallpaper = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we disable wallpaper in the remote pc?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DisableFullWindowDrag = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we disable the full window drag in the remote pc and just show the box while dragging?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DisableMenuAnims = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we disable animations?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DisableThemes = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we disable Windows Visual Themes?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.DisableCursorSettings = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// should we disable mouse cursor effects?&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.BitmapCachePersistEnable = 1; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// This setting determines whether bitmaps are cached on the local computer&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#region&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; exporting the file&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;{&lt;br /&gt; rdp.Save(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;@"D:\My Documents\MyRDPConnection.RDP"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; (Exception ex)&lt;br /&gt;{&lt;br /&gt; MessageBox.Show(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"An error occured while saving the configuration for '"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + rdp.FullAddress + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"'.\r\n\r\nError Message: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + ex.Message, &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt; System.Diagnostics.Debug.WriteLine(ex.Message + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"\r\n"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + ex.StackTrace);&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;continue&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#endregion&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h4&gt;&lt;br /&gt;Reading RDP Files&lt;/h4&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; thisFile = &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;@"D:\My Documents\MyRDPConnection.RDP"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#region&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; Read RDP File&lt;br /&gt;&lt;br /&gt;RDPFile rdpfile;&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;{&lt;br /&gt; rdpfile = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFile();&lt;br /&gt; rdpfile.Read(thisFile);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; (Exception ex)&lt;br /&gt;{&lt;br /&gt; MessageBox.Show(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"An error occured while reading '"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + Path.GetFileName(thisFile) + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"' and it will be skipped.\r\n\r\nError Message: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + ex.Message, &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt; System.Diagnostics.Debug.WriteLine(ex.Message + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"\r\n"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + ex.StackTrace);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#endregion&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;Console.Writeline(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"RDP Username: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + rdpfile.Username);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#region&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; Try decrypting the password from RDP file&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;{&lt;br /&gt; System.Diagnostics.Debug.WriteLine(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"reading password "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + thisFile);&lt;br /&gt; Console.Writeline(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"RDP Password: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + DataProtectionForRDPWrapper.Decrypt(rdpfile.Password));&lt;br /&gt; System.Diagnostics.Debug.WriteLine(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"reading password done"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; (Exception Ex)&lt;br /&gt;{&lt;br /&gt; ss.Password = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Empty;&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; (Ex.Message == &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"Problem converting Hex to Bytes"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;)&lt;br /&gt; {&lt;br /&gt;     MessageBox.Show(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"This RDP File '"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + Path.GetFileNameWithoutExtension(thisFile) + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"' contains a secured password which is currently unsported by this application.\r\nThe importing can still continue but without the password.\r\nYou can edit the password later by selecting a server in 'All Listed Servers' and click 'Edit Settings' button on the toolbar"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;, &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);&lt;br /&gt; }&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; (Ex.Message.Contains(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"Exception decrypting"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;))&lt;br /&gt; {&lt;br /&gt;     MessageBox.Show(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"Failed to decrypt the password from '"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + Path.GetFileNameWithoutExtension(thisFile) + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"'"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;, &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt; }&lt;br /&gt; &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt; {&lt;br /&gt;     MessageBox.Show(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"An unknown error occured while decrypting the password from '"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + Path.GetFileNameWithoutExtension(thisFile) + &lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"'"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;, &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span class="preproc"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;#endregion&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;Console.Writeline(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"RDP Desktop Width: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + rdpfile.DesktopWidth);&lt;br /&gt;Console.Writeline(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;"RDP Desktop Height: "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; + rdpfile.DesktopHeight);&lt;/span&gt;&lt;/pre&gt;&lt;h4&gt;&lt;br /&gt;Updating an RDP File&lt;/h4&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;//RDP File Reader test&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;RDPFileReader.RDPFile rdp = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFileReader.RDPFile();&lt;br /&gt;rdp.Read(&lt;/span&gt;&lt;span class="str"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;@"D:\My Documents\RDP\Application Server (1120x700-16bitc).rdp"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;);&lt;br /&gt;&lt;br /&gt;Console.WriteLine(rdp.WinPosStr.WinState);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// set new Window State&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// make window mode maxmize&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;RDPFileReader.RDP.WindowsPosition wpos = &lt;/span&gt;&lt;span class="kwrd"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt; RDPFileReader.RDP.WindowsPosition();&lt;br /&gt;wpos.Rect = rdp.WinPosStr.Rect;&lt;br /&gt;wpos.WinState = RDPFileReader.RDP.WindowState.MAXMIZE; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// change the window state when in window mode.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;rdp.WinPosStr = wpos;&lt;br /&gt;rdp.SessionBPP = RDPFileReader.RDP.SessionBPPs.BPP_8; &lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// change the color depth&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;// and call Update&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal" class="Apple-style-span"&gt;&lt;br /&gt;rdp.Update();&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1680502873272693338-5895965108187467121?l=mrdcdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/5895965108187467121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/code-snippets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/5895965108187467121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/5895965108187467121'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/code-snippets.html' title='Code Snippets'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1680502873272693338.post-713658463919190167</id><published>2009-04-11T08:28:00.000-07:00</published><updated>2010-03-01T04:21:08.069-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Features'/><title type='text'>Features</title><content type='html'>&lt;a href="#top"&gt;&lt;i&gt;back to top&lt;/i&gt;&lt;/a&gt;&lt;br/&gt;&lt;a name="features"&gt;&amp;nbsp;&lt;/a&gt;&lt;h3&gt;&lt;span class="Apple-style-span" style="font-size: 16px; "&gt;Command Line Parameters - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;/sname "server name"&lt;/strong&gt;&lt;br /&gt;Can open a new client window by providing a Server Name &lt;/li&gt; &lt;li&gt;&lt;strong&gt;/gname "group name"&lt;/strong&gt;&lt;br /&gt;Can open a multiple client window by specifying the Group Name &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Add, Edit, Delete Servers&lt;/strong&gt;&lt;br /&gt;Those words says all.&lt;br /&gt;&lt;strong&gt;Server Settings Window&lt;/strong&gt;&lt;br /&gt;the Server Settings window.&lt;br /&gt;- &lt;strong&gt;In General Tab&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Server Name&lt;/strong&gt;&lt;br /&gt;You can give your connection name &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Server&lt;/strong&gt;&lt;br /&gt;The host address or IP address &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Custom Port - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Allowing the RDP to connect to different port. &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Username&lt;/strong&gt;&lt;br /&gt;Your RD server Username &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt;&lt;br /&gt;Your RD server Password &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;br /&gt;Your Server description &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Group&lt;/strong&gt;&lt;br /&gt;You can choose the group of your Server. You can also open &lt;strong&gt;Group Manager&lt;/strong&gt; from there &lt;/li&gt; &lt;/ul&gt; - &lt;strong&gt;In Display Tab&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Desktop Sizes - &lt;em&gt;some resoutions where requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;640 x 480 &lt;/li&gt; &lt;li&gt;800 x 600 &lt;/li&gt; &lt;li&gt;1024 x 768 &lt;/li&gt; &lt;li&gt;1120 x 700 &lt;/li&gt; &lt;li&gt;1152 x 864 &lt;/li&gt; &lt;li&gt;1280 x 800 &lt;/li&gt; &lt;li&gt;1280 x 1024 &lt;/li&gt; &lt;li&gt;Custom Desktop Height and Width &lt;/li&gt; &lt;li&gt;Fullscreen &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Colors&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;True Color (24 bit) &lt;/li&gt; &lt;li&gt;High Color (16 bit) &lt;/li&gt; &lt;li&gt;High Color (15 bit) &lt;/li&gt; &lt;li&gt;256 Colors &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Configuration Window&lt;/strong&gt;&lt;br /&gt;- &lt;strong&gt;In General Tab&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt;&lt;br /&gt;Your &lt;strong&gt;Startup Password&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt; - &lt;strong&gt;Display&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Hide when Minimize&lt;/strong&gt;&lt;br /&gt;If &lt;strong&gt;Enabled&lt;/strong&gt;, the window hides and it self and you bring it up anytime by double clicking on notification icon in system tray.&lt;br /&gt;If &lt;strong&gt;Disabled&lt;/strong&gt;, the window just minimized and accessible in taskbar. &lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Notification Window&lt;/span&gt;&lt;br /&gt;If &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Enabled&lt;/span&gt;, Notification window pops up everytime you hover into some controls.&lt;br /&gt;if &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Disabled&lt;/span&gt;, You know what that means ..&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Import/Export&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Import from RDP file format&lt;/strong&gt;&lt;br /&gt;You can import your current RDP files&lt;br /&gt;&lt;em&gt;Note: Currently, the password made by MSTSC cannot be decrypted. I Still have to work on this&lt;/em&gt; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Export to RDP file format&lt;/strong&gt;&lt;br /&gt;You can export the servers in RDP file format &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Group Manager - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Manages the server groups&lt;br /&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;br /&gt;I implemeted &lt;strong&gt;&lt;a href="http://www.sqlite.org/"&gt;SQLite3&lt;/a&gt; - &lt;a href="http://sqlite.phxsoftware.com/"&gt;ADO.NET&lt;/a&gt;&lt;/strong&gt; instead of working with XML and can be very time-consuming &lt;h3&gt;UI Features&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Notification Icon&lt;/strong&gt;&lt;br /&gt;This icon sits on your system tray area and you can right click on it to show the context menu or double click to bring up the window when minimized or hidden.&lt;br /&gt;The context menu items contains: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Servers - And under it contains the Groups and the Servers &lt;/li&gt; &lt;li&gt;Disconnect All &lt;/li&gt; &lt;li&gt;Configuration &lt;/li&gt; &lt;li&gt;Lock &lt;/li&gt; &lt;li&gt;Exit &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Lock Application&lt;/strong&gt;&lt;br /&gt;For safety purposes, a Lock feature is added to lock the current application and the Password Window will show up after locking the application.&lt;br /&gt;&lt;strong&gt;Startup Password - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/shmulyeng"&gt;shmulyeng&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;For safety purposes, a Password feature is added before opening the application.&lt;br /&gt;After entering 3 invalid passwords, CAPTCHA verification will show up in Password Window&lt;br /&gt;&lt;strong&gt;Server Lists Panel&lt;/strong&gt;&lt;br /&gt;You can change the views in Server Lists panel in Detailed, Tiled, and Tree &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Conetext Menu in Server Lists Panel - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt; and &lt;a href="http://www.codeproject.com/Members/shmulyeng"&gt;shmulyeng&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Context Menu will popup after right clicking on the items and you can Add, Edit, Delete, and Group Connect. &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Collapse/Expand Server Lists Panel - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;You can collapse or expand the server lists panel. &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Groups - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Servers are arranged by Groups &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Different Views - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/Simon-Capewell"&gt;Simon Capewell&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;You can set the Server lists view by Detailed, Tiled, and Tree &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;MDI Tabs - &lt;em&gt;requested by: &lt;a href="http://www.codeproject.com/Members/shmulyeng"&gt;shmulyeng&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Of course, Tabs can be very helpfull when selecting client windows&lt;br /&gt;&lt;strong&gt;Disconnect All&lt;/strong&gt;&lt;br /&gt;Disconnects all connected RD clients.&lt;br /&gt;&lt;strong&gt;Client Window&lt;/strong&gt;&lt;br /&gt;The window for RD connections. &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Connect, Disconnect, and Reconnect&lt;/strong&gt;&lt;br /&gt;This Connects, Disconnects, and Reconnects the RD connection &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Fullscreen&lt;/strong&gt;&lt;br /&gt;Set the RD connection to Fullscreen. It can also ask you to resize the Resolution based on your Desktop Resolution &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Fit To Window&lt;/strong&gt;&lt;br /&gt;The RD resolution can change based on the RD client window &lt;ul&gt; &lt;li&gt;Fit to Window &lt;/li&gt; &lt;li&gt;Strech &lt;/li&gt; &lt;/ul&gt; &lt;/li&gt; &lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;&lt;br /&gt;Opens the Server Settings &lt;/li&gt; &lt;/ul&gt; &lt;strong&gt;Info Popup Window&lt;/strong&gt;&lt;br /&gt;This window automatically popups when hoverd on the control showing a description of what the control can do. &lt;h3&gt;Credits&lt;/h3&gt; &lt;p&gt;I do give a lot of credits to the People who shared their Ideas, Custom Control, and Codes.&lt;br /&gt;&lt;strong&gt;Credits can be found in my About Window&lt;/strong&gt;&lt;/p&gt; &lt;h3&gt;Future Features&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Send Keys &lt;/li&gt; &lt;li&gt;More RD settings &lt;/li&gt; &lt;li&gt;RD Virtual Channel &lt;/li&gt; &lt;li&gt;Support VNC connection - using &lt;strong&gt;SharpVNC&lt;/strong&gt; &lt;/li&gt; &lt;li&gt;RD and VNC connection can be viewed as thumbnail on one window. &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1680502873272693338-713658463919190167?l=mrdcdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/713658463919190167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/713658463919190167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/713658463919190167'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/features.html' title='Features'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1680502873272693338.post-2683665620534076089</id><published>2009-04-11T08:27:00.000-07:00</published><updated>2010-03-01T04:21:08.059-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Release History'/><title type='text'>Release History</title><content type='html'>&lt;a href="#top"&gt;&lt;i&gt;back to top&lt;/i&gt;&lt;/a&gt;&lt;br/&gt;&lt;a name="history"&gt;&amp;nbsp;&lt;/a&gt;Full Release - April 11, 2009&lt;br /&gt;ADD:&lt;br /&gt;- Added Hide/Show settings for Information popup window&lt;br /&gt;UPDATE:&lt;br /&gt;- Fixed Server Lists collapse bug when no MDI Child&lt;br /&gt;- Fixed LiveInfoWindow from stealing the focus.&lt;br /&gt;- Fixed database exception in Import Window.&lt;br /&gt;- Group Manager window, redesigned to fit on MRDC.NET layout.&lt;br /&gt;- Updated database schema.&lt;br /&gt;---- Groups table uid is set to auto-increment.&lt;br /&gt;&lt;br /&gt;Full Release - April 4, 2009 UPDATE:&lt;br /&gt;- Fixed error when no password is set&lt;br /&gt;- Fixed database scheme&lt;br /&gt;- MSTSC Generated password can now be decrypted! &lt;br /&gt;- Fixed domain name, not saving &lt;br /&gt;&lt;br /&gt;Full Release / April 3 &lt;br /&gt;UPDATE:&lt;br /&gt;- Fixed stupid RDP Control Focus issue&lt;br /&gt;&lt;br /&gt;Full Release / April 2 &lt;br /&gt;NEW: - From the requests of Simon Capewell and shmulyeng - Simon Capewell Requests: &lt;br /&gt;--- DONE(03222009_1254)1. Allow connection to servers on a specific port using AdvancedSettings2.RDPPort &lt;br /&gt;--- DONE(03192009_0916)2. More screen resolutions on the slider - most obviously 1152x864 and 1280x1024. &lt;br /&gt;--- DONE(03202009_1341)3. Context menu on the list of servers. &lt;br /&gt;--- DONE(03222009_1254)4. Options for different icon sizes for the list of servers. &lt;br /&gt;--- DONE(03227009_0138)5. Groupings for servers - handy if you have lots of clients each of whom have multiple servers. You could launch sessions for all the items in the group. &lt;br /&gt;--- DONE(03212009_1321)6. Auto hide or view menu option to show/hide the sidebar (similar to Visual Studio). &lt;br /&gt;--- DONE(03192009_0200)7. Clicking Delete Server or Edit Settings when there are no servers throws an exception. &lt;br /&gt;&lt;br /&gt;--- Here's another one that's just occurred. I use Launchy to index a directory with a load of .rdp files in it, which means I can just type Ctrl+space then a portion of the server name and launch it. To do that with this tool it'd need to: &lt;br /&gt;--- DONE(03272009_1129)1. Be able to launch a connection from the built in server list from the command line. &lt;br /&gt;--- DONE(03272009_1129)2. Have a command line switch to open the connection in an existing instance of the app. &lt;br /&gt;--- DONE(03272009_1129)3. Perhaps even be able to launch connections from the command line using rdp files rather than the built in server list. &lt;br /&gt;- shmulyeng requests: &lt;br /&gt;--- DONE(03272009_0252)Ability to password protect the server list. &lt;br /&gt;--- DONE(03202009_1341)Ability to right click on a connection item in the list to edit connection details. &lt;br /&gt;--- (WILL TRY) Ability to log out of a connection rather than disconnect. &lt;br /&gt;--- DONE(03212009_1321)One thing I like about Palantir is the tabs of open connections. &lt;br /&gt;- and I added some &lt;br /&gt;- CAPTCHA verfication on startup password. &lt;br /&gt;--- When an incorrrect password is entered 3x, CAPTCH verification panel will show up.&lt;br /&gt;- SQLite3&lt;br /&gt;--- scrap XML!! :P &lt;br /&gt;ADD: &lt;br /&gt;UPDATE: &lt;br /&gt;- The last release was pretty much stable so there's a small updates on the code and some bug fix. &lt;br /&gt;&lt;br /&gt;Alpha Release - 6, &amp; 7 / March 19, 2009 &lt;br /&gt;NEW: &lt;br /&gt;- Application can now run in Windows Vista. &lt;br /&gt;- Fixed AX MSRDPClient reference &lt;br /&gt;---- Thanks to Simon Capewell (http://www.codeproject.com/script/Membership/Profiles.aspx?mid=215) &lt;br /&gt;-------- RemoteDesktopClient.aspx?fid=1537072&amp;df=90&amp;mpp=25&amp;noise=3&amp;sort=Position&amp;view=Quick&amp;select=2969383#xx2969383xx &lt;br /&gt;MARCH 21 &lt;br /&gt;- LiveInformationBox 1.0 &lt;br /&gt;--- Is a class library that pops up whenever you hover on a specified control and shows some details about what the controls can do. &lt;br /&gt;--- The information shown on information box is an xml base. &lt;br /&gt;--- this is better than showing some information on a status strip :P &lt;br /&gt;- ListViewEx &lt;br /&gt;--- hooks some control (not just common control) to disable/enable if listview has no item or when a selectio is made on listview items. &lt;br /&gt;--- good for automating controls instead of doing tons of lines just to disable/enable different controls. &lt;br /&gt;MARCH 25 &lt;br /&gt;- Am using SQLite3 now instead of XML! :P &lt;br /&gt;---- it's taking too much time to maintain :P &lt;br /&gt;ADD: &lt;br /&gt;UPDATE: &lt;br /&gt;MARCH 20 &lt;br /&gt;- Finally it's working on both OS, thanks to that AxImp and thanks to @unruledboy &lt;br /&gt;MARCH 23 &lt;br /&gt;- LiveInformationBox &lt;br /&gt;-- now supports toolbar buttons &lt;br /&gt;- Server Lists &lt;br /&gt;-- now collapsable &lt;br /&gt;-- can change icon views &lt;br /&gt;-- context menu &lt;br /&gt;- For RDP client window &lt;br /&gt;-- on main form, now contains tab &lt;br /&gt;- Settings window &lt;br /&gt;-- added more resolution &lt;br /&gt;- ListViewEx for Server Lists &lt;br /&gt;-- control hooks so it can be easily Enable/Disable the controls when something's changed on the listview &lt;br /&gt;- crashes when clicking Edit Settings and Delete when no items on the Server Lists &lt;br /&gt;-- fixes the locking issue on rdp control when lossing its focus - Settings window &lt;br /&gt;-- Connection Port &lt;br /&gt;MARCH 25 &lt;br /&gt;- LiveInformationBox &lt;br /&gt;---- fixed the UI &lt;br /&gt;---- still having some problem on window focus. &lt;br /&gt;&lt;br /&gt;Alpha Release - 5 / March 17, 2009 &lt;br /&gt;NEW: &lt;br /&gt;- Import / Export RDP file format &lt;br /&gt;- Can delete selected server in "All Server List" panel. &lt;br /&gt;- Added new About Window &lt;br /&gt;ADD: &lt;br /&gt;UPDATE: &lt;br /&gt;- Fixed and Improved Fit To Window feature &lt;br /&gt;- Fixed Saving, Importing, and Exporting password handling. &lt;br /&gt;&lt;br /&gt;Alpha Release - 2, 3, &amp; 4 / March 7, 2009 &lt;br /&gt;NEW: &lt;br /&gt;- ServerList reader moved to a separate Class Library &lt;br /&gt;---- Custom Exception Handler &lt;br /&gt;- TextboxRequiredWrapper moved to a separate Class Library &lt;br /&gt;MARCH 8 &lt;br /&gt;- Fixed updating settings bug! MARCH 8 - ServerSettingsWindow &lt;br /&gt;---- added new button("Get client window size"): Set the Desktop Width and Height size base on rdp client window size. &lt;br /&gt;MARCH 9 &lt;br /&gt;- Fixed Icon status on Server List if multiple windows are openned. &lt;br /&gt;---- not sure why I didn't noticed that. &lt;br /&gt;MARCH 12 &lt;br /&gt;- RDP File Reader &lt;br /&gt;- Used to Read/Create/Update RDP Files &lt;br /&gt;- DataProtection &lt;br /&gt;- Used to Encrypt/Decrypt RDP Passwords and create valid RDP Passwords. &lt;br /&gt;ADD: &lt;br /&gt;MARCH 9 &lt;br /&gt;- Added new button on main toolbar called "Disconnect All" &lt;br /&gt;---- which disconnects all connected rdp client. &lt;br /&gt;UPDATED: &lt;br /&gt;- saving a value on "dummy" attribute is now MD5 string &lt;br /&gt;- duplicate check while creating a New or Updating a Connection Settings. &lt;br /&gt;MARCH 8 &lt;br /&gt;- Updated xml configuration template &lt;br /&gt;---- added UID element &lt;br /&gt;---- dummy and uid values are now DateTime(MMddyyhhmmss) format &lt;br /&gt;- Password is now encrypted using Rijndael Encryption/Decryption &lt;br /&gt;MARCH 8 - Current configuration on RDP Client Window now updates - Server list now update after settings are changed on RDP Client Window MARCH 8 &lt;br /&gt;- Settings can be applied on Server Lists or in Rdp Client Window. &lt;br /&gt;&lt;br /&gt;Alpha Release - 1 / March 6, 2009 &lt;br /&gt;First release in CodePlex.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1680502873272693338-2683665620534076089?l=mrdcdotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mrdcdotnet.blogspot.com/feeds/2683665620534076089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/release-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2683665620534076089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1680502873272693338/posts/default/2683665620534076089'/><link rel='alternate' type='text/html' href='http://mrdcdotnet.blogspot.com/2009/04/release-history.html' title='Release History'/><author><name>Jayson Ragasa</name><uri>http://www.blogger.com/profile/08994762608395999908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://2.bp.blogspot.com/-BXahqjOIiqQ/TlmQjV2Z3kI/AAAAAAAACAo/K1cdKiklFEE/s220/meme.png'/></author><thr:total>0</thr:total></entry></feed>
