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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 23:40   #1
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию Как симулировать удержание нажатой клавиши?

Нужно заставить машину думать что по хоткею кнопка нажимается и некоторое время удерживается, такая конструкция
Код:
keybd_event(ord(posl1[k1]), 0, 0, 0);
sleep(1500);
keybd_event(ord(posl1[k1]), 0, KEYEVENTF_KEYUP, 0);
не работает... тоесть нету эффекта удержания клавиши, она как будто нажата и тут же опущена =( может кто подскажет?
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Старый 09.06.2011, 00:03   #2
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

SpeedButton1.AllowAllUp := True;
SpeedButton1.GroupIndex := 1; - чтобы свойство Down работало, GroupIndex
должен быть неравен нулю

Код:
type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    Timer1: TTimer;
    procedure SpeedButton1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
.........................................
......................
implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 SpeedButton1.Down := True; // кнопка фиксируется в нажатом состоянии
 Timer1.Enabled := True;  // запускается таймер
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 SpeedButton1.Down := False;  // кнопка "отпускается"
 Timer1.Enabled := False;  // таймер останавливается
end;

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 09.06.2011, 00:24   #3
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

Ну это для кнопки на форме хорошо, а мне бы для кнопки клавиатуры =)

Это работает для полей ввода текста, а мне нужно именно нажатие, чтобы например работало в игрушках, вроде S-присесть и т.д.

Поизучал вопрос поподробнее и возник другой-клавиатура сама посылает автоповтор клавиши, это аппаратное... но как тогда сымитировать этот автоповтор? если я правильно понял для игрушки клавиша считается нажатой пока не пришёл код опускания, но как мне узнат время через которое должен снова прийти сигнал? (тоесть частоту повтора события нажатия)
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ

Последний раз редактировалось c0zak; 09.06.2011 в 00:55.
c0zak вне форума Ответить с цитированием
Старый 09.06.2011, 00:53   #4
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

http://programmersforum.ru/showthread.php?t=58367

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 09.06.2011, 01:11   #5
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

Тоже неподходит, мне нужно не считать нажатие, а имитировать его. Для компа это идущие подряд сигналы нажатия, но почему то посылка подряд сигналов не работает в игрушках... только для полей ввода текста.
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ нажатой клавиши monty "2" Помощь студентам 2 21.04.2010 17:42
Удержание клавиши BuT@JL Общие вопросы Delphi 8 22.07.2009 17:10
код нажатой клавиши galaid Общие вопросы Delphi 4 24.05.2009 20:03
Определение сканкода нажатой клавиши Peter86 Общие вопросы Delphi 6 07.01.2009 08:25
вывести код нажатой клавиши fclmhooligan JavaScript, Ajax 0 22.10.2008 09:32