Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Показано с 1 по 2 из 2

Тема: Linux (Ubuntu) Global Hook Keyboard - Нужна помощь.

  1. #1
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812

    Linux (Ubuntu) Global Hook Keyboard - Нужна помощь.

    Возник достаточно серьезный вопрос, в связи с портированием лога для контестов и обычной работы в эфире
    под Линукс, в частности, под Ubuntu. Сам лог переносится с Mono под Win32 на Mono + GTK под Линукс. В
    дальнейшем, если будет надо, можно подключить и Gnome и т.д. Данный лог имеет практически ту же самую
    функциональность, что и Win-Test 4.0. Отличительной особенностью является наличие встроенного парсера
    для конфигураций любых возможных конфигураций контестов. Более подробно о логе, если надо, то в личку.
    Здесь не хочется разводить долгую дискуссию. Просьба отнестись с пониманием.

    Теперь о проблеме. Дело в том, что обработка нажатий клавиатуры (низко-уровневая) под Win32 и Линукс
    отличается. Поэтому вопрос скорее адресован программерам, кто имел с этим дело. Итак, что стало понятно и
    чем надо побороться:
    1. Не тащить весь unmanaged код или использование P/Invoke для обработки нажатий клавиш под Линукс, так
    как для этого придется делать DLL Import достаточно большого количества DLL. Что не есть хорошо, а также
    порождает вторую проблему, ниже.
    2. Поддержка разных версий сборок Линукса, с тем чтобы можно было иметь полностью независимый код для
    обработки Global Hook Keyboard без версионинга DLL.

    В настоящее время пока реальных путей для решения проблемы не найдено, поэтому и возник вопрос и требуется
    помощь. Чтобы стало более понятно, откуда растут ноги, то по ссылке ниже, можно найти фрагмент кода, на
    базе которого делается обработка Global Hook Keyboard:
    http://stackoverflow.com/questions/9...-hook-keyboard
    и из которого видно, что делается импорт [DllImport("libX11")], [DllImport("gdk-x11-2.0")].

    Вопросы такие:
    1. Есть ли возможность решить задачу без импорта DLL?
    2. Во всех ли дистрибутивах Линукса будут эти же DLL или они могут отличаться, а также иметь и другие версии?
    3. Какие есть другие возможности?

    При ответе просьба учитывать, что платформа разработки выбрана, меняться не будет. Поэтому не надо предлагать
    перейти на чистый C++, Qt, Java и т.д. Под виндами данный код работает, под Wine тоже. Но цель заставить код
    работать без использования Wine. И это одна из главных задач.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21


  2. #2

    Регистрация
    23.03.2006
    Адрес
    Екатеринбург
    Сообщений
    1,098
    Цитата Сообщение от RX1AL Посмотреть сообщение
    Вопросы такие:
    1. Есть ли возможность решить задачу без импорта DLL?
    2. Во всех ли дистрибутивах Линукса будут эти же DLL или они могут отличаться, а также иметь и другие версии?
    3. Какие есть другие возможности?
    Посоветовался с сыном и его друзьями, они заядлые линуксоиды и что то там програмируют....

    В общем сказали, что
    1. DLL-ки лучше переписать или попробовать перекомпилировать исходник в формате, понятном линуху
    2. Если DLL в своей работе обращается к командам и функциям только ядра, то работать должно везде и без проблем.
    3. Те, которые вы изначально отвергли. Короче говоря предложили попробовать Qt.
    Ubuntu, FT-600, TS-2000, IV-20-30-40 + Верт. диполь 12-15-17-20

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Linux UBUNTU
    от RK4CR в разделе Программное обеспечение
    Ответов: 137
    Последнее сообщение: 18.05.2019, 15:14

Ваши права

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