Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2007, 23:50   #1
ffo
 
Регистрация: 14.03.2007
Сообщений: 6
По умолчанию Как программно нажать Ctrl + V

Сабж...
Delphi 5, Win XP
ffo вне форума Ответить с цитированием
Старый 15.03.2007, 01:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, например, так (правда, это не ВинАпи):
procedure TForm1.Button2Click(Sender: TObject);
var kkk: word;
begin
//посылаем CTRL+V
kkk:=Ord('V');
FormKeyDown(Form1,kkk,[ssCTRL]);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//контролируем визуально
if Shift=[ssCTRL] then
Label2.Caption:='CTRL'+Chr(Key) else
Label2.Caption:=Chr(Key);
end;

Не забудьте указать в свойствах формы KeyPreView:=True;

А ВинАпи - это keybd_event...

Последний раз редактировалось mihali4; 15.03.2007 в 01:40.
mihali4 вне форума Ответить с цитированием
Старый 02.04.2007, 18:06   #3
Voland
Heavy metal
Пользователь
 
Аватар для Voland
 
Регистрация: 02.04.2007
Сообщений: 42
По умолчанию

Лучше всего вот так:

...
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
...
Voland вне форума Ответить с цитированием
Старый 02.04.2007, 18:14   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

А использовать буфер обмена windows не проще? имитировать вставку из буфера путем нажатия клавиш дико.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.04.2007, 20:23   #5
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

To Квенди: Проще... но если человеку захотелось?
To ffo: Помнится мне, что в Delphi (Bin\Source) был модуль SendKeys32 (или sendkey32) там с хорошими комментариями подробно показано как послать любое сочетание клавиш всем окнам вообще...
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 30.04.2007, 16:30   #6
Hintman
Пользователь
 
Регистрация: 14.04.2007
Сообщений: 28
По умолчанию

Господа, а где можно почитать о параметрах функции
Код:
keybd_event(bVk: Byte, bScan: Byte, dwFlags: Cardinal, dwExtraInfo: Cardinal);
Про Ctrl+'V' теперь понятно.
А как нажать программно Tab и Esc, не понимаю...
Hintman вне форума Ответить с цитированием
Старый 01.05.2007, 10:12   #7
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_ESCAPE, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0);
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 02.07.2007, 10:07   #8
Kukkk
Форумчанин
 
Регистрация: 28.06.2007
Сообщений: 123
По умолчанию

А как копировать в буфер обмена переменную?
Kukkk вне форума Ответить с цитированием
Старый 02.07.2007, 22:31   #9
Sergey_nl
Пользователь
 
Регистрация: 02.07.2007
Сообщений: 23
По умолчанию Работа с буфером в Delphi

Самый простой способ:
Код:
clipboard.astext:='ВАШ_ТЕКСТ';
Чтоб сработало, не забыть подключить юнит clipbrd
Вот статья по работе с буфером:
http://articles.org.ru/cfaq/index.ph...mostrecent=yes
Проекты для лучших программистов http://www.netlancer.ru
Sergey_nl вне форума Ответить с цитированием
Старый 29.07.2007, 16:05   #10
Haster
 
Регистрация: 28.07.2007
Сообщений: 6
По умолчанию

Подскажите, пожалуйсита, как программно нажимать кнопки и перемещать курсор в ДРУГОМ приложении.
Haster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно программно найти окно программы и нажать на нем кнопку SeRыЙ Win Api 23 09.03.2010 08:00
alt+ctrl+del ben95 Общие вопросы Delphi 36 03.01.2009 16:28
Программно нажать кнопку DeDoK Общие вопросы Delphi 2 04.05.2008 21:46
Как программно нажать клавишу в чужом процессе? Sere0ga Win Api 2 27.03.2007 18:43