Я пытаюсь привязать, например, действие копирования к одной из моих кнопок мыши. Мне удалось заставить его работать с громкостью вверх или вниз с помощью следующего кода:
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int APPCOMMAND_VOLUME_UP = 0xA0000;
private const int APPCOMMAND_VOLUME_DOWN = 0x90000;
private const int WM_APPCOMMAND = 0x319;
IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg,
IntPtr wParam, IntPtr lParam);
public void Mute()
{
SendMessageW(handle, WM_APPCOMMAND, handle,
(IntPtr)APPCOMMAND_VOLUME_MUTE);
}
public void VolDown()
{
SendMessageW(handle, WM_APPCOMMAND, handle,
(IntPtr)APPCOMMAND_VOLUME_DOWN);
}
public void VolUp()
{
SendMessageW(handle, WM_APPCOMMAND, handle,
(IntPtr)APPCOMMAND_VOLUME_UP);
}
Теперь я хочу сделать то же самое с копией. Я пытался делать это с ключевыми событиями и просто имитировать нажатия клавиш, но это не слишком хорошо работает. Поэтому я попытался выяснить, какая константа была для команды COPY. Вот что я нашел в документации Microsoft:
Но если я определю команду как private const int APPCOMMAND_COPY = 0x360000
, она просто не будет работать. Поэтому я попытался преобразовать это число в шестнадцатеричное и изменило его на private const int APPCOMMAND_COPY = 0x240000
. Но это тоже не работает.
Я здесь что-то не так делаю или кто-нибудь может указать мне правильное направление?