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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2019, 11:33   #1
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию Имитация клавиатуры

Привет, подскажите как программно тыкнуть кнопку VK_RIGHT на лазарусе в линуксе?
поиски приводили лишь к key_event (для винды) и к глобальному хукку клавиатуры (что мне совсем не нужно)
PTyTb32 вне форума Ответить с цитированием
Старый 25.06.2019, 11:44   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://tronche.com/gui/x/xlib/event...SendEvent.html
https://linux.die.net/man/3/xtestfakekeyevent
p51x на форуме Ответить с цитированием
Старый 25.06.2019, 11:52   #3
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
https://tronche.com/gui/x/xlib/event...SendEvent.html
https://linux.die.net/man/3/xtestfakekeyevent
это все на C*?
PTyTb32 вне форума Ответить с цитированием
Старый 25.06.2019, 12:00   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Это "АПИ ОС или X сервера". Причем тут С, не С?
p51x на форуме Ответить с цитированием
Старый 25.06.2019, 12:21   #5
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Нашел вот такой модуль
MouseAndKeyInput
с его помощью делаю так
Код:
procedure TForm1.Button1Click(Sender: TObject); 
begin
 KeyInput.Press(VK_RIGHT);                
end;
но при такой компиляции появляется ошибка ожидания связей и открывает файл проекта:
Код:
program project1;

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces,
Forms,
Unit1;

{$R *.res}

begin
RequireDrivedFromResource:=True;
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
end.
не понятно какие связи он ждет..
PTyTb32 вне форума Ответить с цитированием
Старый 25.06.2019, 12:32   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

MouseAndKeyInput, LCLType в юзес добавили? MouseAndKeyInput скомпилировали?
p51x на форуме Ответить с цитированием
Старый 25.06.2019, 12:34   #7
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
MouseAndKeyInput, LCLType в юзес добавили? MouseAndKeyInput скомпилировали?
добавил, Скомпилился без ошибок

Весь юзес перенес с Unit1 в project.lpr, не помогло
версии среды и компилятора последние, по отдельности все компилит нормально, а при добавлении модуля MouseAndKeyInput в Unit1 при компиляции ошибка Error while linking

Последний раз редактировалось PTyTb32; 25.06.2019 в 16:17.
PTyTb32 вне форума Ответить с цитированием
Старый 26.06.2019, 17:42   #8
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
По умолчанию

что ж, установить MouseAndKeyInput так и не вышло, при добавлении этого модуля программа просто не компилируется и выдает ошибку error while linking которая возникает при любой не понятной ситуации... видимо силами паскаля нельзя просто взять и имитировать нажатие кнопки на клаве, придется чекать нетбинс
PTyTb32 вне форума Ответить с цитированием
Старый 05.07.2019, 12:07   #9
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от PTyTb32 Посмотреть сообщение
добавил, Скомпилился без ошибок

Весь юзес перенес с Unit1 в project.lpr, не помогло
версии среды и компилятора последние, по отдельности все компилит нормально, а при добавлении модуля MouseAndKeyInput в Unit1 при компиляции ошибка Error while linking
При сборке проекта, компилятор пишет почему ему слинковать не удалось. Он не находит файлы crtbeginS.o и crtendS.o
В Linux они ставятся вместе с gcc или gcc-devel, если gcc (или gcc-devel) не установлен нужно поставить, у меня файлы находятся в каталоге: /usr/lib64/gcc/x86_64-alt-linux/4.5.4/ Этот путь нужно прописать в разделе пути в настройках проекта.
Кроме этого в readmy.txt написано:
Gtk1/2
* needs Xtst library
* ALT key pressing is not supported

Нужна Xtst library, устанавливаем в libXtst (если не установлена) и дальше
ищем libXtst.so* у меня она находится в /usr/lib64/libXtst.so.6.0, файла с именем libXtst.so нет, а нужен именно он, поэтому делаем симлинк:
ln -s libXtst.so.6.0 libXtst.so
Вуаля, примеры из папки MouseAndKeyInput/example/ собираются и работают.

Последний раз редактировалось Rik; 05.07.2019 в 12:28.
Rik вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, которая по введенному с клавиатуры значению аргумента x, находит значение функции f(x). Функция задается в виде графика. Параметр R вводится с клавиатуры scarecrow_1 C# (си шарп) 0 25.12.2016 10:33
Имитация клика мышки и клавиатуры Reimscher Общие вопросы Delphi 4 28.11.2015 21:03
Имитация клавиатуры boobob Microsoft Office Access 2 01.09.2012 20:07
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
имитация клавиатуры Var17 Win Api 3 17.06.2008 14:28