I was going to suggest Tasker. I am only new to it, when I checked it out, I found it cant register volume button presses.

http://tasker.dinglisch.net/userguide/en/faqs/faq-how.html#c

But it does say it can respond to changes in volume, which seems like the same thing. If u are familiar with Tasker it seems like it could be worth a shot..