UPDATE:
I found a solution that worked for me and thought I would post it for anyone who needs this solution. Eventghost and FLIRC Utilities would not work for me, or I could not get them to work. So I downloaded a program called AutoHotKey and modified a script to do SMS styled text from the remote. The script is in this post: http://www.autohotkey.com/board/topic/119547-simple-doubletriple-remap-question/
To use it simply:
Download and install AutoHotkey
Copy Script from linked post above (or in quotes below)
Paste Script into new Notepad (text editor)
Save with the extension .ahk
Open new saved script
I have also placed it in my startup folder so that it is always running on my htpc. Enjoy.
2::
if 2_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
2_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
2_presses = 1
SetTimer, Key2, 900 ; Wait for more presses within a 900 millisecond window.
return
Key2:
SetTimer, Key2, off
if 2_presses = 1 ; The key was pressed once.
{
SendInput {Numpad2}
}
else if 2_presses = 2 ; The key was pressed twice.
{
SendInput {a}
}
else if 2_presses = 3
{
SendInput {b}
}
else if 2_presses > 3
{
SendInput {c}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
2_presses = 0
return
3::
if 3_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
3_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
3_presses = 1
SetTimer, Key3, 900 ; Wait for more presses within a 900 millisecond window.
return
Key3:
SetTimer, Key3, off
if 3_presses = 1 ; The key was pressed once.
{
SendInput {Numpad3}
}
else if 3_presses = 2 ; The key was pressed twice.
{
SendInput {d}
}
else if 3_presses = 3
{
SendInput {e}
}
else if 3_presses > 3
{
SendInput {f}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
3_presses = 0
return
4::
if 4_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
4_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
4_presses = 1
SetTimer, Key4, 900 ; Wait for more presses within a 900 millisecond window
return
Key4:
SetTimer, Key4, off
if 4_presses = 1 ; The key was pressed once.
{
SendInput {Numpad4}
}
else if 4_presses = 2 ; The key was pressed twice.
{
SendInput {g}
}
else if 4_presses = 3
{
SendInput {h}
}
else if 4_presses > 3
{
SendInput {i}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
4_presses = 0
return
5::
if 5_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
5_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
5_presses = 1
SetTimer, Key5, 900 ; Wait for more presses within a 900 millisecond window.
return
Key5:
SetTimer, Key5, off
if 5_presses = 1 ; The key was pressed once.
{
SendInput {Numpad5}
}
else if 5_presses = 2 ; The key was pressed twice.
{
SendInput {j}
}
else if 5_presses = 3
{
SendInput {k}
}
else if 5_presses > 3
{
SendInput {l}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
5_presses = 0
return
6::
if 6_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
6_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
6_presses = 1
SetTimer, Key6, 900 ; Wait for more presses within a 900 millisecond window.
return
Key6:
SetTimer, Key6, off
if 6_presses = 1 ; The key was pressed once.
{
SendInput {Numpad6}
}
else if 6_presses = 2 ; The key was pressed twice.
{
SendInput {m}
}
else if 6_presses = 3
{
SendInput {n}
}
else if 6_presses > 3
{
SendInput {o}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
6_presses = 0
return
7::
if 7_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
7_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
7_presses = 1
SetTimer, Key7, 900 ; Wait for more presses within a 900 millisecond window.
return
Key7:
SetTimer, Key7, off
if 7_presses = 1 ; The key was pressed once.
{
SendInput {Numpad7}
}
else if 7_presses = 2 ; The key was pressed twice.
{
SendInput {p}
}
else if 7_presses = 3
{
SendInput {q}
}
else if 7_presses = 4
{
SendInput {r}
}
else if 7_presses >
{
SendInput {s}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
7_presses = 0
return
8::
if 8_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
8_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
8_presses = 1
SetTimer, Key8, 900 ; Wait for more presses within a 900 millisecond window.
return
Key8:
SetTimer, Key8, off
if 8_presses = 1 ; The key was pressed once.
{
SendInput {Numpad8}
}
else if 8_presses = 2 ; The key was pressed twice.
{
SendInput {t}
}
else if 8_presses = 3
{
SendInput {u}
}
else if 8_presses > 3
{
SendInput {v}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
8_presses = 0
return
9::
if 9_presses > 0 ; SetTimer already started, so we log the keypress instead.
{
9_presses += 1
return
}
; Otherwise, this is the first press of a new series. Set count to 1 and start
; the timer:
9_presses = 1
SetTimer, Key9, 900 ; Wait for more presses within a 900 millisecond window.
return
Key9:
SetTimer, Key9, off
if 9_presses = 1 ; The key was pressed once.
{
SendInput {Numpad9}
}
else if 9_presses = 2 ; The key was pressed twice.
{
SendInput {w}
}
else if 9_presses = 3
{
SendInput {x}
}
else if 9_presses = 4
{
SendInput {y}
}
else if 9_presses >
{
SendInput {z}
}
; Regardless of which action above was triggered, reset the count to
; prepare for the next series of presses:
9_presses = 0
return