imfam, не совсем понял зачем клавиша 
Shift к кнопке прямого действия? Клавишу Shift обычно используют для отображения скрытых пунктов контекстного меню. Команда 
fb.RunMainMenuCommand("Playback/Device/Preferences...") работает как и раньше на foobar2000 v1.3.20, может в новой версии v1.4 и выше изменилась строка команды? (Пример: было fb.RunMainMenuCommand("
DSP #1 config") стало fb.RunMainMenuCommand("
View/DSP/DSP #1 config") )
Ну и пример использования клавиши 
Shift для контекстного меню по ПКМ, без нажатой клавиши пункты меню Properties... и Configure... скрыты.
- Код: Выделить всё
- var rbtnDown, ShiftDown;
 function on_mouse_rbtn_down(x, y, vkey){
 rbtnDown = true;
 ShiftDown = vkey==6 ? true : false;
 }
 
 function on_mouse_rbtn_up(x, y, vkey){
 if (!rbtnDown) return true;
 rbtnDown = false;
 if (ShiftDown)
 return;
 }
 
 ====================================
 ///////////////////////////////////
 if (ShiftDown){
 _menu.AppendMenuItem(MF_SEPARATOR, 0, 0)
 _menu.AppendMenuItem(MF_STRING, 7, "Properties...");
 _menu.AppendMenuItem(MF_STRING, 8, "Configure...");
 }