I poked around for some Windows freeware that can do this and found AllChars. It's main purpose is to give quick shortcuts to foreign characters, but it also comes with a nice macro feature. You set up a sequence of characters (your shortcut) and tell the program what to translate it to. The program waits for you to press and release the macro key ("/" by default) and then translates your shortcut into the full text for you.

I changed the default macro key to "[", since that's the key I'd be using anyway. Then I set my shortcuts as follows:

u = [ url= ][ /url ]
b = [ b ][ /b ]
i = [ i ][ /i ]
q = [ quote ][ /quote ]

So all I have to type to get the codes is [ plus the first letter of the UBBCode I want.