I can vouch for OneForAll remotes and the usb JP1 cord. I have been able to add devices codes to the URC-8910 remote that weren't there originally in it to control stuff (lcd tv, dvd player, Hauppauge MVP, JVC bookshelf stereo system, RCA video selector). Yes, the 8910 can learn BUT the learned codes take up way more memory than device codes. For learning, the remote remembers like this: send a pulse, wait xx long, send another pulse, wait some more, etc until the button pressed is completely transmitted. Using the learning function, my remote could only hold about 12 buttons or so. Making device codes, the remote can hold MUUUCH more. It is like telling the remote to use code 'Z' and transmit 'Volume Up'. I have never tried to emulate an IR keyboard but I don't see why you couldn't.