Как программно скопировать выбранные данные? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь привязать, например, действие копирования к одной из моих кнопок мыши. Мне удалось заставить его работать с громкостью вверх или вниз с помощью следующего кода:

 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: enter image description here Но если я определю команду как private const int APPCOMMAND_COPY = 0x360000, она просто не будет работать. Поэтому я попытался преобразовать это число в шестнадцатеричное и изменило его на private const int APPCOMMAND_COPY = 0x240000. Но это тоже не работает.

Я здесь что-то не так делаю или кто-нибудь может указать мне правильное направление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...