UDPATE 02 January 2010 : I'm currently trying to get this how to working under Windows XP SP3 as promised in the Microsoft patch and have so far been unsuccessful running under either VirtualBox or VirtualPC (using recommended installation order of SP3, RDP 7.0, integration components and patch). I will be testing XP Mode and Hyper-V hosted solutions over the next week to see if I can solve it. So for now, this post enables RemoteApp between RDP7 clients (XP, Vista, Win 7, Server 2008 R2) and a Windows 7 guest VM.
What is RemoteApp?
This is used within the XP Mode within Windows 7 to provide seamless application integration where applications running under Windows XP appear as application windows floating over the Windows 7 desktop.
RemoteApp is only the remote display technology which enables this to occur. It should be noted that XP Mode also includes logic to integrate start menu items and saving of documents and files which are not covered by RemoteApp alone.
Why would you want RemoteApp?
For all those people using XP Mode to run a nicely sandboxed IE6 for testing purposes, you can now achieve exactly the same result without having to install Virtual PC. This is important if you are already running virtual machines in another platform, such as VirtualBox or VMWare Workstation (or Player) as running Virtual PC XP Mode has a habit of causing your other virtual machines to crash with very little warning.
Also, unlike XP Mode, seamless mode in VirtualBox or ‘unity’ mode in VMWare Workstation, you can use this on a non local virtual machine. So you could happily have a network server with IE6 instances pooled for all developers. With VirtualBox and VMWare Workstation this also means we can use an application on 64-bit or multi CPU installations which XP Mode does not support.
Step 1 - Configuring the guest virtual machine to allow RemoteApp access
For Windows Vista and Windows XP you will need to install updates on the guest to enable RemoteApp (see below). Windows 7 requires now such updates.
This example uses a completely clean version of Windows 7 Ultimate RTM 64-bit, dual CPU, running under VirtualBox 3.1. We are going to enable Notepad to be run as a RemoteApp. The connecting client is Windows 7 Ultimate RC 64-bit, dual CPU.
This solution involved directly editing the registry, and this is not the ideal way of enabling RemoteApp, and I have omitted numerous registry keys which would be required by XP Mode (see resources for full registry value list). This is a minimal bootstrap to enable RemoteApp until the virtualisation and remote desktop teams provide suitable tools and fully document the process.
1. Enable remote desktop connections on the guest.

2. Run regedit (registry editor) and locate the key TsAppAllowList
a) New Key, Applications.
b) Under Applications, create New Key, 1234567 (the key name is not important, we just need any key for next two steps)
c) In the new key, Create New -> String Value, Name. Set value to Notepad
d) Also in the new key, Create New -> String Value, Path. Set to c:\windows\system32\Notepad.exe

3. Navigate back to the TsAppAllowList branch
a) Edit fDisableAllowList value, and set to 1

Step 2 – Creating the RDP file to access the RemoteApp
Now the guest operating system has a RemoteApp created we need to use a Remote Desktop Connection to access that application.
1. Run remote desktop connection, setup your desired settings as you would in a normal connection
2.. Save the settings to an RDP file.
3) Use Notepad to open the RDP file to edit the configuratio
a) Modify the setting; remoteapplicationmode:i:0 to remoteapplicationmode:i:1
b) Add the setting; remoteapplicationprogram:s:Notepad
c) Save the RDP file

4. You can now use the RemoteApp by double clicking on the RDP to open with Remote Desktop Connection,
a) Click on Connect when you see the security warning

b) And after a short start to initiate the remote desktop session you will be running notepad floating over your VM

Setting a Timeout for RDP connections
When using RemoteApp one of the issues you may find is that when you exit the application that does not close the Remote session on the guest machine. This is clear on a desktop operating system as you will receive warning messages about users already being logged into the system.
Clearly this is less than ideal, so I decided to find out how to ensure that closing the application caused the user to logout in a very short time period. This is configured on the guest operating system.
1. Windows key, Edit Group Policy.
2. Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Session Host -> Session Time Limits
3.Double click 'Set time limit for disconnected sessions', change to Enabled, set to 1 Minute.
Final thought
Similar to VirtualBox seamless mode, you will not be able to move the floating guest application window between monitors, unless you save the RDP to use all monitors available. Either set this option prior to saving the RDP file, or edit the RDP setting multimon:i:1.
Summary
As the keen eyed may have spotted, my laptop is still running the Release Candidate of Windows 7 as I have been too busy recently to upgrade to the RTM version. However, over Christmas I will be upgrading the laptop to RTM and I’m glad I did, because I RemoteApp means there will be absolutely no need to install Virtual PC and XP Mode when I can just run IE6 under VMWare or VirtualBox instead.
Patches for Windows XP and Vista
To enable Windows XP SP3 or Vista SP1 (or higher) to host remote applications you will need to install one of the following patches.
Update for Windows® XP SP3 to enable RemoteApp™ (KB961742)
http://www.microsoft.com/downloads/details.aspx?FamilyID=2f376f53-83cf-4e5b-9515-2cb70662a81b&displaylang=en
Update for Windows® Vista SP1 or above to enable RemoteApp™, (KB961741)
http://www.microsoft.com/downloads/details.aspx?familyid=097B7478-3150-4D0D-A85A-6451F32C459C&displaylang=en
Resources
The original article which started all this, from Ben Armstrong, Virtualization Program Manager at Microsoft ‘Virtual PC Guy’s blog’, http://blogs.msdn.com/virtual_pc_guy/archive/2009/12/17/remoteapp-hyper-v-windows-xp-vista.aspx
.. which led to Remote Desktop Services (Terminal Services) Team Blog that revealed it’s all an RDP 7.0 thing, and not Hyper-V is just an enabling technology, http://blogs.msdn.com/rds/archive/2009/12/15/remoteapp-for-hyper-v.aspx
... as Aaron Parker suggested by including a VirtualBox example on his stealthpuppy blog, http://blog.stealthpuppy.com/virtualisation/remoteapp-for-hyper-v-hyper-what
Once I knew the TsAllowAppList registry key was involved I Bing later I found the very useful XP Mode analysis of this key at the C# Snippets blog, http://c-sharp-snippets.blogspot.com/2009/09/creating-shortcut-to-application-inside.html
And for RDP configuration file editing, I found an excellent clue in Paul Monaghan’s article here, http://support.yourofficeanywhere.co.uk/Customer/KBArticle.aspx?articleid=82
... which helped me guess that changing the remoteapplicationmode:i:0 value to 1 would help, and if you Bing remoteapplicationmode:i:1 then the careless folk at financelogix.com have kindly published their RDP file with the application name key within it, which gave me the last piece of the jigsaw.
Finally the ‘Set time limit for disconnected sessions’, example may be for Windows XP but gave enough information for Windows 7, http://howtonetworking.com/casestudy/tstimelimit1.htm