Android Remote Desktop Client

2XClient_LogonI find that I am increasingly relying on the computing power of my Android smartphone (a HTC Desire) and finding novel ways of using it to make my IT life easier. Sometimes I just want to connect to my PC that is in another room, or more often for me it’s my headless Windows Home Server, and so I scouted for a Remote Desktop client that I could run on my phone. The key requirement was for it to use the Windows native Remote Desktop protocol and therefore not require any software to be installed on my PC or Server, which ruled out a lot of the VNC based Apps. Luckily 2x.com have released an excellent FREE App that ticks all the boxes.

2XClient for Android can be found here or on Android Market here. It is dead easy to set up the target machines and there are several display optimisation options. The key thing though is that it’s actually very easy to navigate the target machines desktop via a custom keyboard and a nifty mouse icon that can be dragged around with a left and right mouse button attached (left image below).  In these images I’m logging onto my Windows Home Server (a Windows 2003 based OS) but I also use it with my Windows 7 PC too. One thing to note for Windows 7 though is that I needed to set my Remote Desktop settings (via My Computer > System Properties > Remote Settings)  to “Allow connections from computers running any version of Remote Desktop” as opposed to the default setting of enforcing Network Level Authentication.

 2XClient_Mouse  2XClient_Keyboard  2XClient_StartMenu

It is surprisingly easy to do simple tasks on the target machine, especially after a bit of practice. Here I am using PowerShell and checking my Home Server Console.

2XClient_WHS12XClient_POSH

A very powerful tool to have on your phone and ideal for those quick techy tasks when you can’t be bothered to get off the sofa.

Windows PowerShell Console Fun

Windows PowerShell Console Fun

1

Whilst watching Die Hard 4 the other day I noticed the funky transparent console windows that were being used to battle out cyber warfare, and being a traditional geek I immediately liked the idea of doing the same for my PowerShell console. Sure I know these guys are using Linux and transparent consoles have been around for years but still I fancied some of that slickness on my Windows.

POSh_PssGlassIt didn’t take long to find PSGlass on CodePlex (http://powershellglass.codeplex.com/) which is a neat little exe that runs in your system tray and hunts out any PowerShell console windows, and any it finds it converts to transparent using the Windows Aero effects. The peek into the source code shows that it’s checking for a window with a process name of “powershell” or “cmd” and then uses the DwmEnableBlurBehindWindow API to make it transparent.  The effect is shown on the left. It’s simple and effective and could be extended easily to do more. Not content with this I wanted to achieve the same result from within PowerShell itself so set about using the API in a script. Luckily for me Oisin Grehan had already written a script to achieve the same result and posted it on PoshCode.org, check it out at http://poshcode.org/2052. For this script the DwmExtendFrameIntoClientArea API is used to create a sheet of glass effect with no borders and the effect is much more striking (right screen shot). The fact that POSh_Glassyou don’t have to have an application running in the background is of course much better and as its a script you can add it to your profile to always take effect on Powershell start-up. I have found it useful to create a function in my profile to toggle the glass effect on/off depending on my mood and what actions I am trying to perform.

As the console was now transparent I quickly found myself wanting it to stay on the top of other windows and so set about looking for a script for that too. Again the excellent PoshCode.org came to the rescue with this script from Shay Levy at http://poshcode.org/1837. Again I downloaded the script and added a function to my profile to be able to toggle it on/off at will from within the console itself. In order to access the Set-TopMost() function that sits within the TopMost.ps1 script I used dot sourcing (described here by Jesse Hamrick) and my functions are shown below:

function OnTop
{
	. TopMost.ps1
	Set-TopMost (get-process -id $pid).mainwindowhandle
}

function NoOnTop
{
	. TopMost.ps1
	Set-TopMost (get-process -id $pid).mainwindowhandle -disable
}

PoshMatrixFor total geek heaven why not go the extra mile and put a Matrix style screensaver within the console itself. If you haven’t seen it I would recommend checking it out at http://www.nivot.org…. The video on the site shows how it works but it essentially runs a Matrix code screensaver inside the console (not the whole desktop).  Now that’s one clever PowerShell script!

2017 UPDATE:

As PoshCode.org site has been down a while I’ve added alternative links to be able to find the above mentioned scripts from the awesome web.archive.org instead of PoshCode.org:

Folder Based Toolbars on the Windows Taskbar

blob_e421d1af-6513-4656-8b9a-749aa923c588Recently someone asked me how I managed to access a list of files on my machine from a pop-up list on the Windows Taskbar. The ability to add folder links to the Windows Taskbar has been around for many versions of Windows I guess still not everyone realises how easy and/or useful it is. I find it helps my productivity and because they are very easy to create and remove it sometimes helps to create them for short to medium term use too. 

To add a folder as a toolbar on the taskbar just right click on the taskbar, pick ‘Toolbars’ and then ‘Create Toolbar…’. This displays the ‘New Toolbar’ dialog which is basically just a folder picker for you to select the folder you want to display.

blob_a30be7b3-c538-4ef2-9794-d201a78f5c65

Once you’ve picked a folder, that’s it! Now you can move it around on the taskbar like any other toolbar.  To remove it, just right click the taskbar again, pick ‘Toolbars’ and unselect it.

 

Accessing ‘Live Mesh’ From Your Non-Windows Mobile

imageMicrosoft ‘Live Mesh’ provides the ability to synchronise your data across all your devices via ‘the cloud’. This means you can access your files no matter which PC you’re using, and also extends to Windows Mobile devices. But what if you want access to these files from a non-Windows mobile such as a Nokia Symbian Smartphone. Whilst Microsoft does not provide a Symbian client application (yet!) it is possible to access your Live Mesh folders via your phone’s browser using the Live Mesh mobile web site:

http://m.mesh.com

This won’t synchronise your files to the device but it does allow you to upload and download files to/from your mesh folders using a mobile friendly web interface. I find this a very useful way to access my files on the move from my Nokia E71.

Extract Contents of an MSI

Sometimes you want to be able to access the contents of an MSI without having to install it. This is possible by running the Windows Installer MSIExec program with a few chosen parameters:

msiexec /a FilePathToMSI /qb TARGETDIR=TargetFolder

Where FilePathToMSI is the file path to the source MSI file, and TargetFolder is the path to extract the contents to.

More command line options can be found on MSDN here.

Live Mesh : Specify Folder Locations

Windows Live Mesh is a nifty tool for sharing data across various devices. One problem with it though is that by default new Mesh Folders are added to the Desktop of all the devices in your mesh. There is a way to prevent this though.

Creating a new Mesh folder and setting it to synchronise with all your other devices will mean that it appears on the desktop of those machines. The way to avoid this is by ensuring that when you set up a new folder (from either the Live Desktop or directly on any of the devices) make sure that the ‘Synchronise Files’ setting is set to ‘Never with this device’ for all devices (as below):

ChgSynch2

From each individual device you will now be able to see the new folder in the Live Mesh ‘Manage Folders’ view. From there select the new folder, right click and select ‘Change Synch Settings’  which shows the Change Synchronization dialog (as above) but the Name and Location fields are now also enabled allowing you to change the location of the file on the current device. Specify a folder location and then change the ‘Synchronise Files’ setting to ‘When files are added or modified’ for the local machine (as below). The files will now Synchronise as normal but to the chosen target folder and not your desktop.

ChgSynch3

Repeat this process for the each device in your Mesh.

Missing Windows

If you usually use two monitors in a dual screen setup you may find that when you move back to one (such as when you undock your laptop to go mobile) occasionally some windows disappear. On launching an application it may not appear despite evidence of it running fine (icon in the toolbar for example). This is because the application’s window has opened up in the area of desktop previously visible on your second monitor.

To resolve the problem:

1) Give the application focus by selecting it in the Windows Taskbar or selecting “Switch To” from Task Manager.
2) Press “ALT” and “SPACE” together, which pops up the window context menu.
3) Select  “Move”, and then use the arrow keys to move the window into view.

This happened to me again this week and I always forget the keyboard shortcut to launch the current window context menu. Here is a useful link I found that lists useful keyboard shortcuts.