Я пробовал это так много раз, и он ударил или пропустил, если это работает.Что вы хотите сделать, это попытаться использовать WM_SYSKEYDOWN вместо WM_KEYDOWN для ключей «системного» типа.Это также означает, что вы должны использовать WM_SYSKEYUP.Примерно так может работать:
PostMessage(proc.MainWindowHandle, WM_SYSKEYDOWN, VK_CONTROL, 0);
PostMessage(proc.MainWindowHandle, WM_SYSKEYDOWN, VK_ALT, 0);
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_RIGHT, 0);
PostMessage(proc.MainWindowHandle, WM_SYSKEYUP, VK_ALT, 0);
PostMessage(proc.MainWindowHandle, WM_SYSKEYUP, VK_CONTROL, 0);
Обновление:
Имеется только симуляция нажатий клавиш для отдельных клавиш, отлично работает даже для свернутых приложений :).При использовании его в качестве комбинированной клавиши для состояний «сдвиг», это место, где оно попадает или отсутствует.Проблема в том, что большинство оконных приложений имеют элемент управления, и каждый элемент управления имеет свой дескриптор, поэтому отправка ключа в окно не имеет желаемого эффекта, вы должны отправить ALT + S на дескриптор «Menu», чтобы сохранить файл (скажем, в блокноте), который тоже работает.