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...");
}