<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Huddled Masses &#187; Windows 7</title>
	<atom:link href="http://joelbennett.net/tag/windows-7/feed/" rel="self" type="application/rss+xml" />
	<link>http://joelbennett.net</link>
	<description>The internet home of Joel "Jaykul" Bennett...</description>
	<lastBuildDate>Sat, 28 Jan 2012 21:37:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<cloud domain='joelbennett.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>WPF Window “Native” Behavior: Metro Window</title>
		<link>http://joelbennett.net/wpf-metro-windows/</link>
		<comments>http://joelbennett.net/wpf-metro-windows/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 03:22:25 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Custom Chrome]]></category>
		<category><![CDATA[Metro]]></category>
		<category><![CDATA[PInvoke]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1563</guid>
		<description><![CDATA[A couple of years ago I first introduced my native behaviors for WPF to support enhancing WPF applications with behaviors that require PInvoke or hooking the Window&#8217;s message processing loop: WndProc. You can read all about it on my previous posts, including the original implementations of my Snap To Screen Edges behavior, and my Custom [...]]]></description>
			<content:encoded><![CDATA[	<p>A couple of years ago I first introduced my <a href="http://huddledmasses.org/wpf-window-native-behaviors/">native behaviors for WPF</a> to support enhancing <span class="caps">WPF</span> applications with behaviors that require PInvoke or hooking the Window&#8217;s message processing loop: WndProc.  You can read all about it on my previous posts, including the original implementations of my <a href="http://huddledmasses.org/wpf-windows-that-snap-to-screen-edges/">Snap To Screen Edges</a> behavior, and my Custom Chrome for creating windows with buttons on the Aero glass frame like ribbon apps or all those new browsers &#8230;</p>

	<p>However, I&#8217;m writing today because I went back this week to revisit that project because I wanted a &#8220;Metro&#8221; style Window &#8212; basically, something like the Zune client window.</p>

	<p>As I was reviewing it, I discovered <a href="http://msdn.microsoft.com/en-us/library/system.windows.interactivity%28Expression.40%29.aspx">System.Windows.Interactivity</a> class which came out of Expression Blend, and includes the functionality of my NativeBehaviors attached property with regards to allowing you create new behaviors for <span class="caps">WPF</span> elements &#8230; and of course, despite being newer, their system has much broader support than mine  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';-)' class='wp-smiley' /> </p>

	<p>So anyway &#8230; long story short: I&#8217;ve rewritten my behaviors on top of <a href="http://msdn.microsoft.com/en-us/library/ff726531%28Expression.40%29.aspx">System.Windows.Interactivity.Behavior<T></a> and written a MetroWindow behavior that makes my PowerBoots application look roughly like this:</p>

	<a href="http://joelbennett.net/wordpress/wp-content/uploads/2010/11/PoshConsole_Metro.png"><img src="http://joelbennett.net/wordpress/wp-content/uploads/2010/11/PoshConsole_Metro-298x300.png" alt="PoshConsole with the MetroWindow behavior" title="PoshConsole_Metro" width="298" height="300" class="size-medium wp-image-1565" /></a>

	<p>I&#8217;m really pleased with the results, and while I was at it I finally fixed a weird glitch in the Snap-To behavior when using the Win+Left or Win+Right keys in Windows 7 to move the window docked from the left of one monitor to the right side of another (or vice versa), and of course this also includes the global hotkeys behavior, and my Quake-console behavior  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=':)' class='wp-smiley' />  The code to make add the MetroWindow behavior along with the SnapTo would be just:</p>

	<div class="xaml code xaml" style="font-family:monospace;"><br />
&nbsp; &nbsp; &lt;i:Interaction.Behaviors&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;huddled:MetroWindow CaptionHeight=&quot;58&quot; ButtonSize=&quot;20&quot; /&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;huddled:SnapToBehavior SnapDistance=&quot;22&quot; SnapMargin=&quot;18&quot; /&gt;<br />
&nbsp; &nbsp; &lt;/i:Interaction.Behaviors&gt;<br />
&nbsp;</div>

	<p>I&#8217;ll write this up a bit more later when I&#8217;m ready to release PoshConsole and the revised Quake behavior, for now you&#8217;ll have to be content with the screenshots, unless you want to <a href="http://poshconsole.codeplex.com/SourceControl/list/changesets">grab source code</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/wpf-metro-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerShell Module Manifests Tip: allowed cmdlets and variables</title>
		<link>http://joelbennett.net/powershell-module-manifests-tip-allowed-cmdlets-and-variables/</link>
		<comments>http://joelbennett.net/powershell-module-manifests-tip-allowed-cmdlets-and-variables/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 02:56:58 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Manifest]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Modules]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1394</guid>
		<description><![CDATA[I was under the impression that module manifests allow only DATA stuff. In fact, if you try to use cmdlets or variables in them, you get the usual Data-language errors, like this: Import-Module : The module manifest &#8216;C:\Modules\Test\Test.psd1&#8217; could not be processed because it is not a valid PowerShell restricted language file. Please remove the [...]]]></description>
			<content:encoded><![CDATA[	<p>I was under the impression that module manifests allow only <span class="caps">DATA</span> stuff. In fact, if you try to use cmdlets or variables in them, you get the usual Data-language errors, like this:</p>

	<p><code style="color: red; margin-left: 10px;"></code><p>Import-Module : The module manifest &#8216;C:\Modules\Test\Test.psd1&#8217; could not be processed because it is not a valid PowerShell restricted language file. Please remove the elements that are not permitted by the restricted language: The command &#8216;Get-ChildItem&#8217; is not in allowed in restricted language mode or a Data section.</p><br />
<p>Import-Module : The module manifest &#8216;C:\Modules\Test\Test.psd1&#8217; could not be processed because it is not a valid PowerShell restricted language file. Please remove the elements that are not permitted by the restricted language: A variable that cannot be referenced in restricted language mode or a Data section is being referenced. Variables that can be referenced include the following: $PSCulture, $PSUICulture, $true, $false, and $null.</p></p>

	<p><span class="caps">BUT</span> <span class="caps">THEN</span> I came across this in the Windows 7 built-in BitsTransfer module:</p>

	<p>RequiredAssemblies=Join-Path $psScriptRoot &#8220;Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll&#8221;</p>

	<p><span class="caps">AND</span> IT WORKS?!</p>

	<p>Well, that&#8217;s very weird, because <code>Join-Path</code> is certainly not allowed in a normal &#8220;restricted language&#8221; file, and (as you can tell from above) neither is <code>$PsScriptRoot</code> &#8212; in fact, as far as I know, you shouldn&#8217;t have to do that at all, since RequiredAssemblies knows enough to look in your module folder&#8230; but nevermind that, why does it work?</p>

	<h3>The Rest of the Story</h3>

	<p>So I went digging, and it turns out that although they are parsed as Restricted Language (like a &#8220;data section,&#8221; see <a href="http://technet.microsoft.com/en-us/library/dd347678.aspx">about_Data_Sections</a>), module manifests are allowed extra cmdlets:  &#8220;Import-LocalizedData&#8221;, &#8220;ConvertFrom-StringData&#8221;, &#8220;Write-Host&#8221;, &#8220;Out-Host&#8221;, &#8220;Join-Path&#8221; and even special variables that aren&#8217;t normally allowed in data sections: specifically $PsScriptRoot which is the ModuleBase (the parent folder of the psd1) and environment variables ($Env:), plus the usual $PSCulture, $PSUICulture, and of course $true, $false, and $null.</p>

	<p>However, although you can use those variables, you can&#8217;t embed them in strings, so if you wanted to use <code>$Env:Windir</code> or <code>$Env:Temp</code> as part of a path (for instance), you need to take advantage of the availability of <code>Join-Path</code>.</p>

	<p>Now, I can&#8217;t find this documented anywhere (although I did add it to the <a href="http://msdn.microsoft.com/en-us/library/dd878337%28VS.85%29.aspx">module manifest documentation on MSDN</a>), but it&#8217;s true, nonetheless &#8212; you&#8217;ll just have to trust me  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=':)' class='wp-smiley' />  Yeah, PowerShell is starting to drive me crazy again.</p>

<h6 class="zemanta-related-title">Related articles by Zemanta</h6><ul class="zemanta-article-ul"><li class="zemanta-article-ul-li"><a href="http://huddledmasses.org/a-question-about-powershell-module-manifests/">A question about PowerShell Module Manifests</a> (huddledmasses.org)</li><li class="zemanta-article-ul-li"><a href="http://huddledmasses.org/another-module-manifest-gotcha/">Another Module Manifest Gotcha</a> (huddledmasses.org)</li></ul>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/4ca92c55-78cf-49bf-9cd4-a02adb78774d/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=4ca92c55-78cf-49bf-9cd4-a02adb78774d" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/powershell-module-manifests-tip-allowed-cmdlets-and-variables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Compatability Libraries Galore (including PowerShell 2 for XP)</title>
		<link>http://joelbennett.net/windows-compatability-libraries-powershell-2-for-xp/</link>
		<comments>http://joelbennett.net/windows-compatability-libraries-powershell-2-for-xp/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 15:50:04 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[licensing]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1272</guid>
		<description><![CDATA[Microsoft has been very busy this year &#8230; and in these last couple of months before the general availability of Windows 7, they&#8217;re trying very hard to crank out the tools necessary to encourage development of Windows 7 applications. The first tool out of the gate, of course, was the Windows API Code Pack for [...]]]></description>
			<content:encoded><![CDATA[	<p>Microsoft has been very busy this year &#8230; and in these last couple of months before the general availability of Windows 7, they&#8217;re trying very hard to crank out the tools necessary to encourage development of Windows 7 applications.</p>

	<p>The first tool out of the gate, of course, was the <a href="http://code.msdn.microsoft.com/WindowsAPICodePack">Windows <span class="caps">API</span> Code Pack</a> for the .Net framework.  A nice library that makes it simple to write applications that take advantage of new Windows Vista and Windows 7 features like Libraries, Task panes and jump lists.  Of course, that library has a <strong>major</strong> problem: it&#8217;s got an ugly and confusing license. Rather than using one of the standard Microsoft Open Source Licenses, the team used a license from the dark ages that features the vague &#8220;Excluded Licenses&#8221; clause and other ugly terminology.</p>

	<p>More recently, Microsoft has announced a <strong>Platform Update for Vista</strong> which is intended to allow Vista to run most applications designed for Windows 7. The Platform Update is a set of runtime libraries which includes the Windows Ribbon control; Automation Manager Library; DirectX updates for hardware acceleration; DirectCompute for hardware-accelerated parallel computing support; the <span class="caps">XPS</span> printing library; the Windows Automation API; and the Windows Portable Devices Platform, which standardizes data transfers across apps and portable devices.  This important package will be made available through Windows Update (and applications will be able to prompt you to download it) and it is <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=081c218f-c845-47d1-b124-71f80bf21638">in public beta</a> with <a href="http://windowsteamblog.com/blogs/windows7/archive/2009/09/10/announcing-new-tools-for-it-professionals-amp-developers-transitioning-to-windows-7.aspx">more information on the Windows Team blog</a>.  A couple of pieces of that will be made available for Windows XP; particularly the Automation <span class="caps">API</span>, which allows accessibility tools and test automation tools to access Windows user interface in a consistent way &#8212; this will mean that the next release of <a href="http://wasp.codeplex.com">WASP</a> will work flawlessly across Windows XP, Vista, and Windows 7.</p>

	<p>Also in the works is the <strong>Remote Desktop Connection 7.0</strong> (RDC7) client for Windows XP and Windows Vista to allow these older clients to take advantage of all new server features in Windows 7 and Windows Server 2008, including multi-monitor support and media redirection. There&#8217;s <a href="http://blogs.msdn.com/rds/archive/2009/08/21/remote-desktop-connection-7-for-windows-7-windows-xp-windows-vista.aspx">more information about that on the Remote Desktop team blog</a>.</p>

	<p>And finally, the release candidate for the <a href="https://connect.microsoft.com/windowsmanagement/Downloads">Windows Management Framework</a> (<span class="caps">WMF</span>) is also available. The <span class="caps">WMF</span> will include WinRM (Microsoft&#8217;s implementation of the WS-Management spec), PowerShell 2.0, and <acronym title="	Background Intelligent Transfer Service">BITS</acronym> for Server 2008, Windows Vista, Server 2003, and of course, Windows XP.  This means that if you&#8217;re on Vista, or still using Windows XP, you can now upgrade from the PowerShell 2.0 <span class="caps">CTP</span> 3 to this release candidate and expect remoting to work!</p>

	<p>All of these should be seeing final releases in the very near future, and some of them possibly by the time Windows 7 is released to the public.</p>

<h6 class="zemanta-related-title">Related articles by Zemanta</h6><ul class="zemanta-article-ul"><li class="zemanta-article-ul-li"><a href="http://www.downloadsquad.com/2009/08/27/make-a-bootable-usb-installer-for-windows-xp-vista-7-with-wint/">Make a bootable <span class="caps">USB</span> installer for Windows XP, Vista, 7 with WinToFlash</a> (downloadsquad.com)</li><li class="zemanta-article-ul-li"><a href="http://r.zemanta.com/?u=http%3A//www.infoworld.com/d/windows/microsoft-intel-build-fast-efficient-windows-7-machines-107%3Fsource%3Drss_infoworld_news&amp;a=7369232&amp;rid=4ead389d-07aa-4ec7-b077-ab697671869f&amp;e=fe20c64bed88033a7fa1d59661073792">Microsoft, Intel build fast, efficient Windows 7 machines</a> (infoworld.com)</li><li class="zemanta-article-ul-li"><a href="http://techblissonline.com/free-windows-7/">Free Windows 7 Upgrade</a> (techblissonline.com)</li><li class="zemanta-article-ul-li"><a href="http://r.zemanta.com/?u=http%3A//www.infoworld.com/d/windows/users-abandon-xp-vista-windows-7-062%3Fsource%3Drss_infoworld_news&amp;a=7369241&amp;rid=4ead389d-07aa-4ec7-b077-ab697671869f&amp;e=15525dcfe2606a7bce437222e8e50c1a">Users abandon XP for Vista, Windows 7</a> (infoworld.com)</li><li class="zemanta-article-ul-li"><a href="http://huddledmasses.org/fun-with-pinvoke-and-aero-peek/">Fun with PInvoke and Aero Peek</a> (huddledmasses.org)</li><li class="zemanta-article-ul-li"><a href="http://news.cnet.com/8301-13860_3-10347289-56.html?part=rss&amp;subj=news">Microsoft: Windows 7 not affected by latest flaw</a> (news.cnet.com)</li></ul>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/4ead389d-07aa-4ec7-b077-ab697671869f/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=4ead389d-07aa-4ec7-b077-ab697671869f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/windows-compatability-libraries-powershell-2-for-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s new in PowerShell 2?</title>
		<link>http://joelbennett.net/whats-new-in-powershell-2/</link>
		<comments>http://joelbennett.net/whats-new-in-powershell-2/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 03:42:42 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1264</guid>
		<description><![CDATA[Image via Wikipedia I gave a presentation at the upstate New York PowerShell user group last night about the new stuff in PowerShell 2 &#8212; giving it really made me think about how I&#8217;m just so used to PowerShell 2 that I&#8217;ve forgotten about how much of it is new in this version &#8212; and [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img"><div><dl class="wp-caption alignright"><dt class="wp-caption-dt"><a href="http://en.wikipedia.org/wiki/Image:Windows_PowerShell_icon.png"><img src="http://upload.wikimedia.org/wikipedia/en/7/7f/Windows_PowerShell_icon.png" alt="Windows PowerShell" title="Windows PowerShell" /></a></dt><dd class="wp-caption-dd zemanta-img-attribution">Image via <a href="http://en.wikipedia.org/wiki/Image:Windows_PowerShell_icon.png">Wikipedia</a></dd></dl></div></div>

	<p>I gave a presentation at the <a href="http://upnypug.wordpress.com">upstate New York PowerShell user group</a> last night about the new stuff in PowerShell 2 &#8212; giving it really made me think about how I&#8217;m just so used to PowerShell 2 that I&#8217;ve forgotten about how much of it is new in this version &#8212; and how cool each of these new things are.  In fact, in my list of 7 areas that I talked about, I bet we could find a PowerShell <span class="caps">MVP</span> for at least each of the top 6 that would be willing to argue for <i>that one</i> being the <i>most important</i> new feature in PowerShell 2  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';)' class='wp-smiley' /> </p>

	<p>Having said that, below is the text from my slides &#8230; my personal &#8220;highlights&#8221; of what&#8217;s new in PowerShell 2.</p>

<h1>What’s New In PowerShell 2?</h1>

<h2><a href="#advanced">Advanced Functions</a></h2>
<h2><a href="#modules">Modules</a></h2>
<h2><a href="#help">Help</a></h2>
<h2><a href="#remoting">Remoting</a></h2>
<h2><a href="#eventing">Eventing</a></h2>
<h2><a href="#ise">Integrated Script Editor (debugging)</a></h2>
<h2><a href="#transactions">Transaction support</a></h2>
<h2><a href="#etc">… and more</a></h2>

<h1><a name="advanced"></a>Advanced Functions</h1>

<ul>
	<li><h2>Parameter parsing &amp; binding</h2>
		<ul>
			<li>Mandatory</li>
			<li>Position</li>
			<li>ValueFromPipeline</li>
			<li>ValueFromPipelineByPropertyName</li>
			<li>ValueFromRemainingArguments</li>
		</ul>
	</li>
	<li><h2>Parameter validation</h2>
		<ul>
			<li>IsNull</li>
			<li>IsNotNull</li>
			<li>Set</li>
			<li>Range</li>
			<li>Count</li>
			<li>RegEx Pattern</li>
			<li>Script</li>
		</ul>
	</li>
	<li><h2>Parameter Sets</h2></li>
	<li><h2>CmdletBinding Support</h2>
		<ul>
			<li>SupportsShouldProcess</li>
			<li>ConfirmImpact</li>
			<li>DefaultParameterSetName</li>
		</ul>
	</li>
	<li><h2>Dynamic parameters</h2></li>
</ul>

<h1><a name="modules"></a>Modules</h1>

<ul>
	<li><h2>XCopy deploy (PSModulePath)</h2></li>
	<li><h2>Module manifests use .psd1 extension</h2></li>
	<li><h2>Script Modules use .psm1 extension</h2>
		<ul>
			<li><p>Organization</p></li>
			<li><p>Private variables and functions</p></li>
		</ul>
	</li>
	<li><h2>Import modules easily, (and remove)</h2></li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li>Get-Module</li>
			<li>New-Module</li>
			<li>Import-Module</li>
			<li>Remove-Module</li>
			<li>Export-ModuleMember</li>
		</ul>
	</li>
</ul>

<h1><a name="help"></a>Help for Functions and Scripts</h1>
<ul>
	<li><h2>XML-based help&nbsp;&nbsp; (just like cmdlets)</h2></li>
	<li><h2>Comment-based help</h2>                  </li>
	<li><h2>Online help</h2>                         </li>
	<li><h2>Provider-based help additions</h2>       </li>
	<li><h2>Get-Help now searches! </h2>
		<ul>
			<li>e.g.: man hashtable</li>
		</ul>
	</li>
</ul>

<h1>Comment-Based Help Example</h1>

	<p><code></code><p>&lt;#<br />

.SYNOPSIS<br />

<span style="color: rgb(104, 104, 109);">A short description of the function.</span></p></p>

<p>.DESCRIPTION<br />

<span style="color: rgb(104, 104, 109);">A longer description of the function.</span></p>

<p>.<span class="caps">PARAMETER</span> <span style="color: rgb(104, 104, 109);">&lt;parametername&gt;<br />

The documentation for that specific parameter</span></p>

<p>.EXAMPLE<br />

<span style="color: rgb(104, 104, 109);">C:\PS&gt; some example code</span></p>

<p>.LINK<br />

<span style="color: rgb(104, 104, 109);">Get-AnotherFunction</span></p>

	<p><p>.LINK<br />

<span style="color: rgb(104, 104, 109);">http://yourwebsite.com/help/documentation</span><br />

#&gt;</p>

	<p></p><h1>Comment-Based Help Keywords</h1><br />
<ul>
	<li>Synopsis</li>
	<li>Description</li>
	<li>Parameter</li>
	<li>Example</li>
	<li>Inputs</li>
	<li>Outputs</li>
	<li>Notes</li>
	<li>Component</li>
	<li>Role</li>
	<li>Functionality</li>
	<li>ForwardHelpTargetName</li>
	<li>ForwardHelpCategory</li>
	<li>RemoteHelpRunspace</li>
	<li>Link</li>
	<li>ExternalHelp</li><br />
</ul></p>

<h1><a name="remoting"></a>Remoting</h1>

<ul>
	<li><h2>Fan-in and Fan-out remoting</h2></li>
	<li><h2>Requires PowerShell 2.0 on both ends</h2></li>
	<li><h2>Receive serialized property bags, not live objects</h2></li>
	<li><h2>WinRM = WS-Management = <span class="caps">SOAP</span> spec</h2></li>
	<li><h2>Enable-PSRemoting requires elevation</h2></li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li><p>New-PsSession</p></li>
			<li><p>Get-PsSession</p></li>
			<li><p>Remove-PsSession</p></li>
			<li><p>Export-PsSession</p></li>
			<li><p>Import-PsSession</p></li>
			<li><p>Enter-PsSession</p></li>
			<li><p>Exit-PsSession</p></li>
			<li><p>Invoke-Command</p></li>
		</ul>
	</li>
</ul>

<h1>Background Jobs</h1>
<ul>
	<li><h2>Execute work asynchronously</h2></li>
	<li><h2>Separate runspace</h2></li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li>Start-Job</li>
			<li>Stop-Job</li>
			<li>Get-Job</li>
			<li>Receive-Job</li>
			<li>Wait-Job</li>
			<li>Remove-Job</li>
			<li>Invoke-Command</li>
		</ul>
	</li>
</ul>

<h1><a name="eventing"></a>Eventing</h1>

<p>Finally provides support for asynchronous Events, for GUIs, timers, <span class="caps">WMI</span>, and remoting</p>
<ul>
	<li><h2>Events can be forwarded from remote sessions</h2></li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li>Register-EngineEvent</li>
			<li>Register-ObjectEvent</li>
			<li>Register-WmiEvent</li>
			<li>RegisterUnregister-Event</li>
			<li>Get-EventSubscribers</li>
			<li>New-Event</li>
			<li>Get-Event</li>
			<li>Wait-Event</li>
			<li>Remove-Event</li>
		</ul>
	</li>
</ul>

<h1><a name="ise"></a>Integrated Script Editor – ISE</h1>
<ul>
	<li><h2>Graphical host for PowerShell engine</h2></li>
	<li><h2>Tabbed script editor</h2></li>
	<li><h2>Supports Unicode!</h2></li>
	<li><h2>Supports script debugging (about_debuggers)</h2>
		<ul>
			<li><h3>Graphical debugging like an IDE</h3></li>
			<li><h3>Set breakpoints, stop conditions, etc</h3></li>
		</ul>
	</li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li>Set-PSDebug</li>
			<li>Set-StrictMode</li>
			<li>Get-PSCallStack</li>
			<li>Get-PSBreakpoint</li>
			<li>Set-PSBreakpoint</li>
			<li>Remove-PSBreakpoint</li>
			<li>Enable-PSBreakpoint</li>
			<li>Disable-PSBreakpoint</li>
		</ul>
	</li>
</ul>

<h1><a name="transactions"></a>Transaction Support</h1>
<ul>
	<li><h2>Commit/rollback semantics</h2></li>
	<li><h2>Rollback can be automatic (if error occurs)</h2></li>
	<li><h2>Registry provider is only supporter in the box</h2></li>
	<li><h2>Related Cmdlets:</h2>
		<ul>
			<li>Start-Transaction</li>
			<li>Complete-Transaction</li>
			<li>Undo-Transaction</li>
			<li>Get-Transaction</li>
			<li>Use-Transaction</li>
		</ul>
	</li>
</ul>

<h1><a name="etc"></a>107 New Cmdlets</h1>
<ul>
	<li>Add-Computer</li>
	<li>Add-Type</li>
	<li>Checkpoint-Computer</li>
	<li>Clear-EventLog </li>
	<li>Clear-History</li>
	<li>Complete-Transaction</li>
	<li>Connect-WSMan </li>
	<li>ConvertFrom-Csv </li>
	<li>ConvertFrom-StringData </li>
	<li>ConvertTo-Csv </li>
	<li>ConvertTo-Xml</li>
	<li>Debug-Process</li>
	<li>Disable-ComputerRestore </li>
	<li>Disable-PSBreakpoint </li>
	<li>Disable-PSSessionConfiguration </li>
	<li>Disable-WSManCredSSP </li>
	<li>Disconnect-WSMan </li>
	<li>Enable-ComputerRestore </li>
	<li>Enable-PSBreakpoint </li>
	<li>Enable-PSRemoting</li>
	<li>Enable-PSSessionConfiguration </li>
	<li>Enable-WSManCredSSP </li>
	<li>Enter-PSSession </li>
	<li>Exit-PSSession </li>
	<li>Export-Counter</li>
	<li>Export-FormatData </li>
	<li>Export-ModuleMember </li>
	<li>Export-PSSession </li>
	<li>Get-ComputerRestorePoint </li>
	<li>Get-Counter</li>
	<li>Get-Event</li>
	<li>Get-EventSubscriber </li>
	<li>Get-FormatData </li>
	<li>Get-HotFix </li>
	<li>Get-Job</li>
	<li>Get-Module</li>
	<li>Get-PSBreakpoint </li>
	<li>Get-PSCallStack </li>
	<li>Get-PSSession </li>
	<li>Get-PSSessionConfiguration</li>
	<li>Get-Random</li>
	<li>Get-Transaction</li>
	<li>Get-WinEvent </li>
	<li>Get-WSManCredSSP </li>
	<li>Get-WSManInstance </li>
	<li>Import-Counter</li>
	<li>Import-LocalizedData </li>
	<li>Import-Module</li>
	<li>Import-PSSession </li>
	<li>Invoke-Command</li>
	<li>Invoke-WmiMethod </li>
	<li>Invoke-WSManAction </li>
	<li>Limit-EventLog </li>
	<li>New-Event</li>
	<li>New-EventLog </li>
	<li>New-Module</li>
	<li>New-ModuleManifest </li>
	<li>New-PSSession </li>
	<li>New-PSSessionOption </li>
	<li>New-WebServiceProxy </li>
	<li>New-WSManInstance</li>
	<li>New-WSManSessionOption </li>
	<li>Out-GridView </li>
	<li>Receive-Job</li>
	<li>Register-EngineEvent </li>
	<li>Register-ObjectEvent </li>
	<li>Register-PSSessionConfiguration </li>
	<li>Register-WmiEvent </li>
	<li>Remove-Computer</li>
	<li>Remove-Event</li>
	<li>Remove-EventLog </li>
	<li>Remove-Job</li>
	<li>Remove-Module</li>
	<li>Remove-PSBreakpoint </li>
	<li>Remove-PSSession </li>
	<li>Remove-WmiObject </li>
	<li>Remove-WSManInstance </li>
	<li>Reset-ComputerMachinePassword </li>
	<li>Restart-Computer</li>
	<li>Restore-Computer</li>
	<li>Select-Xml</li>
	<li>Send-MailMessage </li>
	<li>Set-PSBreakpoint </li>
	<li>Set-PSSessionConfiguration </li>
	<li>Set-StrictMode </li>
	<li>Set-WmiInstance </li>
	<li>Set-WSManInstance </li>
	<li>Set-WSManQuickConfig </li>
	<li>Show-EventLog </li>
	<li>Start-Job</li>
	<li>Start-Process</li>
	<li>Start-Transaction</li>
	<li>Stop-Computer</li>
	<li>Stop-Job</li>
	<li>Test-ComputerSecureChannel </li>
	<li>Test-Connection</li>
	<li>Test-ModuleManifest </li>
	<li>Test-WSMan </li>
	<li>Undo-Transaction</li>
	<li>Unregister-Event</li>
	<li>Unregister-PSSessionConfiguration </li>
	<li>Update-List</li>
	<li>Use-Transaction</li>
	<li>Wait-Event</li>
	<li>Wait-Job</li>
	<li>Wait-Process</li>
	<li>Write-EventLog </li>
</ul>

<h1>Miscellaneous</h1>
<ul>
	<li><h2>Try { } Catch{ } Finally { }</h2></li>
	<li><h2>Add-Type cmdlet – compiles .<span class="caps">NET</span> code</h2></li>
	<li><h2>Splatting: @</h2></li>
	<li><h2>Steppable pipelines for wrapping cmdlets</h2></li>
	<li><h2>-Split and –Join</h2></li>
	<li><h2>Script Internationalization</h2></li>
	<li><h2>Lots of cmdlet improvements</h2></li>
		<ul>
			<li>Select-String &#8230; -NotMatch -AllMatches -Context 3</li>
		</ul>
	
</ul>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/d4980f29-d8c8-452c-8755-7e6fc8b7f8b2/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=d4980f29-d8c8-452c-8755-7e6fc8b7f8b2" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/whats-new-in-powershell-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fun with PInvoke and Aero Peek</title>
		<link>http://joelbennett.net/fun-with-pinvoke-and-aero-peek/</link>
		<comments>http://joelbennett.net/fun-with-pinvoke-and-aero-peek/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 05:07:16 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Aero Peek]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DwmSetWindowAttribute]]></category>
		<category><![CDATA[DWMWA_EXCLUDED_FROM_PEEK]]></category>
		<category><![CDATA[PInvoke]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1247</guid>
		<description><![CDATA[There are so many fun things you can do in Windows when your scripting language allows you to make PInvoke calls to Win32 APIs &#8230; but I have to say it&#8217;s amazing how many things have been added to Windows recently and still left out of the .Net framework &#8230; Anyway, on to the Aero [...]]]></description>
			<content:encoded><![CDATA[	<p>There are so many fun things you can do in Windows when your scripting language allows you to make PInvoke calls to Win32 APIs &#8230; but I have to say it&#8217;s amazing how many things have been added to Windows recently and still left out of the .Net framework &#8230;</p>

	<p>Anyway, on to the <a href="http://windows.microsoft.com/en-us/windows7/products/features/aero-peek">Aero Peek</a> stuff.  If you haven&#8217;t seen it, Aero Peek is a feature of Windows 7, which lets you get a peek at your desktop, or at a single window for a moment.  Basically, you can press Win+Space (the Windows logo key and the space bar) and all of your open windows instantly turn transparent, revealing &#8230; whatever was on your desktop: wallpaper, icons, and gadgets.   You can also use it by hovering your mouse on the right corner of the taskbar, or you can peek at a single window by hovering over it&#8217;s taskbar button and then over it&#8217;s thumbnail.</p>

	<p>In any case, I have a couple of windows which I would like to have stay visible on the desktop when I hit the aero peek hotkey: Rainlendar and Miranda.  It turns out there&#8217;s a simple <span class="caps">API</span> call for this: <code>DwmSetWindowAttribute</code> which lets you set the <code>DWMWA_EXCLUDED_FROM_PEEK</code> attribute to <code>ENABLED</code> &#8230; causing a window to no longer hide when you press that hotkey. Of course, that <span class="caps">API</span> call should be made by those apps, in response to a user setting (so I&#8217;ve told their authors about it), but it doesn&#8217;t <em>have</em> to be (so I wrote a script to do it myself).</p>

	<p>In the old days, I would have written a little systray app which would give you a popup list of all windows, or perhaps added a menu item to a window&#8217;s right-click menu &#8230; and I would have had to deal with creating some way to persist which apps you wanted to apply this to, and then I could have applied the setting to them whenever you opened them. </p>

	<p>But now, I have PowerShell. I don&#8217;t need to give you menus and store settings, because I can just let you edit a little script instead.</p>

	<p>So here&#8217;s a script which will let you turn off Aero Peek transparency for windows by window title and/or process name &#8230; Once you have this function available, you can keep Rainlendar&#8217;s calendar, tasks, and event windows all visible by just running <code>Remove-AeroPeek -Process Rainlendar2</code> or you can keep your <a class="zem_slink" href="http://www.miranda-im.org/" title="Miranda IM" rel="homepage">Miranda</a> contact list visible by running <code>Remove-AeroPeek &#34;Miranda IM&#34;</code> (although you should not that depends on the window title matching just that one window &#8212; and Miranda lets you change what your title is, so you may have to adjust it).</p>

<script type="text/javascript" src="http://PoshCode.org/embed/1288"></script>

	<p>Of course, that script really deserves explanation, because it&#8217;s showing off quite a few advanced things&#8230;</p>

	<p>The first thing is that I&#8217;m using a Try/Catch block in the <span class="caps">BEGIN</span> block to make sure I only execute that code once. You can&#8217;t call Add-Type with the same code multiple times in a single PowerShell session, because the type will already exist when you call it the second time.  So the code in the <code>try</code> block will throw an exception if the type doesn&#8217;t already exist, and in the catch handler, we&#8217;ll create the type, and define the other function we need.</p>

	<p>Add-Type is a super-powerful cmdlet which compiles code on the fly (or imports types from pre-compiled assemblies). In this case we&#8217;re using it to import a little class called Dwm which I started writing myself from PInvoke.net and the <span class="caps">MSDN</span> documentation, but then eventually copied most of from a NeoWin forum thread&#8230;  All this class really does is define the <span class="caps">API</span> function and the flags we need to pass to it, and then provides a wrapper for the DwmSetWindowAttribute call. We could have written that call in PowerShell, but at the end of the day, once you start compiling C# code in PowerShell, it&#8217;s hard to know when to stop  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';)' class='wp-smiley' /> </p>

	<p>The Select-Window function is (yet another customized version of) a function I wrote awhile back on PoshCode as part of my (still in progress) rewrite of <a href="http://WASP.CodePlex.com">WASP</a> to use the <a href="http://msdn.microsoft.com/en-us/library/aa348551.aspx#Testing_with_UI_Automation">UIAutomationClient</a> &#8230; I&#8217;ve just modified it to add only the three properties of the window that I&#8217;m interested in: Title and ProcessId (for identifying the correct windows) and Handle (for passing to the <code>DwmSetWindowAttribute</code> call).  It uses the <code>RootElement</code> property of <a href="http://msdn.microsoft.com/en-us/library/system.windows.automation.automationelement.aspx">System.Windows.Automation.AutomationElement</a> to do a search, and then a series of GetCurrentPropertyValue calls to determine the Name, ProcessId, and NativeWindowHandle of the windows it finds.</p>

	<p>That&#8217;s pretty much all there is to it, other than filtering out the window(s) that we want and actually calling the <span class="caps">API</span>. I think I&#8217;m going to have to play a little bit more with this to see what else we can do &#8212; I&#8217;ve already realized that this means we can make little widgets with PowerBoots and set them to stick around just like regular desktop gadgets &#8230;</p>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/9d449ee5-040d-4fc6-8cf0-9791b23f0898/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=9d449ee5-040d-4fc6-8cf0-9791b23f0898" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/fun-with-pinvoke-and-aero-peek/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Stupid PowerShell Tricks</title>
		<link>http://joelbennett.net/stupid-powershell-tricks/</link>
		<comments>http://joelbennett.net/stupid-powershell-tricks/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 22:23:09 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Pranks]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1038</guid>
		<description><![CDATA[So, last year around April, I wrote this module I called &#8220;HuddledTricks&#8221; ... it has a function for hiding windows, and another for showing them, along with a function called Wiggle-Mouse which, well, wiggles your mouse cursor (and one called Steady-Mouse to stop it). So anyway, today I was playing with something else and with [...]]]></description>
			<content:encoded><![CDATA[	<p>So, last year around April, I wrote this module I called &#8220;HuddledTricks&#8221; ... it has a function for hiding windows, and another for showing them, along with a function called <code>Wiggle-Mouse</code> which, well, wiggles your mouse cursor (and one called <code>Steady-Mouse</code> to stop it).</p>

	<p>So anyway, today I was playing with <a href="http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/e75f1740-8ebf-4c12-856c-035c62ac2573">something else</a> and with my <a href="http://WASP.CodePlex.com">WASP</a> module, and discovered that you can hide the Windows 7 taskbar without hiding the start menu or button.</p>

	<p><img src="http://huddledmasses.org/images/PowerBoots/Hide-Window.png" alt="" width="997" height="678" /></p>

	<p>This seemed cool enough to motivate me to finally actually publish my HuddledTricks module, so have fun, and don&#8217;t prank too many people.  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=':D' class='wp-smiley' /> </p>

	<p><script type="text/javascript" src="http://PoshCode.org/embed/845"></script></p>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/e414174e-091f-43b0-84cc-1a49223a39f4/" title="Zemified by Zemanta"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=e414174e-091f-43b0-84cc-1a49223a39f4" alt="Reblog this post [with Zemanta]" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/stupid-powershell-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Impressions of Windows 7</title>
		<link>http://joelbennett.net/first-impressions-of-windows-7/</link>
		<comments>http://joelbennett.net/first-impressions-of-windows-7/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 15:21:28 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[System Tray]]></category>
		<category><![CDATA[Taskbar]]></category>
		<category><![CDATA[User Account Control]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Shell]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=998</guid>
		<description><![CDATA[So, I wrote up this great explanation about how much the Shell in Windows 7 has changed from Vista, and how this shows that this Windows 7 beta is a much bigger deal than most of the whiners in the press are giving it credit for being, and explain about how I used to be [...]]]></description>
			<content:encoded><![CDATA[	<p>So, I wrote up this great explanation about how much the Shell in Windows 7 has changed from Vista, and how this shows that this Windows 7 beta is a much bigger deal than most of the whiners in the press are giving it credit for being, and explain about how I used to be a <a href="http://geoshell.org">shell</a> developer, and how that means I should have credibility when it comes to discussing changes in the taskbar, systray, desktop, and their various preference panels &#8230;.</p>

	<h3>Then Windows 7 bluescreened</h3>

	<p>I think the drivers for Mesh, (maybe VirtualCloneDrive, or Eset&#8217;s NOD32) ... didn&#8217;t like going into hibernation.  Anyway, I lost all that, so let me just list for you some of the changes <em>just</em> in the shell.  I&#8217;m going to ignore the multi-touch capability, and &#8220;Homegroup&#8220;s, and the &#8220;Libraries&#8221; that are really impressive if you&#8217;ve never learned how to make a junction &#8230; </p>

	<ol>
		<li>You have complete control over what icons show in the systray. By default, new apps don&#8217;t get to show you anything. Hurrah!
		<li>You can chose large icons for task bar.  Actually, it defaults to large icons, so I guess I should say you can choose small icons, but since that&#8217;s all that was available in previous versions of Windows, it seems like the new stuff should be what I mentioned. Oh, you know what these larger icons mean?</li>
	<ol>
		<li>The systray clock now shows the date by default (hurrah!). Ok, I know that&#8217;s not actually a big change, but it&#8217;s a tiny thing that makes me happier.</li>
		<li>Each running process gets exactly <span class="caps">ONE</span> (squarish) tile on the task bar, with a little extra ridge on the side if it represents more than one window.  Of course, that&#8217;s just the default:  
		<li>You can switch the text labels back on to make things look like before</li>
	</ol></li>
	<ol>
		<li>You can turn off the &#8220;grouping&#8221; so each window gets it&#8217;s own button</li>
	</ol></li>
		<li>You can drag tasks on the taskbar to reorder them.  I&#8217;ve been using <a href="http://taskix.robustit.com">Taskix</a> as one of my first installs for years, so this isn&#8217;t as big a deal as it could be, but it&#8217;s pretty interesting, when you combine it with:</li>
		<li>You can use WIN+<number> to launch another copy of a task (based on the order they&#8217;re in on the taskbar).  Incidentally, if anyone from the team is listening, you should focus the already running task, if there is one, so that pressing Win+# is like clicking the button.  Oh, and WIn+Shift+# could run a new one.</li>
		<li>Mousing over a taskbar tile pops out a pane with thumbnails of each window (or tabs), and mousing over the thumbnails actually hides all the other windows so you can see just that window (or tab) ... and there&#8217;s even a close button, so you can close the ones you don&#8217;t want without switching to them</li>
		<li>Dragging a window to a screen edge lets you tile it in place, or maximize it. Cool, and <em>about time</em> ... really we need a few other options on this too, and it should work on the &#8220;inside&#8221; edges of a multi-monitor setup (hopefully they&#8217;ll fix that).</li>
		<li>The right-click menu for a task tile is customizable: it can show you a list of things to chose from to open in that app: like your recent folders (file manager), your recent history (browser), your &#8220;status&#8221; (instant messenger), etc.</li>
		<li>There&#8217;s (almost always) a button on that right-click menu for launching another copy of the app. And you can right-click it to get the &#8220;run as admin&#8221;</li>
		<li>The task bar tiles can show (become, really) a progress bar!  I can&#8217;t explain how cool this is, or how many other things it could be used for, but if you&#8217;ve got Windows 7, try downloading something large in IE8 &#8212; you actually see the progress as a green background on the taskbar button.  I have to investigate whether this means you can owner-draw stuff on the taskbar, or if they&#8217;ve just provided progress bars built-in.  If it&#8217;s the former, you can expect to see lots of cool stuff in the near future (like counts of unread messages or emails, etc).</li>
		<li>Two tiles for the same app appear to be merged together &#8212; That is, if you unstack windows, or choose to stack only when there are too many to fit, the borders between buttons are less visible, and the mouse-over highlight carries across them.  This is most noticeable if you make your taskbar vertical.</li>
	</ol>
	<ol>
		<li>There is coloring of apps, so when you mouse over the taskbar buttons, they get highlighted in a color that is based on their icon.</li>
	</ol>

	<p>OK, there&#8217;s actually more changes than just those &#8230; the desktop wallpaper has a built-in &#8220;slideshow&#8221; feature, so you can have your wallpaper change every day (or every 10 seconds, or something in between).  The <span class="caps">UAC</span> prompts have a link on them to the <span class="caps">UAC</span> preference panel where you can disable <span class="caps">UAC</span> as easy as sliding a slider.  The taskbar can &#8220;learn&#8221; just like the start menu does, to keep the apps you use the most always available&#8230; or you can just pin those apps to the taskbar manually (again, just like the start menu).</p>

	<p>So there&#8217;s lots of cool new features in the shell, even without getting into touch interfaces and other stuff, and generally, I think this represents a bigger change than the windows 95-98 and possibly even bigger than 2000 to XP, and on top of all that, the relative performance of the system seems to go in the right direction for a change.</number></p>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/ae205315-98ea-49d8-a5b1-4404d00bd5b2/" title="Zemified by Zemanta"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=ae205315-98ea-49d8-a5b1-4404d00bd5b2" alt="Reblog this post [with Zemanta]" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/first-impressions-of-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

