Я использую RegisterHotKey Win32 API для прослушивания комбинации клавиш Ctrl_V и использую метод WndProc для обработки этого уведомления о горячих клавишах. Теперь, даже если я не выполняю никаких операций в этом методе, кроме вызова base.WndProc (ref mesg), операция Paste, похоже, не передается в Windows, и, следовательно, вставка не работает. Мне удалось заставить текст работать, явно вызвав SendKeys ("^ V"), но он не работает для нетекстовых данных. Я также попробовал SendMessage Win32 API, как показано ниже
SendMessage(foregroundWindowHandle, 0x302, 0, 0);
но даже это не работает.
Я не могу понять, как выполнить мой код, а затем позволить Windows выполнить вставку изображений, файлов и т. Д. Любая помощь в решении этой проблемы будет очень своевременной и высоко ценится.
ОБНОВЛЕНИЕ: Я обнаружил, что проблема в том, что окно, в котором генерировалась команда Вставить, не возвращало фокус. После исправления, Paste работает нормально для Notepad. Кроме того, теперь я использую Alt_Shift_V в качестве горячей клавиши, чтобы избежать конфликтов с командой вставки по умолчанию. Таким образом, вставка нетекстовых данных работает нормально. Однако вставка текста в приложения Visual Studio и Office не работает. SendKeys ("^ V"), по-видимому, интерпретируется по-другому в этих приложениях. Любая идея о том, как заставить это работать?