powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Репост из дельфинского форума. Может здесь кто-нибудь знает?
4 сообщений из 4, страница 1 из 1
Репост из дельфинского форума. Может здесь кто-нибудь знает?
    #32785365
^junior^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос мой касается скорее функций WinApi, а не языка реализации, поэтому решил написать в сишный форум вопрос, который я первоначально задал в дельфинском форуме, но так и не получил (пока) ответа. Как мне кажется сишники должны больше работать с функциями винды. Итак, проблема:

Есть программа, которая вводит данные в поля другой программы (вставка из буфера в активное окно в позицию курсора).
Для всех приложений работает замечательно. Использует различные способы:

1. Посылаю активному окну сообщение WM_PASTE
Код: plaintext
PostMessage(vGUIInfo.hwndFocus, wm_paste,  0 ,  0 );

2. Эмуляция нажатия Shift+Ins или Ctrl+V;
3. Посимвольный ввод текста (практически то же, что и №1)
Код: plaintext
for i:=  1  to Length(text) do PostMessage(vGUIInfo.hwndFocus, wm_Char, Word(text[i]),  0 );


Но все эти методы не работают в DOS-приложениях, запускаемых из под cmd (а это нужно). У меня на машине (win2000) решил эту проблему эмуляцией нажатия правой клавиши мыши - по нажатию правой клавиши происходит вставка из буфера. Но у клиента оказался ХР, где по нажатию правой клавиши вываливается контекстное меню (что логично).

Единственный способ, который остался, програмно нажать на пункт системного меню Edit->Paste. Как это сделать?

P.S. Мне казалось, что нажатие этого пункта и посыл окну WM_Paste - это одно и тоже. Почему не так?

P.P.S. Есть еще один вариант, безотказно работающий в любых приложениях: эмуляция нажатия клавиш. Не рассматривается из-за большого геморроя с переключением раскладки для ввода кириллицы. Если у вас есть пример, убеждающий в обратном, буду очень благодарен.
...
Рейтинг: 0 / 0
Репост из дельфинского форума. Может здесь кто-нибудь знает?
    #32785457
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
^junior^
Единственный способ, который остался, програмно нажать на пункт системного меню Edit->Paste. Как это сделать?
---P.S. Мне казалось, что нажатие этого пункта и посыл окну WM_Paste - это
одно и тоже. Почему не так?


а что в консольном окне Ctrl+V стал работать ? Нужно посылать сообщение для item-а которое занимается вставкой текста. Думаю если поискать в гугле то подобная проблема давно кем-нибудь решалась.

^junior^
Не рассматривается из-за большого геморроя с переключением раскладки для ввода кириллицы. Если у вас есть пример, убеждающий в обратном, буду очень благодарен.


так что показать как язык сменить ?
...
Рейтинг: 0 / 0
Репост из дельфинского форума. Может здесь кто-нибудь знает?
    #32785783
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могет с буфером клавиатуры поработать...
...
Рейтинг: 0 / 0
Репост из дельфинского форума. Может здесь кто-нибудь знает?
    #32792104
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй почитать про WriteConsoleInput.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Репост из дельфинского форума. Может здесь кто-нибудь знает?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]