![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное нажатие комбинации клавиш... [D6, WinXP]
Smok_er © (2003-01-19 17:19:00)Мастера!
Как программно нажать, к примеру, Ctrl + N?
Stager (2003-01-20 20:54:00) [1]У меня есть и работает. Выглядит как подключаемый юнит, в котором две рабочие процедуры: одна активирует окно, в которое требуется передать комбинацию клавиш, вторая - собственно передает. Причем последняя функция на входе получает строку, обрабатываемую как макрос, например:
SendKeys("abc123{left}{left}{left}def{end}456{left 6}ghi{end}789", True);
Исходник великоват для того, чтобы здесь запостить (395 строк), так что пишите на мыло - пришлю на обратный адрес.
smok_er (2003-01-20 17:20:00) [2]Я нашел пример в нете, причем на борландском сайте (к сожалению сам пример дома, вечером только смогу сюда запостить), но не работает :(
-=Sergeante=- (2003-01-20 13:59:00) [3]Например:
keybd_event(VK_F4,0,KEYEVENTF_EXTENDEDKEY,0);
нажатие F4
Поройся в справке.
Smok_er (2003-01-20 05:43:00) [4]к сожалению, это не подходит
Дело в том, что мне нужно подавить реакцию браузера на нажатие Ctrl+N и сделать так, чтобы окно открывалось в моей программе.
При использовании к примеру NewWindow("ляляля") происходит двойное появление окошек :(
Видать буфер IE несколько отличается от буфера самой программы.
Вот и хотел послать только одно сообщение о нажатой клавише.
Opryshok (2003-01-20 02:16:00) [5]>Smok_er попробуй использовать компоненту TActionList
Opryshok (2003-01-20 02:09:00) [6]прикол в том, что не нужно ничего нажимать. нужно сгенерировать нажатие. Может я не вижу, но как кожно вышеуказанным кодом єто реализовать . . .
Спрашивающий (2003-01-20 02:06:00) [7]Просмотрел! вопрос был програмно! да действительно ответ не верен признаю.
Спрашивающий (2003-01-20 01:59:00) [8]
Opryshok ©
1.В чем мой ответ не верен?
2.С вышеуказанным кодом можно комбинировать как угодно. Ну например:
if (shift = [ssAlt]) and (Key=vk_F3) then form1.color := clPurple;
Opryshok (2003-01-20 01:46:00) [9]
>
> Спрашивающий
- ваш ответ неверный -)
Спрашивающий (2003-01-20 01:41:00) [10]Пример из хелпа
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (shift = ([ssAlt, ssCtrl])) then form1.color := clPurple;
end;
Smok_er (2003-01-20 00:51:00) [11]А конкретнее можно? Желательно с примером.
December24 (2003-01-19 20:19:00) [12]keybrd_event