Table of Contents

Tools

Some essential utilities I want to be able to find again or recommend to friends.

Notifu

Win32 utility to create pop-up balloons from a command line. Essential for scripting!

Screenshot of Notifu showing a Balloon notification

Website: http://www.paralint.com/projects/notifu/

SendMsg

Win32 utility to send windows messages to applications, allowing you to simulate button presses etc from a command line. You need to use a tool like Spy++ to capture the messages you want to replay.

Website: http://www.maxoutput.com/SendMsg.html

Win32 Fix-ups

When you rebuild a machine, there are a number of things you always need to do to get it feeling right - such as changing file associations etc. Well now and again I find a nifty trick to do something properly or automatically, and these are listed below.

Uninstall ancient MSN Messenger

Just run this command: !!RunDLL32.EXE advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove!!

Uninstall Windows Picture and Fax Viewer

This 'feature' is just plain annoying, because the default shell action is “Preview” when it blatently ought to be “Open”. This means that even if you install a decent picture viewer, it won't take effect. But you can remove this annoyance with:

!!regsvr32 /u /c shimgvw.dll!!

NB: This also removes the ability to show thumbnails (mini-thumbnails on a folder icon do still appear to work though, but that might be cached)

Firefox Magic

GreaseMonkey

I hate websites which use href='javascript:window.document.href='…' in their <a>..<a/> tags when an ordinary link would do! You can't middle-click JS links into new tabs!

Here's a script which fixed this for me:

// ==UserScript==
// @name           Rewrite JS URLs to ordinary URLs
// @namespace      myscripts
// @include        http://www.example.com/silly_web_2.0/*
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// ==/UserScript==
 
$(document).ready(function() {  
        $("a[href]")
            .each(function(index, domElement){
                var jObj = $(this)
                var rHref = jObj.attr("href");
                if( rHref.match(/^javascript:window.document.location='[^']*'$/) ) {
                    rHref = rHref.replace(/^javascript:window.document.location='/, "");
                    rHref = rHref.replace(/'$/, "");
                    jObj.attr("href", rHref);
                }
            })
        ;
});

You need to replace @include to match the URLs you want the script applied to, and you probably want to change the namespace to better suite your personal organisation of greasemonkey scripts.