Показать сообщение отдельно
  #1  
Старый 14.09.2011, 16:13
Stasonix Stasonix вне форума
Прохожий
 
Регистрация: 24.08.2011
Сообщения: 28
Репутация: 10
По умолчанию Буфер обмена (keybd_event)

дано:
1. в буфере обмена содержится текст, не важно какой, напр. "Hellow World!"
2. браузер в котором есть такстовое поле на флэш.

требуется:
1. Сэмулировать событие вставки информации из буфера обмена в флеш поле, обычный копи паст вполне сойдет, но есть одно "НО", флеш не воспринимает событие вставки информации нажатием комбинации клавиш CTR+V, зато есть возможность вставки с помощью комбинации RCONTROL+INS

результат:

Код:
// Вставка из буфера
keybd_event(VK_RCONTROL,0,0,0);
keybd_event(VK_INSERT,0,0,0);
keybd_event(VK_INSERT,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_RCONTROL,0,KEYEVENTF_KEYUP,0);

// Нажатие Enter
keybd_event(VK_RETURN,0,0,0);
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);

проблема:
при выполнении данного кода вставка содержащейся в буфере инормации не происходит даже на самой форме в обычное поле Edit, хотя если ручками нажимаю, все прекрасно вставляет

вопрос:
что-то в коде не так или я что-то упустил?

Решение: Таки упустил, вставка осуществляется RSHIFT+INS

Если кому интересно можете ответить как RSHIFT+INS сэмулировать, чтобы тема не зря тут висела.
Ответить с цитированием