![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
leonidus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2005 Репутация: нет Всего: нет |
Нужно чтобы по нажатию горячей клавиши мое приложение скопировало в буфер выделенный текст, для этого я делаю эмуляцию нажатия Ctrl+C:
keybd_event(VK_CONTROL, 0, 0, 0); keybd_event(Ord('C'), 0, 0, 0); keybd_event(Ord('C'), 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); Однако есть одна тонкость, суть программы такова, что нажатие на горячую клавишу подразумевает ее удержание в течении некоторого времени. Так вот, все работает если горячая клавиша это CTRL, однако если выбрана и удерживается другая клавиша например Shift, то эмуляция не проходит. Как быть? |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
leonidus, а послать сообщение окну не подойдет?
![]()
|
|||
|
||||
leonidus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2005 Репутация: нет Всего: нет |
AntonN это будет работать далеко не везде, а Ctrl+C - 100% надежно.
|
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 4 Всего: 18 |
ИМХО, скорее верно обратное утверждение. -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
А не проще ли работать на прямую с буфером обмена с помощью Clipboard? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 4 Всего: 18 |
leonidus, в некоторых программах сохранилось еще DOS'овское Ctrl+Insert
-------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
leonidus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2005 Репутация: нет Всего: нет |
Ну ок, и все таки как мне решить проблему то?
|
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 4 Всего: 18 |
Тебе ж сказали уже, юзай Clipboard, например или сообщения Windows
-------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
leonidus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2005 Репутация: нет Всего: нет |
Не совсем понял, что значит юзать Clipboard, этот класс позволяет извлекать данные из буфера обмена моя же задача поместить их туда.
|
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
leonidus, а кто сказал, что туда их помещать нельзя?
Добавлено через 1 минуту и 46 секунд Вот один пример: http://www.codenet.ru/progr/delphi/stat/ClipBoard.php . И вот второй: http://delphi.about.com/od/vclusing/a/tclipboard.htm . Добавлено через 2 минуты и 34 секунды Вот еще, кстати, третий, может, будет полезно: http://www.sources.ru/delphi/system/clipbo...orystream.shtml . |
|||
|
||||
leonidus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2005 Репутация: нет Всего: нет |
mr.Anderson это все к сожалению не то, как я уже писал, текст может быть выделен в любом контроле в любом приложении и я не вижу более надежного способа получить этот текст чем по горячей клавише сэмулировать Ctrl+C, или если я ошибаюсь прошу укажите такой способ.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |