Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программное нажатие комбинации клавиш... [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо