AutoHotkey and Palm Desktop

I’m coming to the realization that my email inbox is not a task management system, it’s an inbox. I don’t need to abuse it as a list of things I need to do, I just need to grab the necessary details from the email and create a regular task in my Treo’s Tasks application. But since I use Thunderbird and Palm Desktop instead of MS Outlook, there’s not a particularly seamless way to tie pop up a new task or a new appointment from my email. Honestly, I had gotten so used to not having Palm Desktop at all (previously, my m515 cradle was at home instead of at work) that I’d built a bad habit of just scribbling in the tasks manually.

But for all of the Treo’s advantages, it just doesn’t feel quite as easy to enter information with the keyboard as it was with Graffiti 1 on the m515. I know it should be faster, and maybe it is. But it doesn’t flow like handwriting does. What would be great would be to use my office system’s full-size keyboard to enter a task into Palm Desktop, and then HotSync it to the Treo. But now we’re back to the pain of keeping Palm Desktop open, switching to it from Thunderbird, selecting the Calendar or Tasks pane, and then adding a new entry. Not convenient.

Enter AutoHotKey. This is basically a macro-typing tool for Windows. Its scripting language is flexible enough to start applications, check if an application is already running, and insert characters into the keyboard buffer. Now I have something I can work with. To wit, my “New Task” and “New Appointment” hotkeys, bound to Windows-T and Windows-N respectively, so that they parallel Menu-T and Menu-N in DateBk6:

;
; Create new appointment in Palm Desktop 4.1.4 with Win+N
;
#n::
IfWinExist Palm Desktop
{
	WinActivate
}
else
{
	Run C:\\Program Files\\Palm\\Palm.exe
	WinWait, Palm Desktop, , 10
}
if ErrorLevel
{
	MsgBox Palm Desktop did not start within 10 seconds.
	return
}
else
{
	WinActivate
	Send !vc{Enter} ; View / Calendar
	Sleep 100
	Send ^n ; New Event
	return
}

;
; Create new task in Palm Desktop 4.1.4 with Win+T
;
#t::
IfWinExist Palm Desktop
{
	WinActivate
}
else
{
	Run C:\\Program Files\\Palm\\Palm.exe
	WinWait, Palm Desktop, , 10
}
if ErrorLevel
{
	MsgBox Palm Desktop did not start within 10 seconds.
	return
}
else
{
	WinActivate
	Send !vt ; View / Tasks
	Sleep 100
	Send ^n ; New Task
	return
}