![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Задача: послать стороннему приложению, (в данном случае игра на directx) в окно ввода, комбинацию клавиш ctrl + v, перед этим скопировав в буфер обмена какой нибудь текст. При этом приложение находится в свернутом состоянии, то есть не получает фокуса. С этим проблем нет, вставка текста работает. Только вот вставляется не тот текст который я копирую в буфер обмена, а тот текст который был в буфере до этого. То есть приложение по непонятно каким причинам игнорирует последнее изменение буфера обмена и в поле ввода копируется текст как будто буфер обмена не изменялся. Как решить эту проблему и заставить приложение копировать текст который я сам помещаю в буфер обмена.
![]() Ниже прилагаю часть кода которая непосредственно отвечает за вставку текста из буфера обмена. Код:
Последний раз редактировалось PonuHunter, 20.04.2013 в 18:31. |
#2
|
||||
|
||||
![]() Я бы делал на винапи все сразу. Пример на плюсах:
Код:
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() Цитата:
Пробовал копировать в буфер обмена с помощью винапи, как в твоем примере - результат тот же, то есть никакого результата. ( |
#4
|
||||
|
||||
![]() а так тоже не прокатывает?
Код:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
![]() Цитата:
У объекта clipboard нет метода text, но это неважно. Проблема не в способе помещения текста в буфер обмена, текст благополучно туда помещается. Проблема в том что когда я пытаюсь копипастнуть его в программу то копируется текст тот который был до того как я изменил содержимое буфера обмена. |
#6
|
||||
|
||||
![]() Цитата:
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
![]() Цитата:
Допустим до выполнения моей программы в буфере был текст: 'blablabla', а в процессе выполнения программа помещает в буфер текст 'hahaha'. В итоге, в результате выполнения программы я получаю текст 'blablabla' в окне ввода приложения которому я посылаю комбинацию ctrl + v, а если я сам вставляю текст в скажем блокнот то я получаю 'hahaha'. То есть текст находится в буфере, а значит проблема явно не в способе его помещения туда. Цитата:
|
#8
|
||||
|
||||
![]() Советую бросить на форму ещё одну мемку и проверить вставку вот так
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
![]() А если делать задержку до отправки Ctrl+V?
|
#10
|
||||
|
||||
![]() Цитата:
Цитата:
Я просто заменил хендлер игры на хендлер окна ввода блокнота и в блокноте все отлично работает, но в игру он копирует старое значение буфера обмена. Последний раз редактировалось M.A.D.M.A.N., 20.04.2013 в 20:52. Причина: MAD: Пользуемся кнопкой "Редактировать", не устраиваем из форума чат. |
#11
|
||||
|
||||
![]() Наверное действует защита от ClipBoard-а, я так в своих программах делал.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |