Asus Notebook and problematic multimedia key. Foobar2000 example

 

If you have Asus notebook with ATK multimedia keyboard driver, you probably experienced problem (or feature) that pressing PLAY or Fn-Down arrow launches Windows Media Player. Personally I'm using Foobar2000, some people prefer Winamp, others like other players, but this button seems not to be seen by ANY of these players as multimedia-compatible key. It looks it's hard-coded to launch Windows Media Player (some crapware-bloated notebooks seem to launch Windows Media Center instead of WMP, some are running Asus InstantFun).

There are some fixes made by Asus community to make this button work in standard way, but they are usually Terminate-and-stay-resident programs eating even 10MB of RAM. I don't like many processes in my list, let's make it another, less resource-consuming way.

First, get this program (source). It virtually emulates pressing PLAY/PAUSE button on multimedia keyboard. If you run it, it'll just make system think the key was pressed and exit. It's not a conventional PLAY/PAUSE button, as its code is taken from my multimedia keyboard, which is quite not standard, yet it works.

Now we need to make Asus driver not run WMP/WMC/crapware, but run our program.

How to change it? Let's see which process is responsible for multimedia keys. It's usually DMedia.exe or HControl.exe. In my laptop it's HControl.exe. If after pressing Ctrl-Alt-Del you can find DMedia.exe on processes list and this key launches Asus InstantFun, go to the end of page to know what to do with DMedia driver. But if you haven't installed Asus multimedia crapware, you probably have HControl launching Windows Media Player.

Let's investigate with ProcMon what's HControl doing when PLAY is pressed:

What we should see here:
It looks for key HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\PowerDVD
It's not found, so it looks for: HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\WinDVD.EXE
It's not found, so it looks for: HKLM\Software\Microsoft\Multimedia\WPlayer\Player.Path
It's found, its default data is C:\Program Files\Windows Media Player\wmplayer.exe, data is executed.

OK, to run a program, let's "hijack" the first absent registry key and use it. I have a very bad experience with PowerDVD (hangs, problems and usage of security compromised libraries), so I don't have it.
Run Regedit, Go to HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\, there make a new Key called PowerDVD and change default string value here to path to PLAY.EXE program:


Now just copy Play.exe to the directory and you're ready! You should NOT use WMP directory as I did, as it may confuse some people while fiddling with registry.

Let's peek at the HControl process now:

It finds PowerDVD key
Then it launches program from it dropping WMP.

Make sure that you'll use tis shortcut as Global in Foobar2000, as it won't work in some conditions. It'll show as (unknown) key, but it'll work.

As you'll launch PLAY.EXE more and more, Windows will buffer it and make running it very fast.

And for DMedia users:
DMedia usually launches Asus InstantFun from Play button. To make it work, you can just make a backup of InstantFun.exe and copy PLAY.EXE as InstantFun.exe in its directory. Voila, the same effect!

UPDATE 2016/17: For some totally unknown reason, some ant-virus tools can detect this tool as "generic" virus. This is not true, but is similar to tools which are used to bypass nagware and that's why it's detected. If you don't trust this page, you can always build this program from source or use AutoIt script.

MCbx, 2012


Home
Back to home pagehacks
Back to hacks