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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2015, 14:27   #1
Reimscher
Пользователь
 
Регистрация: 01.02.2011
Сообщений: 33
Восклицание Имитация клика мышки и клавиатуры

В windows 10 некоторые приложения игнорируют mouse_event и keybd_event. Что делать? Можно ли как-то имитировать клик мышки и нажатие кнопки клавиатуры подключившись к драйверами мыши/клавиатуры?
Reimscher вне форума Ответить с цитированием
Старый 28.11.2015, 15:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сообщения посылать не хочешь?
Или вот этой функцией: https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.11.2015, 16:33   #3
Reimscher
Пользователь
 
Регистрация: 01.02.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сообщения посылать не хочешь?
Или вот этой функцией: https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Send/PostMessage игнорируются.
Попробую с SendInput. Хотя уже какой-то такой код использовал, вроде бы не работало.

Ещё один интересный момент. В своей программе использую
Код:
procedure WMHotKey(var Mes: TMessage); message WM_HOTKEY;
Когда в фокусе определённая другая программа и я нажимаю горячую клавишу — WMHotKey в моей программе не срабатывает.

Вот код программы:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    procedure WMHotKey(var Mes: TMessage); message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMHotKey(var Mes: TMessage);
begin
  Form1.Caption := IntToStr(Random(1000));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not RegisterHotKey(Handle, 0, 0, VK_F8) then Exit;
end;

end.
Запускаю экранную клавиатуру, делаю что бы она была в фокусе и жму F8 — ничего не происходит.

Последний раз редактировалось Stilet; 28.11.2015 в 18:34.
Reimscher вне форума Ответить с цитированием
Старый 28.11.2015, 18:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ставил бряк себе? Обработчик сообщения вообще срабатывает?
Цитата:
if not RegisterHotKey(
А где проверка на код ошибки? Почему сразу Exit? И кстати зачем тут этот Exit?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.11.2015, 21:03   #5
Reimscher
Пользователь
 
Регистрация: 01.02.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ставил бряк себе? Обработчик сообщения вообще срабатывает?

А где проверка на код ошибки? Почему сразу Exit? И кстати зачем тут этот Exit?
Код:
procedure TForm1.WMHotKey(var Mes: TMessage);
begin
  Form1.Caption := IntToStr(Random(1000));
end;
Так и определяю, срабатывает обработчик или нет. Если в фокусе экранная клавиатура или другие определённые приложения — не срабатывает. По поводу проверки. Там, как правило, всего 1 ошибка бывает — что клавиша уже занята. Exit стоит потому что суть приложения в том, что бы оно по нажатию хоткея выполняло на фоне свои дела.
Reimscher вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
имитация клика мыши Ale}{ander Общие вопросы Delphi 12 02.02.2014 23:37
Имитация клика мыши Anfall Общие вопросы Delphi 20 05.10.2010 09:15
Имитация клика на ссылку SoftKoc Фриланс 5 18.03.2010 22:16
Имитация клика мыши tipzozborova JavaScript, Ajax 1 04.03.2009 07:27
Имитация клика мышки на экране CRASH009 Общие вопросы Delphi 6 18.08.2008 21:38