3 / 3 / 2
Регистрация: 27.06.2013
Сообщений: 93
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Ошибка при повторном вызове метода Clipboard.SetDataObject22.02.2015, 23:11. Показов 2174. Ответов 3
Метки нет Все метки)
(
Необходимо программно отправить текст в текстовое поле стороннего приложения.
Задавал вопрос в разделе C++ WinAPI Программно эмулировать нажатие клавиш, различая регистр и раскладку клавиатуры Проблема в том, что функция keybd_event не различает регистр и раскладку клавиатуры. Посоветовали функцию WinAPI SendInput. Но в ней у меня та же проблема. Решил попробовать сделать проще. Сохраняю старый буфер обмена, отправляю туда текст, затем с помощью WinAPI нажимаю Shift+Insert и возвращаю в буфер обмена старое содержимое.
Если ее закомментировать, и не отправлять данные обратно в буфер обмена, ошибки нет, а содержимое буфера обмена теряется. Ошибка выглядит следующим образом (оформил в сообщении как код HTML для удобства просмотра).
Присваивание null не помогает.
0
|
|
22.02.2015, 23:11 | |
Ответы с готовыми решениями:
3
Clipboard.SetDataObject Ошибка при вызове метода (позднее связывание) При вызове метода из другого файла ошибка "The type initializer for 'Openxls' threw an exception" Большое потребление памяти при вызове метода |
139 / 136 / 22
Регистрация: 16.02.2012
Сообщений: 453
|
|
23.02.2015, 13:24 | 2 |
Как эта ошибка выглядит в отладчике?
0
|
3 / 3 / 0
Регистрация: 12.02.2015
Сообщений: 7
|
||||||
23.02.2015, 15:09 | 3 | |||||
Класс Clipboard откровенно не очень хорошо работает, сам сталкивался с этой проблемой. Есть два решения.
Первое - нормально работающий код с буфером обмена:
1
|
3 / 3 / 2
Регистрация: 27.06.2013
Сообщений: 93
|
||||||
24.02.2015, 18:33 [ТС] | 4 | |||||
Разобрался с SendInput, как отправлять символы Unicode, включая русские и заглавные буквы.
За основу можно взять этот код. http://www.ownedcore.com/forum... ple-c.html И использовать метод SendCharUnicode, (если нужен UTF-32, то второй из них) отсюда: http://stackoverflow.com/quest... yond-uffff Получилось следующее. В этом примере делаю задержку по таймеру и активирую нужное окно вручную. Реальное приложение активирует нужное окно через WinAPI
0
|
24.02.2015, 18:33 | |
Помогаю со студенческими работами здесь
4
Запрос админ прав после нажатия button (либо при вызове метода)
Ошибка "Сервер RPC недоступен" при повторном обращении к Word Ошибка при вызове метода dataAdapter.Fill(ds) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |