<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>TJ Solutions - Tools</title>
    <link>http://www.tjsolutions.nl/</link>
    <description />
    <language>en-us</language>
    <copyright>Tijmen van de Kamp, Tom de Koning</copyright>
    <lastBuildDate>Thu, 15 Oct 2009 07:53:47 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>blog@tjsolutions.nl</managingEditor>
    <webMaster>blog@tjsolutions.nl</webMaster>
    <item>
      <trackback:ping>http://www.tjsolutions.nl/Trackback.aspx?guid=791a33b2-d3cf-4bcb-94a3-af0bccf229b2</trackback:ping>
      <pingback:server>http://www.tjsolutions.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.tjsolutions.nl/PermaLink,guid,791a33b2-d3cf-4bcb-94a3-af0bccf229b2.aspx</pingback:target>
      <dc:creator>Tijmen</dc:creator>
      <wfw:comment>http://www.tjsolutions.nl/CommentView,guid,791a33b2-d3cf-4bcb-94a3-af0bccf229b2.aspx</wfw:comment>
      <wfw:commentRss>http://www.tjsolutions.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=791a33b2-d3cf-4bcb-94a3-af0bccf229b2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of my machines refused to install updates to the .NET Framework 3.5 sp1, both
through auto-update and when installing manually. I finally fixed it by using Aaron
Stebner's <a href="http://blogs.msdn.com/astebner/archive/2009/07/27/9850215.aspx" target="_blank">.NET
framework cleanup tool</a> and re-installing .NET. This tool radically removes all
versions of the .NET framework, including IIS artefacts, registry entries, the works.
I found this tool through a post on <a href="http://www.raymond.cc/blog/archives/2008/12/02/uninstall-microsoft-net-framework-with-aaron-stebner-cleanup-tool/" target="_blank">raymond.cc</a>.
</p>
        <p>
Note that this tool should probably not be the first thing to try; uninstalling and
re-installing the .NET framework versions would probably a safer bet to try first.
</p>
        <img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=791a33b2-d3cf-4bcb-94a3-af0bccf229b2" />
      </body>
      <title>.NET framework cleanup tool</title>
      <guid isPermaLink="false">http://www.tjsolutions.nl/PermaLink,guid,791a33b2-d3cf-4bcb-94a3-af0bccf229b2.aspx</guid>
      <link>http://www.tjsolutions.nl/2009/10/15/NETFrameworkCleanupTool.aspx</link>
      <pubDate>Thu, 15 Oct 2009 07:53:47 GMT</pubDate>
      <description>&lt;p&gt;
One of my machines refused to install updates to the .NET Framework 3.5 sp1, both
through auto-update and when installing manually. I finally fixed it by using Aaron
Stebner's &lt;a href="http://blogs.msdn.com/astebner/archive/2009/07/27/9850215.aspx" target="_blank"&gt;.NET
framework cleanup tool&lt;/a&gt; and re-installing .NET. This tool radically removes all
versions of the .NET framework, including IIS artefacts, registry entries, the works.
I found this tool through a post on &lt;a href="http://www.raymond.cc/blog/archives/2008/12/02/uninstall-microsoft-net-framework-with-aaron-stebner-cleanup-tool/" target="_blank"&gt;raymond.cc&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Note that this tool should probably not be the first thing to try; uninstalling and
re-installing the .NET framework versions would probably a safer bet to try first.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=791a33b2-d3cf-4bcb-94a3-af0bccf229b2" /&gt;</description>
      <comments>http://www.tjsolutions.nl/CommentView,guid,791a33b2-d3cf-4bcb-94a3-af0bccf229b2.aspx</comments>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.tjsolutions.nl/Trackback.aspx?guid=eea5b3d9-3974-4b94-8f4a-a0349efbe480</trackback:ping>
      <pingback:server>http://www.tjsolutions.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.tjsolutions.nl/PermaLink,guid,eea5b3d9-3974-4b94-8f4a-a0349efbe480.aspx</pingback:target>
      <dc:creator>Tijmen</dc:creator>
      <wfw:comment>http://www.tjsolutions.nl/CommentView,guid,eea5b3d9-3974-4b94-8f4a-a0349efbe480.aspx</wfw:comment>
      <wfw:commentRss>http://www.tjsolutions.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=eea5b3d9-3974-4b94-8f4a-a0349efbe480</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.tjsolutions.nl/content/binary/WindowsLiveWriter/AutohotkeylaunchoractivateWindows7style_B84B/launch_or_activate_2.jpg">
            <img style="border-width: 0px; display: inline; margin-left: 0px; margin-right: 0px;" title="launch_or_activate" alt="launch_or_activate" src="http://www.tjsolutions.nl/content/binary/WindowsLiveWriter/AutohotkeylaunchoractivateWindows7style_B84B/launch_or_activate_thumb.jpg" align="right" border="0" height="182" width="244" />
          </a>One
feature of the new Windows 7 <a href="http://www.neowin.net/news/main/09/01/15/windows-7-superbar-overview">SuperBar</a> that
I particularly like is the ability to pin applications. This creates a single button
that can be used to both launch the application (when it isn't already running) or
to activate it if the app was already active. What I like about this concept, is that
it expresses the user's wish much better in this way: a button to run Word can now
be used to just "give me Word, I don't care if it's already running". 
</p>
        <p>
Since I usually work more keyboard- than mouse-centric, I came up with a way to mimic
this behavior in <a href="http://www.autohotkey.com/">AutoHotkey</a>. I wrote a script
that offers the following functionality:
</p>
        <ul>
          <li>
either start or activate a particular application (based on a shortcut key obviously,
this being an AutoHotkey post) 
</li>
          <li>
if the application is already running, cycle through the active windows (useful for
Firefox or Explorer windows) 
</li>
          <li>
make it easy to "force-launch": force a new instance/window, regardless of whether
it was already up and running. 
</li>
          <li>
give visual feedback on the launched-or-activated application 
</li>
        </ul>
        <p>
It took me a little time to work out the AutoHotkey script syntax, especially for
dealing with arrays. In the script you set up an array of shortcut information, which
serves as a settings registry. It contains the following parts:
</p>
        <ul>
          <li>
display label: text that is shown in the visual feedback 
</li>
          <li>
a (unique) name: this is used to bind that particular command to a hotkey 
</li>
          <li>
a groupname: if a groupname is given, the script tries to loop through all the windows
that match the window ID that is assigned to this entry 
</li>
          <li>
windowId: set this to the "ahk_class" of the window. You can use Window Spy (right
click on any running AutoHotKey script tray icon) to find out this value for each
command you want to add to the registry. It will probably work with Windows titles
as well, but I never tried this since that method is a lot less reliable. 
</li>
          <li>
runcommand: the actual command you want the shortcut to point to if it needs to launch
the application (for instance, "c:\windows\system32\calc.exe") 
</li>
        </ul>
        <p>
Adding a entry goes like this:
</p>
        <pre class="brush: ahk;">;--1. SETUP
;     enter label, name, groupname, windowId, runcommand
AddShortcut("Windows Explorer", "Explorer", "ExplorerGroup", "ahk_class CabinetWClass", "C:\windows\explorer.exe /select,d:" )</pre>
        <p>
The next step involves hooking up the shortcut keys. This is standard AutoHotkey suff,
so please refer to the AHK manual for doing this. An example for Explorer and Firefox:
</p>
        <pre class="brush: ahk;">#E::MyNewActivate("Explorer")
+#E::MyRun("Explorer")
F19::MyNewActivate("FF")
+F19::MyRun("FF")</pre>
        <p>
So, Windows key + E does the launch-or-activate trick, whereas Shift + Win + E forces
a new Explorer window.
</p>
        <p>
The rest of the script adds some visual eye candy that is in no way functionally necessary,
but it gives a nice, semi-transparent window that fades quickly. The three possible
windows are shown at the top of this post.
</p>
        <p>
The entire script is listed below; click expand source to view or copy.
</p>
        <pre class="brush: ahk;collapse:true;highlight: [46];">#InstallKeybdHook

;--AUTOEXEC SECTION

GroupArrayCount := 0
SetTitleMatchMode 2

;--DISPLAY SETTINGS
;
INITIAL_TRANSPARENCY := 150
DELTA_TRANSPARENCY := 25
INITIAL_DELAY := 400
DELTA_DELAY := 50

;--1. SETUP
;     enter label, name, groupname, windowId, runcommand
;
AddShortcut("Windows Explorer", "Explorer",   "ExplorerGroup", "ahk_class CabinetWClass", "C:\windows\explorer.exe /select,d:" )
AddShortcut("Outlook", "Outlook", "OutlookGroup", "ahk_class rctrl_renwnd32", "C:\Program Files (x86)\Microsoft Office\Office12\outlook.exe")
AddShortcut("Firefox", "FF", "FireFoxGroup", "ahk_class MozillaUIWindowClass", "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" )
AddShortcut("Calculator", "Calculator", "", "ahk_class CalcFrame", "c:\windows\system32\calc.exe")

;--2. ASSIGN KEYS
; win + E does a "run or activate", shift + win + E forces a new window
#E::MyNewActivate("Explorer")
+#E::MyRun("Explorer")

F14::MyNewActivate("Outlook")
F19::MyNewActivate("FF")
+F19::MyRun("FF")

;--Ctrl + Shift + Esc starts Process Explorer (task manager on steroids)
+^Escape::MyNewActivate("PE")
#C::MyNewActivate("Calculator")
;
;--/AUTOEXEC SECTION


; FUNCTION SECTION
GlobalTrans := INITIAL_TRANSPARENCY

;--CloseWin has to be an AHK subroutine, SetTimer doesn't work with functions
;  also note: subroutines do not require the "global" keyword
;             to manipulate global vars
CloseWin:
  If (GlobalTrans &lt;= 0)
  {
    Gui, Destroy  
  }
  else
  {
    WinSet Transparent, %GlobalTrans%, ahk_class AutoHotkeyGUI
    GlobalTrans := GlobalTrans - DELTA_TRANSPARENCY
    ; negative time means run only once
    SetTimer, CloseWin, -%DELTA_DELAY%
  }
return


ShowText(text, textColor)
{
  global
  GlobalTrans := INITIAL_TRANSPARENCY

  Gui, Destroy
  SetTimer, CloseWin, Off
  Gui +LastFound +AlwaysOnTop -Caption +ToolWindow
  Gui, Color, 404040
  Gui, Font, s32
  Gui, Add, Text, c%textColor%, %text%
  SetTimer, CloseWin, -%INITIAL_DELAY%
  Gui, Show, Center NoActivate
  WinSet Transparent, %GlobalTrans%, ahk_class AutoHotkeyGUI
}

AddShortcut(label, key, groupName, windowId, runCommand)
{
  global
  GroupArrayCount += 1
  Labels%GroupArrayCount% := label
  Keys%GroupArrayCount% := key
  if (groupName != "")
  {
    Groups%GroupArrayCount% := groupName
  }
  Ids%GroupArrayCount% := windowId
  Commands%GroupArrayCount% := runCommand
  if (groupName != "")
  {
    GroupAdd %groupName%,%windowId%
  }
}

MyNewActivate(key)
{
  global
  Loop %GroupArrayCount%
  {
    if (key == Keys%A_Index%)
    {
      local thisId := Ids%A_Index%
      local label := Labels%A_Index%
      if WinExist(thisId)
      {
        ShowText("switching to " . label, "Lime")
        local thisGroup := Groups%A_Index%
        if (thisGroup == "")
        {
          WinActivate %thisId%
        }
        else
        {
          GroupActivate %thisGroup%,r
        }
      }
      else
      {
        ShowText("launching " . label, "FF8800")
        local thisCommand := Commands%A_Index%
        run, %thisCommand%
      }
      break ; terminate the lookup
    }
  }
}

MyRun(key)
{
  global
  Loop %GroupArrayCount%
  {
    if (key == Keys%A_Index%)
    {
      local label := Labels%A_Index%
      ShowText("force new " . label, "FF3300")
      local thisCommand := Commands%A_Index%
      run, %thisCommand%
      break ; terminate the lookup
    }
  }
}</pre>
        <p>
Note that line 46 should read <code>If (GlobalTrans &lt;= 0)</code>, but the AHK brush
for SyntaxHighlighter gets a bit confused here (since the semicolon ";" is also the
AHK comment character). I found this brush <a href="http://users.on.net/%7Emjneish/syntax/test.html">here</a>.
</p>
        <img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=eea5b3d9-3974-4b94-8f4a-a0349efbe480" />
      </body>
      <title>Autohotkey: launch-or-activate (Windows 7 style)</title>
      <guid isPermaLink="false">http://www.tjsolutions.nl/PermaLink,guid,eea5b3d9-3974-4b94-8f4a-a0349efbe480.aspx</guid>
      <link>http://www.tjsolutions.nl/2009/09/04/AutohotkeyLaunchoractivateWindows7Style.aspx</link>
      <pubDate>Fri, 04 Sep 2009 11:06:06 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.tjsolutions.nl/content/binary/WindowsLiveWriter/AutohotkeylaunchoractivateWindows7style_B84B/launch_or_activate_2.jpg"&gt;&lt;img style="border-width: 0px; display: inline; margin-left: 0px; margin-right: 0px;" title="launch_or_activate" alt="launch_or_activate" src="http://www.tjsolutions.nl/content/binary/WindowsLiveWriter/AutohotkeylaunchoractivateWindows7style_B84B/launch_or_activate_thumb.jpg" align="right" border="0" height="182" width="244"&gt;&lt;/a&gt;One
feature of the new Windows 7 &lt;a href="http://www.neowin.net/news/main/09/01/15/windows-7-superbar-overview"&gt;SuperBar&lt;/a&gt; that
I particularly like is the ability to pin applications. This creates a single button
that can be used to both launch the application (when it isn't already running) or
to activate it if the app was already active. What I like about this concept, is that
it expresses the user's wish much better in this way: a button to run Word can now
be used to just "give me Word, I don't care if it's already running". 
&lt;/p&gt;
&lt;p&gt;
Since I usually work more keyboard- than mouse-centric, I came up with a way to mimic
this behavior in &lt;a href="http://www.autohotkey.com/"&gt;AutoHotkey&lt;/a&gt;. I wrote a script
that offers the following functionality:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
either start or activate a particular application (based on a shortcut key obviously,
this being an AutoHotkey post) 
&lt;/li&gt;
&lt;li&gt;
if the application is already running, cycle through the active windows (useful for
Firefox or Explorer windows) 
&lt;/li&gt;
&lt;li&gt;
make it easy to "force-launch": force a new instance/window, regardless of whether
it was already up and running. 
&lt;/li&gt;
&lt;li&gt;
give visual feedback on the launched-or-activated application 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It took me a little time to work out the AutoHotkey script syntax, especially for
dealing with arrays. In the script you set up an array of shortcut information, which
serves as a settings registry. It contains the following parts:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
display label: text that is shown in the visual feedback 
&lt;/li&gt;
&lt;li&gt;
a (unique) name: this is used to bind that particular command to a hotkey 
&lt;/li&gt;
&lt;li&gt;
a groupname: if a groupname is given, the script tries to loop through all the windows
that match the window ID that is assigned to this entry 
&lt;/li&gt;
&lt;li&gt;
windowId: set this to the "ahk_class" of the window. You can use Window Spy (right
click on any running AutoHotKey script tray icon) to find out this value for each
command you want to add to the registry. It will probably work with Windows titles
as well, but I never tried this since that method is a lot less reliable. 
&lt;/li&gt;
&lt;li&gt;
runcommand: the actual command you want the shortcut to point to if it needs to launch
the application (for instance, "c:\windows\system32\calc.exe") 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Adding a entry goes like this:
&lt;/p&gt;
&lt;pre class="brush: ahk;"&gt;;--1. SETUP
;     enter label, name, groupname, windowId, runcommand
AddShortcut("Windows Explorer", "Explorer", "ExplorerGroup", "ahk_class CabinetWClass", "C:\windows\explorer.exe /select,d:" )&lt;/pre&gt;
&lt;p&gt;
The next step involves hooking up the shortcut keys. This is standard AutoHotkey suff,
so please refer to the AHK manual for doing this. An example for Explorer and Firefox:
&lt;/p&gt;
&lt;pre class="brush: ahk;"&gt;#E::MyNewActivate("Explorer")
+#E::MyRun("Explorer")
F19::MyNewActivate("FF")
+F19::MyRun("FF")&lt;/pre&gt;
&lt;p&gt;
So, Windows key + E does the launch-or-activate trick, whereas Shift + Win + E forces
a new Explorer window.
&lt;/p&gt;
&lt;p&gt;
The rest of the script adds some visual eye candy that is in no way functionally necessary,
but it gives a nice, semi-transparent window that fades quickly. The three possible
windows are shown at the top of this post.
&lt;/p&gt;
&lt;p&gt;
The entire script is listed below; click expand source to view or copy.
&lt;/p&gt;
&lt;pre class="brush: ahk;collapse:true;highlight: [46];"&gt;#InstallKeybdHook

;--AUTOEXEC SECTION

GroupArrayCount := 0
SetTitleMatchMode 2

;--DISPLAY SETTINGS
;
INITIAL_TRANSPARENCY := 150
DELTA_TRANSPARENCY := 25
INITIAL_DELAY := 400
DELTA_DELAY := 50

;--1. SETUP
;     enter label, name, groupname, windowId, runcommand
;
AddShortcut("Windows Explorer", "Explorer",   "ExplorerGroup", "ahk_class CabinetWClass", "C:\windows\explorer.exe /select,d:" )
AddShortcut("Outlook", "Outlook", "OutlookGroup", "ahk_class rctrl_renwnd32", "C:\Program Files (x86)\Microsoft Office\Office12\outlook.exe")
AddShortcut("Firefox", "FF", "FireFoxGroup", "ahk_class MozillaUIWindowClass", "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" )
AddShortcut("Calculator", "Calculator", "", "ahk_class CalcFrame", "c:\windows\system32\calc.exe")

;--2. ASSIGN KEYS
; win + E does a "run or activate", shift + win + E forces a new window
#E::MyNewActivate("Explorer")
+#E::MyRun("Explorer")

F14::MyNewActivate("Outlook")
F19::MyNewActivate("FF")
+F19::MyRun("FF")

;--Ctrl + Shift + Esc starts Process Explorer (task manager on steroids)
+^Escape::MyNewActivate("PE")
#C::MyNewActivate("Calculator")
;
;--/AUTOEXEC SECTION


; FUNCTION SECTION
GlobalTrans := INITIAL_TRANSPARENCY

;--CloseWin has to be an AHK subroutine, SetTimer doesn't work with functions
;  also note: subroutines do not require the "global" keyword
;             to manipulate global vars
CloseWin:
  If (GlobalTrans &amp;lt;= 0)
  {
    Gui, Destroy  
  }
  else
  {
    WinSet Transparent, %GlobalTrans%, ahk_class AutoHotkeyGUI
    GlobalTrans := GlobalTrans - DELTA_TRANSPARENCY
    ; negative time means run only once
    SetTimer, CloseWin, -%DELTA_DELAY%
  }
return


ShowText(text, textColor)
{
  global
  GlobalTrans := INITIAL_TRANSPARENCY

  Gui, Destroy
  SetTimer, CloseWin, Off
  Gui +LastFound +AlwaysOnTop -Caption +ToolWindow
  Gui, Color, 404040
  Gui, Font, s32
  Gui, Add, Text, c%textColor%, %text%
  SetTimer, CloseWin, -%INITIAL_DELAY%
  Gui, Show, Center NoActivate
  WinSet Transparent, %GlobalTrans%, ahk_class AutoHotkeyGUI
}

AddShortcut(label, key, groupName, windowId, runCommand)
{
  global
  GroupArrayCount += 1
  Labels%GroupArrayCount% := label
  Keys%GroupArrayCount% := key
  if (groupName != "")
  {
    Groups%GroupArrayCount% := groupName
  }
  Ids%GroupArrayCount% := windowId
  Commands%GroupArrayCount% := runCommand
  if (groupName != "")
  {
    GroupAdd %groupName%,%windowId%
  }
}

MyNewActivate(key)
{
  global
  Loop %GroupArrayCount%
  {
    if (key == Keys%A_Index%)
    {
      local thisId := Ids%A_Index%
      local label := Labels%A_Index%
      if WinExist(thisId)
      {
        ShowText("switching to " . label, "Lime")
        local thisGroup := Groups%A_Index%
        if (thisGroup == "")
        {
          WinActivate %thisId%
        }
        else
        {
          GroupActivate %thisGroup%,r
        }
      }
      else
      {
        ShowText("launching " . label, "FF8800")
        local thisCommand := Commands%A_Index%
        run, %thisCommand%
      }
      break ; terminate the lookup
    }
  }
}

MyRun(key)
{
  global
  Loop %GroupArrayCount%
  {
    if (key == Keys%A_Index%)
    {
      local label := Labels%A_Index%
      ShowText("force new " . label, "FF3300")
      local thisCommand := Commands%A_Index%
      run, %thisCommand%
      break ; terminate the lookup
    }
  }
}&lt;/pre&gt;
&lt;p&gt;
Note that line 46 should read &lt;code&gt;If (GlobalTrans &amp;lt;= 0)&lt;/code&gt;, but the AHK brush
for SyntaxHighlighter gets a bit confused here (since the semicolon ";" is also the
AHK comment character). I found this brush &lt;a href="http://users.on.net/%7Emjneish/syntax/test.html"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=eea5b3d9-3974-4b94-8f4a-a0349efbe480" /&gt;</description>
      <comments>http://www.tjsolutions.nl/CommentView,guid,eea5b3d9-3974-4b94-8f4a-a0349efbe480.aspx</comments>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.tjsolutions.nl/Trackback.aspx?guid=2211657d-6f3d-4e1a-bd4b-2f7da571f808</trackback:ping>
      <pingback:server>http://www.tjsolutions.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.tjsolutions.nl/PermaLink,guid,2211657d-6f3d-4e1a-bd4b-2f7da571f808.aspx</pingback:target>
      <dc:creator>Tijmen</dc:creator>
      <wfw:comment>http://www.tjsolutions.nl/CommentView,guid,2211657d-6f3d-4e1a-bd4b-2f7da571f808.aspx</wfw:comment>
      <wfw:commentRss>http://www.tjsolutions.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=2211657d-6f3d-4e1a-bd4b-2f7da571f808</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I am sure I ran into this before, but it
took me some time to figure out yet again. Something like that always shouts "blog
it" to me, so here goes. I installed a <a href="http://msdn.microsoft.com/en-us/magazine/cc163973.aspx">ClickOnce</a> application,
that neatly installed itself and placed an appropriate shortcut in my start menu.
I then fired up Launchy, rebuilt the catalog and started looking for the new app...
which didn't show up. 
<br />
Searching through the start menu using standard Windows functionality of win-key +
start typing (which admittedly got a lot better and snappier in Windows 7, though
nowhere near powerful enough for us pro-keystrokers) resulted in the correct shortcut,
though. 
<br />
Long story short: the ClickOnce shortcuts have an extension *.appref-ms. By adding
that file type to the various directories that Launchy indexes (right click, options,
catalog tab) and rebuilding the catalog, the shortcuts show up in Launchy as well.
By the way, on my Windows 7 machine, the start menu shortcuts are in the following
folders (I am not sure if Launchy sets those correctly from the start):<br /><ul><li>
c:\ProgramData\Microsoft\Windows\Start Menu</li><li>
c:\users\&lt;username&gt;\AppData\Roaming\Microsoft\Windows\Start Menu</li></ul><img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=2211657d-6f3d-4e1a-bd4b-2f7da571f808" /></body>
      <title>Launchy and ClickOnce apps</title>
      <guid isPermaLink="false">http://www.tjsolutions.nl/PermaLink,guid,2211657d-6f3d-4e1a-bd4b-2f7da571f808.aspx</guid>
      <link>http://www.tjsolutions.nl/2009/08/17/LaunchyAndClickOnceApps.aspx</link>
      <pubDate>Mon, 17 Aug 2009 06:50:34 GMT</pubDate>
      <description>I am sure I ran into this before, but it took me some time to figure out yet again. Something like that always shouts "blog it" to me, so here goes. I installed a &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163973.aspx"&gt;ClickOnce&lt;/a&gt; application,
that neatly installed itself and placed an appropriate shortcut in my start menu.
I then fired up Launchy, rebuilt the catalog and started looking for the new app...
which didn't show up. 
&lt;br&gt;
Searching through the start menu using standard Windows functionality of win-key +
start typing (which admittedly got a lot better and snappier in Windows 7, though
nowhere near powerful enough for us pro-keystrokers) resulted in the correct shortcut,
though. 
&lt;br&gt;
Long story short: the ClickOnce shortcuts have an extension *.appref-ms. By adding
that file type to the various directories that Launchy indexes (right click, options,
catalog tab) and rebuilding the catalog, the shortcuts show up in Launchy as well.
By the way, on my Windows 7 machine, the start menu shortcuts are in the following
folders (I am not sure if Launchy sets those correctly from the start):&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
c:\ProgramData\Microsoft\Windows\Start Menu&lt;/li&gt;
&lt;li&gt;
c:\users\&amp;lt;username&amp;gt;\AppData\Roaming\Microsoft\Windows\Start Menu&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=2211657d-6f3d-4e1a-bd4b-2f7da571f808" /&gt;</description>
      <comments>http://www.tjsolutions.nl/CommentView,guid,2211657d-6f3d-4e1a-bd4b-2f7da571f808.aspx</comments>
      <category>Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.tjsolutions.nl/Trackback.aspx?guid=141c688a-3adc-4288-a7b1-993b27f133e5</trackback:ping>
      <pingback:server>http://www.tjsolutions.nl/pingback.aspx</pingback:server>
      <pingback:target>http://www.tjsolutions.nl/PermaLink,guid,141c688a-3adc-4288-a7b1-993b27f133e5.aspx</pingback:target>
      <dc:creator>Tijmen</dc:creator>
      <wfw:comment>http://www.tjsolutions.nl/CommentView,guid,141c688a-3adc-4288-a7b1-993b27f133e5.aspx</wfw:comment>
      <wfw:commentRss>http://www.tjsolutions.nl/SyndicationService.asmx/GetEntryCommentsRss?guid=141c688a-3adc-4288-a7b1-993b27f133e5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I intend to dedicate several (short) posts on the various tools I use to increase
my productivity. At some point I will post a complete list of my must-have tools,
but for now I want to focus on a new find (for me): the <a href="http://www.voidtools.com/" target="_blank">Everything
search engine</a>, by voidtools. Everything is a very silly name for a tool and its
functionality is not ground-breaking: it searches for files on your local machine,
based on their filename. This is obviously not rocket science, but it has a few distinctive
characteristics. The first is performance: it indexes an average system in seconds.
Literally. Searching is very snappy as well. Another big advantage is its low footprint.
it uses up very little memory and disk space, and since its indexing process is very
fast, there is no noticeable background disk churning like you get with default Windows
search or other third party tools. 
</p>
        <p>
So, after this intro there are a few things worth mentioning: using Everything together
with Launchy, and setting up Everything on a fileserver. 
</p>
        <p>
 
</p>
        <p>
          <strong>Everything on a (personal) fileserver</strong>
        </p>
        <p>
Everything can only index local disks. It does not index network shares or other remote
locations (so NAS users are out of luck I suppose). However, you can run Everything
as a service on a file server and have your local Everything client connect to this
server. As an alternative, you could just run Everything on the desktop at the server,
but that requires staying logged in all the time. In any case, you need to install
Everything on the server and make it start an ETP server.
</p>
        <p>
To install everything as a service, you need to follow these steps:
</p>
        <ol>
          <li>
Install Everything on the server</li>
          <li>
Disable "run on system start". Go to the tools menu, click options. On the general
tab, uncheck "Start everything on system start up", and click OK</li>
          <li>
Open up a command prompt, CD into the folder where Everything was installed, and enter <strong>everything.exe
-install_service</strong></li>
          <li>
This installs the server, but it does not set the command line option correctly: it
only runs Everything as a service for the local computer (i.e., the server), but we
want Everything to run as an ETP server. To do this, type the following at the command
prompt: <strong>sc config everything binPath= "c:\program files (x86)\everything\everything.exe
-svc -host"</strong> (replacing the path with your install path of choice, obviously).</li>
          <li>
Stop and start the service (either through control panel or the geeky way, by issuing <strong>net
stop everything</strong> (sounds kind of cool), followed by <strong>net start everything</strong>).</li>
        </ol>
        <p>
After this, configuration is done. Fire up Everything on another computer connected
to the file server and use the option "Connect to ETP server" on the tools menu. I've
had to use the IP number of my server since it did not do a name lookup, but I am
not running any local DNS or hosts file, so YMMV.
</p>
        <p>
Side note: Everything defaults to opening networked files on shares named after the
local drive letters, so it opens the folder <strong>documents</strong> on the E-disk
of the server as <strong>\\server\E\documents\.</strong> Not a huge problem, but something
to be aware of. I have not found a setting in the INI file (old skool!) to change
this.
</p>
        <p>
 
</p>
        <p>
          <strong>Using Everything from Launchy</strong>
        </p>
        <p>
This next bit is directly from <a href="http://lifehacker.com/5274774/integrate-everything-search-tool-and-launchy" target="_blank">Lifehacker</a>.
Simply add a shortcut in a location that is indexed by Launchy, and use <strong>"C:\Program
Files (x86)\Everything\Everything.exe" -search</strong> as the target. Name it appropriately
(for example, "find") and re-index Launchy. Now you can type "find", TAB, and enter
your search text. In order to do a search on your fileserver, make another shortcut,
but add <strong>-connect 192.168.1.1</strong><em>before</em> the -<strong>search</strong> 
option. I've named this shortcut "dfind", since my servername starts with a D.
</p>
        <p>
 
</p>
        <p>
I first read about Everything on the <a href="http://lifehacker.com/5178222/top-10-tiny--awesome-windows-utilities" target="_blank">top
10 tiny &amp; awesome Windows utilities</a> at Lifehacker.
</p>
        <img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=141c688a-3adc-4288-a7b1-993b27f133e5" />
      </body>
      <title>Tool: everything search tool (and Launchy)</title>
      <guid isPermaLink="false">http://www.tjsolutions.nl/PermaLink,guid,141c688a-3adc-4288-a7b1-993b27f133e5.aspx</guid>
      <link>http://www.tjsolutions.nl/2009/06/16/ToolEverythingSearchToolAndLaunchy.aspx</link>
      <pubDate>Tue, 16 Jun 2009 19:18:15 GMT</pubDate>
      <description>&lt;p&gt;
I intend to dedicate several (short) posts on the various tools I use to increase
my productivity. At some point I will post a complete list of my must-have tools,
but for now I want to focus on a new find (for me): the &lt;a href="http://www.voidtools.com/" target="_blank"&gt;Everything
search engine&lt;/a&gt;, by voidtools. Everything is a very silly name for a tool and its
functionality is not ground-breaking: it searches for files on your local machine,
based on their filename. This is obviously not rocket science, but it has a few distinctive
characteristics. The first is performance: it indexes an average system in seconds.
Literally. Searching is very snappy as well. Another big advantage is its low footprint.
it uses up very little memory and disk space, and since its indexing process is very
fast, there is no noticeable background disk churning like you get with default Windows
search or other third party tools. 
&lt;/p&gt;
&lt;p&gt;
So, after this intro there are a few things worth mentioning: using Everything together
with Launchy, and setting up Everything on a fileserver. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Everything on a (personal) fileserver&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Everything can only index local disks. It does not index network shares or other remote
locations (so NAS users are out of luck I suppose). However, you can run Everything
as a service on a file server and have your local Everything client connect to this
server. As an alternative, you could just run Everything on the desktop at the server,
but that requires staying logged in all the time. In any case, you need to install
Everything on the server and make it start an ETP server.
&lt;/p&gt;
&lt;p&gt;
To install everything as a service, you need to follow these steps:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Install Everything on the server&lt;/li&gt;
&lt;li&gt;
Disable "run on system start". Go to the tools menu, click options. On the general
tab, uncheck "Start everything on system start up", and click OK&lt;/li&gt;
&lt;li&gt;
Open up a command prompt, CD into the folder where Everything was installed, and enter &lt;strong&gt;everything.exe
-install_service&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
This installs the server, but it does not set the command line option correctly: it
only runs Everything as a service for the local computer (i.e., the server), but we
want Everything to run as an ETP server. To do this, type the following at the command
prompt: &lt;strong&gt;sc config everything binPath= "c:\program files (x86)\everything\everything.exe
-svc -host"&lt;/strong&gt; (replacing the path with your install path of choice, obviously).&lt;/li&gt;
&lt;li&gt;
Stop and start the service (either through control panel or the geeky way, by issuing &lt;strong&gt;net
stop everything&lt;/strong&gt; (sounds kind of cool), followed by &lt;strong&gt;net start everything&lt;/strong&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
After this, configuration is done. Fire up Everything on another computer connected
to the file server and use the option "Connect to ETP server" on the tools menu. I've
had to use the IP number of my server since it did not do a name lookup, but I am
not running any local DNS or hosts file, so YMMV.
&lt;/p&gt;
&lt;p&gt;
Side note: Everything defaults to opening networked files on shares named after the
local drive letters, so it opens the folder &lt;strong&gt;documents&lt;/strong&gt; on the E-disk
of the server as &lt;strong&gt;\\server\E\documents\.&lt;/strong&gt; Not a huge problem, but something
to be aware of. I have not found a setting in the INI file (old skool!) to change
this.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Using Everything from Launchy&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This next bit is directly from &lt;a href="http://lifehacker.com/5274774/integrate-everything-search-tool-and-launchy" target="_blank"&gt;Lifehacker&lt;/a&gt;.
Simply add a shortcut in a location that is indexed by Launchy, and use &lt;strong&gt;"C:\Program
Files (x86)\Everything\Everything.exe" -search&lt;/strong&gt; as the target. Name it appropriately
(for example, "find") and re-index Launchy. Now you can type "find", TAB, and enter
your search text. In order to do a search on your fileserver, make another shortcut,
but add &lt;strong&gt;-connect 192.168.1.1&lt;/strong&gt; &lt;em&gt;before&lt;/em&gt; the -&lt;strong&gt;search&lt;/strong&gt;&amp;nbsp;
option. I've named this shortcut "dfind", since my servername starts with a D.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I first read about Everything on the &lt;a href="http://lifehacker.com/5178222/top-10-tiny--awesome-windows-utilities" target="_blank"&gt;top
10 tiny &amp;amp; awesome Windows utilities&lt;/a&gt; at Lifehacker.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.tjsolutions.nl/aggbug.ashx?id=141c688a-3adc-4288-a7b1-993b27f133e5" /&gt;</description>
      <comments>http://www.tjsolutions.nl/CommentView,guid,141c688a-3adc-4288-a7b1-993b27f133e5.aspx</comments>
      <category>Tools</category>
    </item>
  </channel>
</rss>