Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.09.2006, 00:16
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание Управления c клавиатуры

Как передвигать курсора с клавиатуры
up, down, left, right
Ответить с цитированием
  #2  
Старый 03.09.2006, 02:47
Аватар для Майняк
Майняк Майняк вне форума
Начинающий
 
Регистрация: 03.02.2006
Адрес: Киров
Сообщения: 198
Репутация: 50
По умолчанию

смотри раздел " Virtual key codes" мануала. +посмотри SendMessage()
Ответить с цитированием
  #3  
Старый 03.09.2006, 06:26
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

есть неплохая функция keybd_event
Ответить с цитированием
  #4  
Старый 03.09.2006, 21:20
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

Поточнее пожалуста
Ответить с цитированием
  #5  
Старый 04.09.2006, 14:05
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Посмотри на Delphi World там много примеров, вот один оттуда (ссылку дать не могу т.к. у меня это локально )
Код:
{With keybd_event API}

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   {or you can also try this simple example to send any 
   amount of keystrokes at the same time. }

   {Pressing the A Key and showing it in the Edit1.Text}

   Edit1.SetFocus;
   keybd_event(VK_SHIFT, 0, 0, 0);
   keybd_event(Ord('A'), 0, 0, 0);
   keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);

   {Presses the Left Window Key and starts the Run}
   keybd_event(VK_LWIN, 0, 0, 0);
   keybd_event(Ord('R'), 0, 0, 0);
   keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
 end;
т.е. процедура посылает код клавиши активному окну
Ответить с цитированием
  #6  
Старый 06.09.2006, 22:40
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

А кликнуть както можно?
Ответить с цитированием
  #7  
Старый 08.09.2006, 05:33
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Electronic_Arts
А кликнуть както можно?
А на это есть mouse_event
Ответить с цитированием
  #8  
Старый 13.09.2006, 02:24
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

Цитата:
Сообщение от Aristarh Dark
А на это есть mouse_event
если код не большой может напишеш
Ответить с цитированием
  #9  
Старый 13.09.2006, 06:48
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Electronic_Arts
если код не большой может напишеш
Я конечно могу, только не всегда же за тебя что-то писать будут
Читаем хелп:
Цитата:
The mouse_event function synthesizes mouse motion and button clicks.

VOID mouse_event(

DWORD dwFlags, // flags specifying various motion/click variants
DWORD dx, // horizontal mouse position or position change
DWORD dy, // vertical mouse position or position change
DWORD dwData, // amount of wheel movement
DWORD dwExtraInfo // 32 bits of application-defined information
) ;
получается что для того чтобы просто кликнуть нам понадобится передать функции только первые три параметра (остальные - 0). Сразу скажу, что второй и третий параметры это экранные координаты в которых будем кликать, а первый - константа действия. Про нее читаем дальше в хелпе:
Цитата:
MOUSEEVENTF_ABSOLUTE Specifies that the dx and dy parameters contain normalized absolute coordinates. If not set, those parameters contain relative data: the change in position since the last reported position. This flag can be set, or not set, regardless of what kind of mouse or mouse-like device, if any, is connected to the system. For further information about relative mouse motion, see the following Remarks section.
MOUSEEVENTF_MOVE Specifies that movement occurred.
MOUSEEVENTF_LEFTDOWN Specifies that the left button changed to down.
MOUSEEVENTF_LEFTUP Specifies that the left button changed to up.
MOUSEEVENTF_RIGHTDOWN Specifies that the right button changed to down.
MOUSEEVENTF_RIGHTUP Specifies that the right button changed to up.
MOUSEEVENTF_MIDDLEDOWN Specifies that the middle button changed to down.
MOUSEEVENTF_MIDDLEUP Specifies that the middle button changed to up.
MOUSEEVENTF_WHEEL Windows NT only: Specifies that the wheel has been moved, if the mouse has a wheel. The amount of movement is given in dwData
т.е. если хочешь кликнуть левой кнопкой, то нужно сделать так:
Код:
mouse_event(MOUSEEVENTF_LEFTDOWN,100,100,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,100,100,0,0);
и всего делов. Читайте HELP и будет вам счастье
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter