Hacking AirClick USB for Windows/PC

(updated below)

In the aftermath of changing to my new Cherry MX switched keyboard I have found myself missing the handy media buttons on the old membrane keyboard.

So I had a little google about (using google) and found the Griffin Technology AirClick USB. A handy little Human Interface Device, it has five buttons and a number of plugins that allow you to control various applications. Primarily I was interested in Winamp control, playing, pausing and changing tracks. I had a deeper look into it and one of the available plugins in Sean Wilson’s new version 2 software is a winamp plugin. Cool, so I bought one.

Works great. Until I went to change volume that is, it’s just too slow for my purposes.

In the release notes there is the following addition to the latest version mentioned:

Easier creation of additional Plugins using any .Net supporting language

Well fantastic, I can do that, perhaps I can write my own winamp plugin. Plenty of searching around their site later and there’s no help or info on doing any such thing. I emailed support and got back a plugin that used sendkeys to just send configurable keys to Windows. Not a lot of use if you happen to be typing at the time!

I found the developer of the Mac software and his blog. He’s posted ways to hack the Mac version, no go for PC though.

I then noticed that the .acp plugin files in AirClick’s plugin folder were just renamed .net 2.0 IL dlls so I emailed support again asking if there was any supporting source code for writing your own plugins.

While I was waiting for a response I had a quick fiddle with Lutz Roeder’s Reflector and Denis Bauer’s FileDisassembler plugin and generated a C# project from the winamp.acp plugin. It compiled with no trouble, so I renamed the .dll to .acp, dropped it in the pugins folder, restarted AirClick and everything worked. Fantastic. Now I can get on with hacking it.

A little bit of coding later and I’ve now got a volume control that smoothly accelerates from small changes to larger the longer you hold down a button.

Then the reply came back from support:

Unfortunately we do not have source code for the AirClick. This is info that doesn’t leave the doors of research and development.

Oh dear, really, well I’m screwed then.

*GRINS*

So top marks to Mr.Wilson and his code, but the usual non-technical nounce of the average support department proves to be a barrier yet again. Great product on the other hand.

Updated Information

I decided it was worth trying to contact Griffin again, so I penned a very similar email to the last one. This time I got a direct response from Sean Wilson, the creator of the PC AirClick software.

I have not written a formal SDK or Visual Studio template for writing

AirClick plugins yet, but I do have a txt file I wrote up real quick

to send to people who are interested in writing their own. I will

attach it with this email.  – Sean Wilson

Great stuff! So here’s a copy of that file for all you plugin makers.

Making Plugins

And here’s my modified Winamp plugin.

55 thoughts on “Hacking AirClick USB for Windows/PC”

  1. Hi,
    I have been at my wits end with airclick. I love the concept but I cannot get it to work properly with Windows XP. It works fine for a while then decides for some reason to quit responding. The red flash icon does not come on either. The only way I can get it to work again is to unplug the USB connection. Quitting and restarting it does not work. I have contacted their techs by email and phone and they have no answers. Here is the ‘kicker’. It works great with my Windows 2000 OS using Windows Media Player 9. With XP I have shut down all possible applications and unplugged all PCI cards and airclick still stops working.
    If you have any suggestions I would really appreciate it.

    Thanks,
    Jerry Cox

  2. Glad i came across this site, knowing .acp files are .net dlls is a great help.
    Thank You for your work and discovery.
    Any chance you could post or send both your plugin and the Sendkeys plugin that Griffin Support sent you?

  3. Hi Jerry

    I have the exam same problem. I emailed tech support and they said that it sounds like a hardware problem – however, I know it is a software issue. Once the airclick stops responding, the red light still flashes when I press a button on the device. It’s kind of like windows stops responding to it, or something. I can’t figure it out either and it’s grilling me! In order to fix the problem, I have to unplug and replug the USB connection. I hope someone can help!

  4. Me again,

    after widening my search and looking for information, I found this:

    http://groups.google.co.za/group/microsoft.public.windowsxp.general/browse_thread/thread/55a669ae993fb331/ac4a1c1eba7e4ef1#ac4a1c1eba7e4ef1
    Check out the response from Tom Koch:

    Go to Control Panel|System (or Winkey-Pause/Break), click Hardware,
    click Device Manager. Under “Universal Serial Bus Controllers”,
    double-click on “USB Root Hub”, then click “Power Management” and remove
    the check mark for “Allow the computer to turn off this device to save
    power.”

    If this doesn’t work, I decided to take my airclick off the extension it was on. Is yours on a USB extension? If so, unplug the extension and plug the airclick straight into the front of your PC (don’t plug it into the back in case it is sensitive to interference).

    I just tried this, unplugged & replugged the airclick, and it has so far worked for about 50 clicks ;) Before, it was stopping after 3-5!

    Hope this helps

  5. Thanks for this info on the AirClick. I too am trying to use the device actually just to simulate the “cursor control” keys to use it as a presenter. Would it be possible for you to send me the “SendKeys” plugin and (soory to have the nerve) a quick steer on how to use it?

    best regards

    David

  6. Sure, the SendKeys plugin is here complete with instructions:

    Download: SendKeys.zip

    I’m sure Griffin won’t mind. They really want people to make plugins I think, just the one bloke I spoke to that didn’t understand.

  7. Now that’s what I call support!!!! (even though you disclaim it :-) (less than 5 minutes) Many thanks

  8. Hi, I baught this remote with a presentation software that I have (Mediashout). But alas there is no support.

    After finding your page, I thought I would ask if you could make a plugin for me.

  9. Hey,

    Another Air Click user here. I just bought windows Vista Home Premium edition, luckily airclick works with it. However, I was wondering if anyone knows of a plugin/knows how to make a plugin that would work with Windows Media Center I got my airclick mainly to use it with that.

    Thanks a lot!

  10. Don’t you really need cursor control for media centre? As in up down left and right. I guess with five buttons on the AirClick USB you could have left, down, up, right, and select. You’d have nothing to go back a menu though. Perhaps you could just get away with up and down? I don’t know Media Centre at all so I couldn’t say.

    Any .net programmer would be able to program a quick plugin though once you knew what you wanted to do.

  11. Yea there is Up| Down |Left |Right |Play;Select (Enter| Back required. Meaning one of the functions would need to be set for a Hold Action or a combination of the keys. I think with the current driver, pressing multiple keys on the airclick doesn’t change what the action would be. For example Pressing Volume Up and Volume Down at the same time couldn’t equal back. However, I have seen (In winamp for example) the remote doing different actions depending on if you hold the button or not (Next track is one click Fast Foward is Hold). Perhaps they could program so that holding play would=back. The other problem is that Fast Foward and Rewind via mouse so i don’t think those are programable with the Airclick. I know making a plug in like this is most likely impossible but hey figured i’d ask.

    Now for the good news, after emailing Grffin asking about vista support. They are apparently working on Vista support right now which means at least a update for our software and i’m guessing more support!

  12. *The other problem is that Fast Foward and Rewind only work via mouse so i don’t it’s possible to add a function to fastfoward/rewind.*

  13. that’s interesting GregM. It seems it is possible to program the Airclick to do different things via Two Buttons at the same time. Meaning you could, in theory, use the Airclick for 5 Different actions. Meaning this remote could be used with Windows Media Center for vista if programed correctly.

  14. thanks for the sendkey plugin, I wonder if we can send “media key” instead of just keys from a regular keyboard

  15. thanks for the sendkey info – I’d like to program airclick for media player classic and foobar, can you tell me the code for the Spacebar key on the keyboard

  16. Griffin support got back to me within 24 hrs with this:

    “You simply need to press the spacebar key. The curser will move one space to the right. You do not need brackets or parenthesis. Just press the spacebar once in the Play/Pause field. Thanks for your patience.”

  17. Hey – I’ve recently come back to this option for a remote for my CarPC.

    It works great in WinAmp and in Windows Media Player. The ony thing I need is to get it to work in my front end. This front end uses Windows Media Player, but it runs it’s own instance. I’ve downloaded the sendkey.acp application hoping to be able to map the keys, but I’m not having any luck.

    This portion of the readme states:

    To set which keys you want to send to the active app, select the plugin on the menu, then press both the volume up and volume down buttons. A window should pop up with a text box corresponding to each of the remote buttons.
    Just enter the keys you want to correspond to each button press.

    Select ‘the’ plug in…which plug-in? The sendkey plug-in or the plug-in of the application I want to use?

  18. I’d say the readme is referring to the Airclick plugin.

    I’ve not had used the Sendkeys plugin, it couldn’t solve my problem with Winamp. The support at Airclick obviously didn’t have a clue what I was on about, too technical for them I guess, and just tried to placate me with the Sendkeys plugin.

    The problem with the Sendkeys plugin is that it can only send keystrokes to the currently active application. So for example if I’m typing in Word and I want to control Winamp with it I have to click on Winamp before using the AirClick, otherwise the keystrokes will just appear in Word.

    This makes the Sendkeys plugin of limited use.

    I don’t know about CarPC but I’d guess that once you’ve launched something from the front end then the front end loses focus, and therefore won’t be controlable with the Sendkeys plugin until you give it focus back.

    I’d recommend writing your own plugin for the frontend or adapting the exisiting WMP plugin.

  19. well, I am a little stupid .. bu for the ssmaart people that have builld the plugin for winamp .. can someone share if it is possible, a plugin for controling vista media center .. it seem that Griffin have no intention to do that !

  20. I don’t have Vista installed anywhere I’m afraid. It shouldn’t be too much of a change from the exisiting WMP plugin though if someone wanted to recode it.

    Saying that, my refiddling of their Winamp plugin is stil the only non-Griffin plugin I’ve seen around.

  21. I’ve just today emailed support again to see if they have a Visual Studio template for plugins, if they published such a template then it would open the Airclick to many more applications.

    You’d think they would do so, it can only improve sales surely?

    We’ll see what support say, or whether they even understand the request.

  22. I’m thinking about getting this remote to use specifically with winamp. Looks like the control now supports winamp out of the box. Can anyone say if winamp can be launched with the airclick remote? Or does winamp already have to be open for the remote to work? The product manual uses iTunes for it’s example and says that pressing any button on the remote will open iTunes–is that the case with winamp?
    Also, if you want to use the remote for more than one application (say WinDVD), do you have to manually reconfigure when you want to use something other than winamp? In other words, would you have to set it for WinDVD while you were watching a movie and then set it back to winamp when you’re done?

  23. Yes it will launch winamp when you click play, if winamp is the currently selected app.

    You can change the selected app, with on screen display of what you’ve changed to, by holding one button and moving through the list of plugins with two others.

  24. I love your example source. I have been trying unsuccessfully to send WM_COPYDATA from your example code to a c# windows form project I’ve been creating. Is this possible? Can you upload an example project with WM_COPYDATA as I would like to remap all the buttons on this remote to control a c# windows form.

  25. I have Rhaposody installed. Have had many go arounds with support on how to make it work with Rhapsody. I can not figure out the correct words to use for Play/Pause using send keys. Works very well on Windows Media Player

  26. The Sendkeys plugin is pretty pants, for a start it will only control the currently focused (active) application. So if you’re tapping away in Word and press a button it won’t send that key to Rhapsody, but instead to Word. Fairly useless.

    You need to find a Rhapsody user who is also a .net developer (C# or VB) and an AirClick owner.

    Not a lot I can do about it as Rhapsody don’t want anything to do with me as a UK citizen.

    I’d suggest querying Rhapsody users for .net developers. If you can’t find one with an AirClick then offer to buy them one!

    Try the Rhapsody forums?

  27. The Zoom Player plugin works awesomely! Thanks for posting.

    By the way, if anyone wants the Griffin to control Windows volume as opposed to application volume, the Zoom Player plugin does just that.

    Thanks for sharing.

  28. Is there a way to make a plugin or map the keys to the Netflix Player, that runs in Internet Explorer to stream movies from netflix. The Media Player setting doesn’t work.

    I know there is away to make netflix playable through the media center, but i’d much rather be able to map the keys.

    Thanks for all the useful info.

  29. I have the Air click and would like to have the sendkey Hold a key as I hold the button and release it when I release

  30. Theo, you’d be better off making a whole new plugin for your purpose.

    The sendkeys plugin is nasty.

    Have a look at the Making Plugins link at the end of the article.

  31. Thank you so much Dmitry Fedorov, (Spacibo!)

    I use your plugin while watching movies on VLC. WMP cannot sync audio as well as VLC.

    And to Iain Norman, Why would you need to use a remote when you are at the keyboard typing away at a word document? That completely defeats the purpose of getting a remote that could be used through walls 60 feet away and you want it to work while you are sitting at the damn keyboard with word?

    Anyways thanks for the plugin it works great with vlc. Quick question though, I do not have a use for the shutdown button and I dont want to accidentally shutdown my computer in the middle of a movie because i held the button too long. Can i simply delete the line which says

    PowerOff Reboot ShutDown Suspend Hibernate

    in notepad? I just need to disable that feature. Thanks

  32. Yevgeniy, as the top of the article says, my keyboard doesn’t have media buttons. So I bought the AirClick to perform that duty.

  33. Oh, sorry. You should just go to fry’s they should have a simple keyboard with the multimedia buttons for less than 20 bucks.

  34. Guys, I’m not a programmer and I’m not really up to date on “hacking”. Is there an easy way to use VLC with Airclick ? Ideally copy a plugin in the right path, selcet VLC on airclick and that’s it.
    Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>