Click here to Skip to main content
Licence CPOL
First Posted 4 Jan 2012
Views 5,321
Bookmarked 5 times

Mobile Developement – RDP AutoLogin extended (version 4)

By | 4 Jan 2012 | Technical Blog
Hello on the wish of the one or other user I extended the RDP AutoLogin code and we now reached level 4. The new code simply has only one extension, it supports the color depth selection. Also the color depth and other settings are visible on the dialog of Remote Desktop Mobile, the settings itself
A Technical Blog article. View original blog here.[^]

Hello

on the wish of the one or other user I extended the RDP AutoLogin code and we now reached level 4.

The new code simply has only one extension, it supports the color depth selection. Also the color depth and other settings are visible on the dialog of Remote Desktop Mobile, the settings itself are done via the Default.rdp file. But you are right, RDP_AutoLogin also controls some of the dialog items directly.

<ol><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1">Domain:s:</div></li><li class="li1"><div class="de1">ColorDepthID:i:3</div></li><li class="li1"><div class="de1">ScreenStyle:i:0</div></li><li class="li1"><div class="de1">DesktopWidth:i:640</div></li><li class="li1"><div class="de1">DesktopHeight:i:480</div></li><li class="li1"><div class="de1">UserName:s:rdesktop</div></li><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1">ServerName:s:192.168.128.5</div></li><li class="li1"><div class="de1">SavePassword:i:1</div></li><li class="li1"><div class="de1">...</div></li></ol>

The color depth setting supports two modes, 8 Bit with 256b colors (ColorDepthID:i:1) and 16 Bit with ~65000 colors (ColorDepthID:i:3).

<ol><li class="li1"><div class="de1"><span class="geshi_registry_header">REGEDIT4</span></div></li><li class="li1"><div class="de1"> </div></li><li class="li1"><div class="de1"><span class="br0">[</span><span class="kw3">HKEY_LOCAL_MACHINE</span>\Software\RDP_autologin<span class="br0">]</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"FitToScreen"</span><span class="sy0">=</span><span class="st0">"1"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"FullScreen"</span><span class="sy0">=</span><span class="st0">"1"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Status"</span><span class="sy0">=</span><span class="st0">"connecting..."</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Save Password"</span><span class="sy0">=</span><span class="st0">"1"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Domain"</span><span class="sy0">=</span><span class="st0">""</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Password"</span><span class="sy0">=</span><span class="st0">"Intermec+2004"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Username"</span><span class="sy0">=</span><span class="st0">"rdesktop"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"Computer"</span><span class="sy0">=</span><span class="st0">"192.168.0.130"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"DesktopWidth"</span><span class="sy0">=</span>640</div></li><li class="li1"><div class="de1"><span class="geshi_variable">"DesktopHeight"</span><span class="sy0">=</span>480</div></li><li class="li1"><div class="de1"><span class="geshi_variable">"startOnExit"</span><span class="sy0">=</span><span class="st0">"\\rdp_keepBusy.exe"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"execargs"</span><span class="sy0">=</span><span class="st0">"noRDPstart"</span></div></li><li class="li1"><div class="de1"><span class="geshi_variable">"UseMouseClick"</span><span class="sy0">=</span>"0"	//added with version 3 to switch between mouse and keyboard simulation</div></li><li class="li1"><div class="de1"><span class="geshi_variable">"ColorDepth"</span><span class="sy0">=</span>1		//added with version 4 to enable switching between 8 and 16 Bit colors</div></li></ol>

The code changes are small. Some code addition to read the value from the registry and some to write the rdp file:

<ol><li class="li1"><div class="de1"><span class="kw4">void</span> readReg<span class="br0">(</span><span class="br0">)</span><span class="br0">{</span></div></li><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1">        <span class="co1">//ColorDepth new with version 4</span></div></li><li class="li1"><div class="de1">        <span class="kw1">if</span><span class="br0">(</span>RegReadDword<span class="br0">(</span>L<span class="st0">"ColorDepth"</span>, <span class="sy3">&</span>dwTemp<span class="br0">)</span> <span class="sy1">==</span> 0<span class="br0">)</span></div></li><li class="li1"><div class="de1">            dwColorDepth<span class="sy1">=</span>dwTemp<span class="sy4">;</span></div></li><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li><li class="li1"><div class="de1"><span class="kw4">void</span> writeRDP<span class="br0">(</span><span class="br0">)</span><span class="br0">{</span></div></li><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1">			<span class="kw1">else</span> <span class="kw1">if</span><span class="br0">(</span>wcsstr<span class="br0">(</span>rdpLines<span class="br0">[</span>c<span class="br0">]</span>.<span class="me1">line</span>, L<span class="st0">"ColorDepthID"</span><span class="br0">)</span><span class="sy3">!</span><span class="sy1">=</span><span class="kw2">NULL</span><span class="br0">)</span><span class="br0">{</span></div></li><li class="li1"><div class="de1">				wsprintf<span class="br0">(</span>szTemp, rdpLines<span class="br0">[</span>c<span class="br0">]</span>.<span class="me1">line</span>, dwColorDepth<span class="br0">)</span><span class="sy4">;</span>  <span class="co1">//3=HighColor(16Bit) or 1=(8Bit) color</span></div></li><li class="li1"><div class="de1">			<span class="br0">}</span></div></li><li class="li1"><div class="de1">...</div></li><li class="li1"><div class="de1"><span class="br0">}</span></div></li></ol>

Additionally I have added a new project to the solution to enable to set all the settings not only via the registry but using a GUI application. RDP_Autologin_Settings is born:

 

As you see, there is also a small file browser integrated. The default OpenFile dialog of Compact Framework does not allow you to browse all directories, but only “\My Documents”.

RDP AutoLogin Settings Editor (exe): DOWNLOAD:RDP AutoLogin Settings editor - (Hits: 4, size: 10.45 kB)
source (Visual Studio 2008 WM5 SDK project): DOWNLOAD:RDP AutoLogin Settings editor Source Code - (Hits: 2, size: 21.23 kB)

RDP_AutoLogin (exe): DOWNLOAD:RDP AutoLogin Executable - (Hits: 5, size: 6.78 kB)
source (Visual Studio 2008 WM5 SDK project): DOWNLOAD:RDP AutoLogin Source Code - (Hits: 2, size: 56.85 kB)

RDP_KeepBusy (exe): DOWNLOAD:RDP KeepBusy (executable) - (Hits: 4, size: 3.17 kB)
RDP_KeepBusy (vs2008 WM5 SDK project): DOWNLOAD:RDP KeepBusy Source Code - (Hits: 2, size: 12.92 kB)

Have fun

Josef

<!-- Social Bookmarks BEGIN --> <!-- Social Bookmarks END -->

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

hjgode



Germany Germany

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 4 Jan 2012
Article Copyright 2012 by hjgode
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid