<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>knom's developer corner : Windows Vista</title><link>http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx</link><description>Tags: Windows Vista</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Custom Search Providers for Internet Explorer</title><link>http://blogs.msdn.com/knom/archive/2009/02/12/custom-search-providers-for-internet-explorer.aspx</link><pubDate>Thu, 12 Feb 2009 16:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9412664</guid><dc:creator>knom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/knom/comments/9412664.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=9412664</wfw:commentRss><description>&lt;P&gt;I’m sure all of you know the search box in Internet Explorer!&lt;/P&gt;
&lt;P&gt;You can search ANY searchable site there via pluggable search providers.&lt;/P&gt;
&lt;P&gt;Per default some of them are installed, but you can add your own!&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Here’s how to do it:&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Go to the page you want to search through.&lt;/LI&gt;
&lt;LI&gt;Search for “TEST”.&lt;/LI&gt;
&lt;LI&gt;Copy the URL of the search result page (where TEST should be in somewhere)&lt;/LI&gt;
&lt;LI&gt;Now go to the &lt;A href="http://www.microsoft.com/windows/ie/searchguide/en-uk/default.mspx" target=_blank mce_href="http://www.microsoft.com/windows/ie/searchguide/en-uk/default.mspx"&gt;Internet Explorer Search Page&lt;/A&gt; and paste the URL in the rst textbox. &lt;BR&gt;&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Choose a name and select install.&lt;/LI&gt;
&lt;LI&gt;Now you have a new search provider in the search box, which will search the wanted page (and substitute TEST with your search text). &lt;BR&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Note.. the search providers are &lt;STRONG&gt;standardized&lt;/STRONG&gt; and will work in any browser, which supports the open search specification.&lt;/P&gt;
&lt;P&gt;Note 2: Some sites are clever enough to include a search provider already!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/knom/archive/2009/02/11/ie-8-searchbar-instant-answers.aspx" target=_blank mce_href="http://blogs.msdn.com/knom/archive/2009/02/11/ie-8-searchbar-instant-answers.aspx"&gt;Read here how you can solve equations, get the current weather or other thing directly in the search box.&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9412664" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/knom/attachment/9412664.ashx" length="1306" type="application/octet-stream" /><category domain="http://blogs.msdn.com/knom/archive/tags/Personal/default.aspx">Personal</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Live/default.aspx">Windows Live</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Vista Search for Developers</title><link>http://blogs.msdn.com/knom/archive/2007/06/12/vista-search-for-developers.aspx</link><pubDate>Tue, 12 Jun 2007 10:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3205760</guid><dc:creator>knom</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/knom/comments/3205760.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=3205760</wfw:commentRss><description>&lt;P&gt;As for Vista the Windows Desktop search is now fully integrated into the OS, there are several ways to take advantage of it:&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;a) Plugin your data sources into the searchindex&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Vista search is capable of searching all kinds of file formats and storage locations. This is done via some sort of adapter concept: You need to implement a &lt;EM&gt;&lt;STRONG&gt;ProtocolHandler&lt;/STRONG&gt;&lt;/EM&gt; to plugun your custom store (like mapi, ftp, filesystem) into the search. &lt;/P&gt;
&lt;P&gt;Moreover a class implementing &lt;EM&gt;&lt;STRONG&gt;IFilter&lt;/STRONG&gt;&lt;/EM&gt; defines the logic, how to search data within your file (e.g. the file format of an outlook .PST file). Those classes should be written in C++ (without .NET) - see the &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=125283&amp;amp;SiteID=1" target=_blank mce_href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=125283&amp;amp;SiteID=1"&gt;explaination here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Links: &lt;A href="http://msdn2.microsoft.com/en-us/library/ms691105.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/ms691105.aspx"&gt;Introduction to IFilter&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/ifilter/" target=_blank mce_href="http://blogs.msdn.com/ifilter/"&gt;IFilter Blog&lt;/A&gt;, &lt;A href="http://msdn2.microsoft.com/en-us/library/Aa965720.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/Aa965720.aspx"&gt;Overview of Protocol Handlers&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;b) Consuming the searchindex&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Out of your managed application you can consume the search - meaning you can search items in the index.&lt;/P&gt;
&lt;P&gt;The search is done via an OleDbConnection with standard ADO.NET. You need to specify a special connection string:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Provider=Search.CollatorDSO;Extended Properties='Application=Windows'"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Then you can do SELECT queries, where you always need to explicitely specify the columns/properties to be selected. A nice option is searching remote indices (as long as they are running on Vista or Windows 2008 Server) by simply specifying a remote host:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;SELECT &amp;lt;properties&amp;gt;&lt;BR&gt;&amp;nbsp; FROM [machineName.]SYSTEMINDEX..SCOPE() &lt;BR&gt;[WHERE &amp;lt;predicates&amp;gt;]&lt;/EM&gt;&lt;/STRONG&gt; 
&lt;P&gt;&lt;EM&gt;SELECT "System.ItemNameDisplay", "System.Kind" FROM SYSTEMINDEX WHERE "System.Kind" like 'Music'&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Column names are written in double quotes, whereas string values in single quotes. The WHERE clause may contain the simple predicates &lt;EM&gt;LIKE,=,&amp;lt;,&amp;gt;, IS [NOT] NULL&amp;nbsp;&lt;/EM&gt;as well as the fulltext predicates &lt;EM&gt;CONTAINS &lt;/EM&gt;and &lt;EM&gt;FREETEXT&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;They both have a similar syntax: 
&lt;P&gt;&lt;EM&gt;&lt;B&gt;CONTAINS&lt;/B&gt; | &lt;B&gt;FREETEXT&lt;/B&gt; &lt;B&gt;('&lt;/B&gt;&amp;lt;searchString&amp;gt;&lt;B&gt;')&lt;/B&gt;&lt;/EM&gt; searches within the contents of items 
&lt;P&gt;&lt;EM&gt;&lt;B&gt;CONTAINS&lt;/B&gt; | &lt;B&gt;FREETEXT&lt;/B&gt; &lt;B&gt;("&lt;/B&gt;&amp;lt;column&amp;gt;"&lt;B&gt;, '&lt;/B&gt;&amp;lt;searchString&amp;gt;&lt;B&gt;')&lt;/B&gt;&lt;/EM&gt; searches within a given property 
&lt;P&gt;&lt;EM&gt;&lt;B&gt;CONTAINS&lt;/B&gt; | &lt;B&gt;FREETEXT&lt;/B&gt; &lt;B&gt;(* , '&lt;/B&gt;&amp;lt;searchString&amp;gt;&lt;B&gt;')&lt;/B&gt;&lt;/EM&gt; searches contents and all properties 
&lt;P&gt;Samples are 
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;CONTAINS&lt;/STRONG&gt;("System.FromName", '"Max Knor"')&lt;/EM&gt; 
&lt;P&gt;Use double quotes for column names, single quotes for search string, in the search string use double quotes to mark coherent words 
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;CONTAINS&lt;/STRONG&gt;("System.FromAdress", '*microsoft.com')&lt;/EM&gt; 
&lt;P&gt;Use &lt;B&gt;FREETEXT&lt;/B&gt; if you care about relevancy– it’s the only predicate that returns a meaningful rank value. (All other predicates return 0 or 1000, depending on the whether there was a match or not). (Hint: to get the rank value,&amp;nbsp;include System.Search.Rank in the select list).&lt;/P&gt;
&lt;P&gt;When querying some properties, you get back string-arrays (e.g. for System.Kind), even if they only have one value. You need to convert them to a string, to display them correctly.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt;&lt;/EM&gt; &lt;A class="" href="http://blogs.msdn.com/knom/archive/2007/06/04/vista-api-demos-with-c.aspx" mce_href="http://blogs.msdn.com/knom/archive/2007/06/04/vista-api-demos-with-c.aspx"&gt;See the demos on this topic here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3205760" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>UAC with .NET in Visual Studio 2008</title><link>http://blogs.msdn.com/knom/archive/2007/06/12/uac-with-net-in-visual-studio-2008.aspx</link><pubDate>Tue, 12 Jun 2007 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3205184</guid><dc:creator>knom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/knom/comments/3205184.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=3205184</wfw:commentRss><description>&lt;P&gt;Last time I showed you how to integrate an application manifest in to your project for UAC purposes via post-build actions.&lt;/P&gt;
&lt;P&gt;As this doesn't seem like the straightest way to do this (not just to me), Visual Studio 2008 will come with new support for application manifest files!&lt;/P&gt;
&lt;P&gt;Here are some screenshots:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=387 src="http://blogs.developpeur.org/photos/tom/images/29141/original.aspx" width=640 mce_src="http://blogs.developpeur.org/photos/tom/images/29141/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG height=411 src="http://www.bartdesmet.net/images/NewinOrcasEmbeddingVistaUACmanifestsin30_52E/image08.png" width=640 mce_src="http://www.bartdesmet.net/images/NewinOrcasEmbeddingVistaUACmanifestsin30_52E/image08.png"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3205184" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.msdn.com/knom/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category></item><item><title>VISTA User Account Control with .NET</title><link>http://blogs.msdn.com/knom/archive/2007/06/11/vista-user-account-control-with-net.aspx</link><pubDate>Mon, 11 Jun 2007 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3205138</guid><dc:creator>knom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/knom/comments/3205138.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=3205138</wfw:commentRss><description>&lt;P&gt;Before moving over to Silverlight I'll spend one last time to post some additional experiences I've had with Windows Vista Development.&lt;/P&gt;
&lt;P&gt;In this "mini-series" I'm gonna start with clearly the most well-known, most prominent and most feared features: User Account Control (UAC).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;NOTE:&lt;/EM&gt;&lt;/STRONG&gt; You can find demos to all topics covered &lt;A class="" href="http://blogs.msdn.com/knom/archive/2007/06/04/vista-api-demos-with-c.aspx" target=_blank mce_href="http://blogs.msdn.com/knom/archive/2007/06/04/vista-api-demos-with-c.aspx"&gt;here&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;As I'm sure you already know, UAC starts every application with standard user privileges, also if your current user account has administrative rights assigned. This is done for security reasons: As we developer often work as administrator (yeah! this is for real men!&amp;nbsp;;-)) it's easy for malware and spyware apps to install themselves into registry auto-startup keys and do other *very bad* things! So now with Vista, those&amp;nbsp;Apps&amp;nbsp;don't get administrative permissions, unless they explicitely request so.&amp;nbsp;*BANG*&amp;nbsp;- then UAC gets active and display a so called "elevation prompt". The user is asked for permission to grant administrative priviliges to an application.&lt;/P&gt;
&lt;P&gt;What is the impact of this UAC to "old" .NET applications ?! Let me visualize this to you in a small chart:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/VISTAUserAccountControlwith.NET_D021/UAC1.png" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/VISTAUserAccountControlwith.NET_D021/UAC1.png" atomicselection="true"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; BORDER-RIGHT-WIDTH: 0px" height=225 alt="UAC Flow" src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/VISTAUserAccountControlwith.NET_D021/UAC1_thumb.png" width=300 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/VISTAUserAccountControlwith.NET_D021/UAC1_thumb.png"&gt;&lt;/A&gt; &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;If an application doesn't do anything requiring administrative permissions (things like writing to %PROGRAMFILES%, Windows folder, or registry require so) it works the same way as it did with XP.&lt;/P&gt;
&lt;P&gt;To allow compatibility for legacy apps, there is a redirection functionality, which redirects access for "old" apps, which are NOT aware of UAC (no UAC manifest):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Folders: %ProgramFiles%; %Windir%; %Windir%\system32 --&amp;gt; to %HOMEPATH%\AppData\Local\VirtualStore 
&lt;LI&gt;Registry: HKLM\Software --&amp;gt; to HKCU\Software\Classes\VirtualStore\MACHINE\SOFTWARE&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So if a pre-Vista&amp;nbsp;application wants to write to one of these locations it is redirected to the corresponding virtual store.&lt;/P&gt;
&lt;P&gt;When reading a file, first the virtual store is looked for it, afterwards the real location!&lt;/P&gt;
&lt;P&gt;To establish UAC compliancy for your application, you need to do the following:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Add a new file called &lt;EM&gt;AssemblyName.exe.manifest&lt;/EM&gt; (the so called application manifest) to your project 
&lt;LI&gt;Insert this XML fragment into the manifest:&lt;/LI&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;xml&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;version&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="1.0" &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;encoding&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="utf-8" ?&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="urn:schemas-microsoft-com:asmv.v1"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;          &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;manifestVersion&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="1.0"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;assemblyIdentity&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;version&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8000&gt;1.0.0.0&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;" 
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;processorArchitecture&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;X86&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;App&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;Name&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;"
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;type&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;win32&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;" /&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;App Description&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;description&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;  &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;trustInfo&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="urn:schemas-microsoft.com:asm.v2"&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;    &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;security&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;      &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;requestedPrivileges&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;        &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;requestedExecutionLevel&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;level&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;asInvoker&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;" &lt;SPAN style="COLOR: rgb(255,0,0)"&gt;uiAccess&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;="&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff8040&gt;false&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;"&lt;/SPAN&gt;/&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;      &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;requestedPrivileges&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;    &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;security&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;  &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;trustInfo&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;
&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(128,0,0)"&gt;assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: rgb(0,0,255)"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;LI&gt;Modify the sections marked:&lt;/LI&gt;&lt;/OL&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;uiAccess: Your ap needs acces to &lt;EM&gt;OTHER&lt;/EM&gt; UIs (&lt;A href="http://msdn2.microsoft.com/en-us/library/ms742884.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/ms742884.aspx"&gt;see MSDN on this&lt;/A&gt;, should normally be false) 
&lt;LI&gt;requestedExecutionLevel: 
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;&lt;U&gt;requireAdministrator:&lt;/U&gt;&lt;/EM&gt; App requires administrative privileges --&amp;gt; elevation prompt will be displayed at startup 
&lt;LI&gt;&lt;EM&gt;&lt;U&gt;highestAvailable:&lt;/U&gt;&lt;/EM&gt; If user is in admin group, start with elevated privileges, else with default privileges 
&lt;LI&gt;&lt;EM&gt;&lt;U&gt;asInvoker:&lt;/U&gt;&lt;/EM&gt; Always run with default privileges&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp; &amp;nbsp;Either copy the application manifest into the executable's directory or&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;embed it into the executable this way:&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;Go to the project properties - Build&lt;/LI&gt;
&lt;LI&gt;Add this line to post build actions:&lt;/LI&gt;
&lt;P&gt;&lt;EM&gt;"$(DevEnvDir)..\..\SDK\v2.0\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest" –outputresource:"$(TargetDir)$(TargetFileName)";#1&lt;/EM&gt;&lt;/P&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;Now your application is UAC aware, redirection is disabled! That way, if you start the application without administrative privileges, you'll get an &lt;EM&gt;UnauthorizedException&lt;/EM&gt; if you write to one of the administrative locations mentioned above.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Note:&lt;/U&gt;&lt;/STRONG&gt; You cannot elevate an already running process. Thus you should refactor your app to be seperated into admin &amp;amp; non-admin operations - running the default application wiht normale privileges and starting another elevated process for each administrative operation! Another option is using an elevated COM object (&lt;A href="http://blogs.msdn.com/uac/archive/2006/07/06/658597.aspx" target=_blank mce_href="http://blogs.msdn.com/uac/archive/2006/07/06/658597.aspx"&gt;see UAC-Blog&lt;/A&gt;&amp;nbsp;for details).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3205138" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Transparent Silverlight Sidebar Gadget</title><link>http://blogs.msdn.com/knom/archive/2007/06/06/my-first-silverlight-sidebar-gadget.aspx</link><pubDate>Wed, 06 Jun 2007 11:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3112613</guid><dc:creator>knom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/knom/comments/3112613.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=3112613</wfw:commentRss><description>&lt;P&gt;To prove the use of Silverlight in Vista Sidebar Gadgets, I recently created a really simple, but good looking ;-) Sidebar Gadget with a Silverlight App embedded!&lt;/P&gt;
&lt;P&gt;Here is what it looks like:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" alt=image src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image_thumb.png" border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Don't bother about the pink animal watch ;-) The gadget basically consists of three circles which are moving around in a weird way!&lt;/P&gt;
&lt;P&gt;To build the Silverlight App I used &lt;A href="http://go.microsoft.com/fwlink/?LinkID=79076&amp;amp;clcid=0x409" target=_blank mce_href="http://go.microsoft.com/fwlink/?LinkID=79076&amp;amp;clcid=0x409"&gt;Expression Blend 2 May preview&lt;/A&gt; and Silverlight animations (took me about 2 minutes).&lt;/P&gt;
&lt;P&gt;The most trickiest part was implementing transparency:&lt;/P&gt;
&lt;P&gt;First I wanted to create a gadget with semi-transparent ellipses (to do some kind of color-overlay/mix). This worked well, as long as it happened within Silverlight. Problems occurred with transparency outside of Silverlight, meaning the sidebar/desktop shining through.&lt;/P&gt;
&lt;P&gt;Finally I found the trick, how to do it (thanks to Karsten Januszewsky):&lt;/P&gt;
&lt;P&gt;What you need to do is insert a &amp;lt;g:background..&amp;gt; tag into your gadget HTML file. This special tag is supported by the Sidebar and allows you to specify a background image for the gadget.&lt;/P&gt;
&lt;P&gt;So what I did is set the background image to an entirely transparent PNG file the same size as the gadget.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;lt;g:background src="bg.png" id="Bg" style="position:absolute;width:130px;height:130px;z-index:-1"/&amp;gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This way, if you set the background brush of&amp;nbsp;the root-canvas to transparent you'll see the background of the sidebar/desktop shine through!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image_2.png" atomicselection="true"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=215 alt=image src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/MyfirstSilverlightSidebarGadget_96DB/image_thumb_2.png" width=416 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;One problem still left is caused by Anti-Aliasing. This technique smoothes the borders of graphical elements like here the ellipses. So the borders don't get purely yellow or red, but a mixture of both. &lt;/P&gt;
&lt;P&gt;Unfortunately because of the hack to host silverlight in a webpage and that page in the gadget, it seems to use Magenta as transparency mask color in this case. So some pixels, mixed with yellow or red are not removed.&lt;/P&gt;
&lt;P&gt;Right now, this can only be solved by designing a non-anti-aliased UI or using some background color!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;[Update] &lt;A class="" href="http://blogs.msdn.com/knom/archive/2007/08/08/silverlight-1-1-updates-on-vista-gadgets.aspx" mce_href="http://blogs.msdn.com/knom/archive/2007/08/08/silverlight-1-1-updates-on-vista-gadgets.aspx"&gt;Also read the updated versions for Silverlight 1.1 here (updated sample is attached there)!&lt;/A&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3112613" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/knom/attachment/3112613.ashx" length="6659" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.msdn.com/knom/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Vista API Demos with C#</title><link>http://blogs.msdn.com/knom/archive/2007/06/04/vista-api-demos-with-c.aspx</link><pubDate>Mon, 04 Jun 2007 19:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3083071</guid><dc:creator>knom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/knom/comments/3083071.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=3083071</wfw:commentRss><description>&lt;P&gt;Last week I was "On-Tour" at local Usergroups in Vorarlberg (Dornbirn) and Tyrol (Innsbruck).&lt;/P&gt;
&lt;P&gt;I did one of my last presentations of Windows Vista Development! (Meaning NOT .NET 3.0, but unmanaged APIs, like those already posted on my blog).&lt;/P&gt;
&lt;P&gt;Thanks for everyone, who joined me!&lt;BR&gt;For everyone else - the Topics included:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;User Account Control&lt;/LI&gt;
&lt;LI&gt;Windows Error Reporting, Restart &amp;amp; Recovery API&lt;/LI&gt;
&lt;LI&gt;Vista UI Look &amp;amp; Feel&lt;/LI&gt;
&lt;LI&gt;Search&lt;/LI&gt;
&lt;LI&gt;Network List Manager&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Here is the presentation as well as the demos!&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdnat.members.winisp.net/downloads/Vista_Usergroup.zip" target=_blank mce_href="http://msdnat.members.winisp.net/downloads/Vista_Usergroup.zip"&gt;Presentation&lt;/A&gt;&amp;nbsp;(4,55 MB) 
&lt;LI&gt;&lt;A href="http://msdnat.members.winisp.net/downloads/Knom-Vista-Demos.zip" target=_blank mce_href="http://msdnat.members.winisp.net/downloads/Knom-Vista-Demos.zip"&gt;Demos&lt;/A&gt;&amp;nbsp;(3,82 MB)&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3083071" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Work/default.aspx">Work</category><category domain="http://blogs.msdn.com/knom/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>UAC Elevation for MSI Packages</title><link>http://blogs.msdn.com/knom/archive/2007/04/27/uac-elevation-for-msi-packages.aspx</link><pubDate>Fri, 27 Apr 2007 18:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2300224</guid><dc:creator>knom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/knom/comments/2300224.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=2300224</wfw:commentRss><description>&lt;P&gt;It has been serveral times now, that I tried to install an MSI package and occurred some strange error! The reason for this... yes Vista User Account Control!&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=261 alt=image src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_thumb.png" width=322 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;Unfortunately MSI Packages do not elevate automatically, and it's also hard to elevate them by hand (there is no Run As Administrator menu or anything else..)&lt;/P&gt;
&lt;P&gt;So I thought of ways, how to elevate MSI packages..&lt;/P&gt;
&lt;P&gt;The easiest way, open up an elevated&amp;nbsp;command prompt and&amp;nbsp;run&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;MSIEXEC /i myMSI.msi&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The problem.. I'm a lazy guy! This is much too hard for me :-)&lt;/P&gt;
&lt;P&gt;So I found another way: Just create you custom elevation Context-Menu:&lt;/P&gt;
&lt;P&gt;To do this, you need to open regedit, and create a new key under &lt;STRONG&gt;&lt;EM&gt;HKEY_Classes_Root\Msi.Package\shell\&lt;/EM&gt;&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;I called this key &lt;EM&gt;&lt;STRONG&gt;RunAs&lt;/STRONG&gt;&lt;/EM&gt;. Select the key and set its default value to the title of the context menu (like "Install &amp;amp;as administrator").&lt;/P&gt;
&lt;P&gt;Create a subkey &lt;STRONG&gt;&lt;EM&gt;HKEY_Classes_Root\Msi.Package\shell\RunAs\command&lt;/EM&gt;&lt;/STRONG&gt; and set its default value to &lt;STRONG&gt;&lt;EM&gt;msiexec /i "%1"&lt;/EM&gt;&lt;/STRONG&gt; !&lt;/P&gt;
&lt;P&gt;Voila!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_2.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=92 alt=image src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_thumb_2.png" width=223 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/UACElevationforMSIPackages_EF3F/image_thumb_2.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2300224" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>BigDays Demos and Links</title><link>http://blogs.msdn.com/knom/archive/2007/04/12/bigdays-demos-und-links.aspx</link><pubDate>Thu, 12 Apr 2007 13:03:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2097849</guid><dc:creator>knom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/knom/comments/2097849.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=2097849</wfw:commentRss><description>&lt;p&gt;Yesterday was the final spurt of our Big&amp;gt;Days 2007 Roadshow!&lt;br&gt;One day of sessions&amp;nbsp; in Vienna's "Austria Convention Center"!&lt;/p&gt; &lt;p&gt;At the same time as our conference, there were official exams for financial inspectors - which resulted in a funny incident:&lt;/p&gt; &lt;p&gt;As I left the session-room, after having tested my laptop a girl entered and asked me: "Have you already started ?!" - I answered.. "No we'll start in about 1 hour!" - "Aah-said the girl - can I enter?! I guess you haven't passed out the exam sheets?!" .. Exam sheets ?! I thought.. Then I realized that she was looking for the inspector's exams :-)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So anyway.. If you are interested in the presentation-slides and demos, here they are (in German):&lt;/p&gt; &lt;p&gt;User Experience, Web 2.0 und Windows Vista - &lt;a href="http://msdnat.members.winisp.net/BigDays/Track3_session1_Vista_UX_Web20.pdf" target="_blank"&gt;Slides&lt;/a&gt;&amp;nbsp;- &lt;a href="http://msdnat.members.winisp.net/BigDays/Vista-Demos.zip" target="_blank"&gt;Demos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Windows Presentation Foundation - &lt;a href="http://msdnat.members.winisp.net/BigDays/Track3_session4_WPF.pdf" target="_blank"&gt;Slides&lt;/a&gt; - &lt;a href="http://msdnat.members.winisp.net/BigDays/WPF-Demos.zip" target="_blank"&gt;Demos&lt;/a&gt;&lt;/p&gt; &lt;p&gt;XBOX Game Development with XNA - &lt;a href="http://msdnat.members.winisp.net/BigDays/Track3_session3_XNA.pdf" target="_blank"&gt;Slides&lt;/a&gt; - &lt;a href="http://msdnat.members.winisp.net/BigDays/XNA-Demos.zip" target="_blank"&gt;Demos&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2097849" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Clean Up the Vista Networks</title><link>http://blogs.msdn.com/knom/archive/2007/03/27/clean-up-the-vista-networks.aspx</link><pubDate>Tue, 27 Mar 2007 11:00:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1946760</guid><dc:creator>knom</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/knom/comments/1946760.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=1946760</wfw:commentRss><description>&lt;p&gt;In my last post I wrote about the Vista Network List Manager! If you ran the sample, I attached you might see a lot of "old" networks still stored on your machine! (like some WLANs at hotels, ...) I was wondering how to clean up the list of networks and remove those "Network 1...2..3...11..". I&amp;nbsp;played around a little bit and found a way to do it:&lt;/p&gt; &lt;p&gt;Go to the Control Panel and select "Network and Sharing Center":&lt;a href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image%5B5%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="229" src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image_thumb%5B5%5D.png" width="400" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;There pick the Customize Link below the connection map graphics.&lt;/p&gt; &lt;p&gt;Then choose "Merge or delete network locations".&lt;a href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image%5B6%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="295" src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image_thumb%5B6%5D.png" width="400" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In the following dialog you can see all remembered networks, as well as delete any of them or merge two or more (for instance if the network detection somehow failed to detect them as one network).&lt;a href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image%5B7%5D.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="363" src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/CleanUptheVistaNetworks_CC4F/image_thumb%5B7%5D.png" width="300" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;By using this you can get rid of unused Networks like "Marriott Bregenz WLAN" or others..&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1946760" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Vista Network List Manager</title><link>http://blogs.msdn.com/knom/archive/2007/03/26/vista-network-list-manager.aspx</link><pubDate>Mon, 26 Mar 2007 11:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1943511</guid><dc:creator>knom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/knom/comments/1943511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=1943511</wfw:commentRss><description>&lt;P&gt;Another new feature I came across is called "Network List Manager"!&lt;/P&gt;
&lt;P&gt;This new COM Type Library allows you to enumerate all available networks or network interfaces and read or even write extended properties of those.&lt;/P&gt;
&lt;P&gt;To use the new API, you need to add a COM reference to the "Network List Manager 1.0 Type Library" to your project.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B9%5D.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B9%5D.png"&gt;&lt;IMG height=328 src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B9%5D.png" width=400 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B9%5D.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;After doing that,&amp;nbsp;you can instantiate a &lt;EM&gt;NetworkListManagerClass&lt;/EM&gt; as an entry to the NLM API.&lt;/P&gt;&lt;PRE class=csharpcode&gt;NETWORKLIST.NetworkListManagerClass _networkListManager = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; NetworkListManagerClass();&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/STYLE&gt;

&lt;P&gt;On the newly created object, there are a bunch of events, which get fired if the network connectivity or any other properties of a network change, as well as a lot of methods..&lt;/P&gt;
&lt;P&gt;To understand what they do you need to differentiate networks and network-connections:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Network Connections &lt;EM&gt;(INetworkConnection)&lt;/EM&gt; represent unique connections to a network.&amp;nbsp;There can be multiple connections to a single network. 
&lt;LI&gt;Every computer can be connected to several Networks (&lt;EM&gt;INetwork)&lt;/EM&gt; over multiple Network Connections.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To build a simple online/offline sensing application you can subscribe the &lt;EM&gt;ConnectivityChanged&lt;/EM&gt; event, which monitors the overall connectivity property of ALL networks. But you could also be notified if a single network connectivity changes..&lt;/P&gt;&lt;PRE class=csharpcode&gt;_networkListManager.ConnectivityChanged += &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; &lt;BR&gt;    INetworkListManagerEvents_ConnectivityChangedEventHandler(ConnectivityChanged);&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/STYLE&gt;

&lt;P&gt;After attaching the event handler you can access the &lt;EM&gt;NLM_CONNECTIVITY&lt;/EM&gt; enumeration value of the delegate to determine the computer's new connectivity:&lt;BR&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B11%5D.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B11%5D.png"&gt;&lt;IMG height=137 src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B11%5D.png" width=240 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B11%5D.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;Another possible way is querying the NetworkListManager's properties:&lt;/P&gt;&lt;PRE class=csharpcode&gt; &lt;SPAN class=kwrd&gt;bool&lt;/SPAN&gt; connected = _networkListManager.IsConnected;
 &lt;SPAN class=kwrd&gt;bool&lt;/SPAN&gt; internet = _networkListManager.IsConnectedToInternet;&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/STYLE&gt;

&lt;P&gt;If you want to find out more information about a network or a network connection use on of the two ways to iterate through them:&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;foreach&lt;/SPAN&gt;(INetworkConnection c &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; 
   _networkListManager.GetNetworkConnections())
{
}&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/STYLE&gt;

&lt;P&gt;or&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;foreach&lt;/SPAN&gt; (INetwork n &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; _networkListManager.GetNetworks(
   NLM_ENUM_NETWORK.NLM_ENUM_NETWORK_ALL))
{
}&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/STYLE&gt;

&lt;P&gt;where you can chose the type of network (connected, disconnected, all) with the &lt;EM&gt;NLM_ENUM_NETWORK&lt;/EM&gt; enumeration.&lt;/P&gt;
&lt;P&gt;After having queried for a specific network (directly or via the connection) you can access several properties like the name, description, category (vista categories: public, private, work/domain), connectivity (none, IPv4, IPv6, Intranet, Internet, ...) or even set the name and description of it.&lt;/P&gt;
&lt;P&gt;Caution: You cannot use the &lt;EM&gt;NetworkListManagerClass&lt;/EM&gt; over different threads, but only out of the thread, which instantiated it!&lt;/P&gt;
&lt;P&gt;If you like to, you can download an attached sample below!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B15%5D.png" atomicselection="true" mce_href="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image%5B15%5D.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=266 src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B15%5D.png" width=500 border=0 mce_src="http://blogs.msdn.com/blogfiles/knom/WindowsLiveWriter/a9c2d145837c_102DA/image_thumb%5B15%5D.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1943511" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/knom/attachment/1943511.ashx" length="11211" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Vista Command Link Control with C# / Windows Forms</title><link>http://blogs.msdn.com/knom/archive/2007/03/12/command_5F00_link.aspx</link><pubDate>Mon, 12 Mar 2007 10:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1860481</guid><dc:creator>knom</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/knom/comments/1860481.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=1860481</wfw:commentRss><description>How to write a wrapper control for Windows Vista command links in Windows Forms / C#....(&lt;a href="http://blogs.msdn.com/knom/archive/2007/03/12/command_5F00_link.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1860481" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/knom/attachment/1860481.ashx" length="3222" type="text/plain" /><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>[Update] Big&gt;Days 2007</title><link>http://blogs.msdn.com/knom/archive/2007/03/11/update-big-days-2007.aspx</link><pubDate>Sun, 11 Mar 2007 22:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1860510</guid><dc:creator>knom</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/knom/comments/1860510.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=1860510</wfw:commentRss><description>&lt;P&gt;Hi!&lt;/P&gt;
&lt;P&gt;Last week we tested our session in a 5pm - 11pm rehearsal.. Unfortunately we've found out: it is far too long. Unless you don't care spending &amp;gt; 2 hours we should shorten it up a little. So here's the plan: I threw out the UI and UAC stuff (I will post an entry on the UI stuff details tomorrow, so it's not lost) and Andreas will cut down the gadget demos to the really gadget specific parts!&lt;/P&gt;
&lt;P&gt;So finally we will show: Gadgets, Vista Search Integration, Windows Error Reporting - also giving an overview of Vista Development in general and Web 2.0 / UX (and how gadgets can help to establish this).&lt;/P&gt;
&lt;P&gt;This should fit into 70 minutes (although there will be little extra time left..)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1860510" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Work/default.aspx">Work</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>SQL Server User Provisioning Tool for Vista</title><link>http://blogs.msdn.com/knom/archive/2007/03/02/sql-server-user-provisioning-tool-for-vista.aspx</link><pubDate>Fri, 02 Mar 2007 15:35:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1787205</guid><dc:creator>knom</dc:creator><slash:comments>14</slash:comments><comments>http://blogs.msdn.com/knom/comments/1787205.aspx</comments><wfw:commentRss>http://blogs.msdn.com/knom/commentrss.aspx?PostID=1787205</wfw:commentRss><description>&lt;p&gt;After installing SQL Server 2005 or Express on Windows Vista you may have noticed, that your user accounts (even though being in the local computer's administrators group) are not allowed to connect to the SQL Server. Which is bad if you're not running in Mixed Mode...&lt;/p&gt; &lt;p&gt;With the &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/servicepacks/sp2.mspx" target="_blank"&gt;newly released Service Pack 2&lt;/a&gt; for SQL Server and SQL Express there is a new tool available called "User Provisioning Tool for Vista" &lt;br&gt;(%ProgramFiles%\Microsoft SQL Server\90\Shared\sqlprov.exe).&lt;/p&gt; &lt;p&gt;This tool is automatically launched on upgrade (but can be started manually as well, if any errors occur at the first time). The small app tells us that, even if users are in the local administrator group, the don't have admin access to SQL Server for security reasons under Vista. You can use this tool to explicitly grant admin permissions to the current user (if it is in the local admin group).&lt;/p&gt; &lt;p&gt;God bless this tool :-) Now I am able to login again...&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1787205" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/knom/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/knom/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item></channel></rss>