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

Тема: Лог для слепых радиолюбителей

  1. #21
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от nomick Посмотреть сообщение
    У меня только сомнение .... прочую системную шушеру ? .... Может, конечно в дотнете реализация получше, но что-то сомнительно....
    Михаил, я уже пишу на дотнете с момента его появления, а сейчас на 4.0 версии. Если бы были какие-то
    проблемы с обработкой нажатий клавиатуры, включая модификаторы ALT, SHIFT, CONTROL, CAPS, все
    функциональные клавиши F1-F12, то было бы сказано, что есть проблемы. Однако, их нет! Просто есть
    программисты с кривыми руками, а есть те, кто сначала читает, а потом код пишет... Так к слову...
    Поэтому ваши сомнения безосновательны.

    Михаил, ниже привожу простой пример для обработки функциональных клавиш. Посмотрите на код
    и увидите, как все просто:
    public override bool PreProcessMessage(re f Message m)
    {
    if (m.Msg == WM_KEYDOWN)
    {
    Keys keyCode = (Keys)m.WParam & Keys.KeyCode;

    // Определяем нажатие F1 до F9.
    switch (keyCode)
    {
    case Keys.F1:
    case Keys.F2:
    case Keys.F3:
    case Keys.F4:
    case Keys.F5:
    case Keys.F6:
    case Keys.F7:
    case Keys.F8:
    case Keys.F9:

    MessageBox.Show("Con trol.PreProcessMessa ge: '" +
    keyCode.ToString() + "' нажата.");

    // Заменяем F3 на F1, так что ProcessKeyMessage будет
    // получать F1 вместо F3.
    if (keyCode == Keys.F3)
    {
    m.WParam = (IntPtr)Keys.F1;
    MessageBox.Show("Con trol.PreProcessMessa ge: '" +
    keyCode.ToString() + "' изменено по F1.");
    }
    break;
    }
    }

    // Посылаем все остальные сообщения в базовый метод.
    return base.PreProcessMessa ge(ref m);
    }

    Обращаю внимание на то, что системный хук сообщений WM_... идет прямо в самом дотнете.
    Все, что нужно, это имплементировать IMessageFilter интерфейс и его методы в классе. И все!
    Можно использовать и прямой вызов, но очень редко, когда это нужно. Например, так:
    <DllImport("User32.d ll")>
    private static extern short GetAsyncKeyState(Sys tem.Windows.Forms.Ke ys vKey)
    вызывая функцию-обработчик из API Windows. Для всех модификаторов, есть инумератор в
    дотнете, тогда имеем возможность проверки:
    if ((e.Modifiers & Keys.Shift) == Keys.Shift) или
    if ((e.Modifiers & Keys.Control) == Keys.Control) и т.д.
    Тогда простой код будет выглядеть так:
    Private Sub Button1_KeyPress(ByV al sender As Object, ByVal e As _
    System.Windows.Forms .KeyPressEventArgs) Handles Button1.KeyPress
    If (Control.ModifierKey s And Keys.Shift) = Keys.Shift Then
    MessageBox.Show("Наж ата " & Keys.Shift)
    End If
    End Sub
    где Control.ModifierKeys , как раз и есть инумератор всех модификаторов, т.е. коллекция.
    Ну, а если хочется заняться мазохизмом, то можно использовать метод:
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) переписав его под себя.
    Можно будет отлавливать через API вообще все клавиши.
    Последний раз редактировалось RX1AL; 10.02.2012 в 15:02.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21


  2. #22

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    Михаил, понятно, виноват, что усомнился просто очевидно плохо искал. Спасибо ! Буду пробовать параллельно тогда.

    RK1NA, тоже ясно, тоже спасибо. Надеюсь, у него решится эта проблема, тогда если будут какие-то замечания или предложения - сообщайте, сделаю всё, что смогу
    Михаил RD3AJB.

  3. #23

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    День добрый !
    В логе была переделана вся работа с базами данных, потому как иначе не удавалось решить проблему с ошибочным сообщением при выходе из программы. Да и установка теперь должна стать полегче - я отказался от этой немецкой библиотеки dhRichClient3 по совету Михаила RX1AL - она была причиной тех сообщений. Да и капризна она в установке... В общем, с нею покончено.
    Дополнительно были сделаны некоторые доработки и улучшения.
    Так что теперь заодно есть шанс найти массу новых ошибок
    Внутри есть ещё архив Libs - туда я поместил библиотечки от Бейсика, на всякий пожарный.

    http://r0s.ucoz.ru/load/0-0-0-35-20 - сам лог
    http://r0s.ucoz.ru/load/0-0-0-36-20 - набор звуковых файлов
    http://r0s.ucoz.ru/load/0-0-0-37-20 - руководство пользователя

    Помимо этого, был собран комплект для англоязычных коллег наших :

    http://r0s.ucoz.ru/load/0-0-0-38-20 - english manual
    http://r0s.ucoz.ru/load/0-0-0-39-20 - audio files
    http://r0s.ucoz.ru/load/0-0-0-40-20 - logbook itself

    __________________
    Михаил RD3AJB.

  4. #24

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    Версия последнего дня этой зимы
    ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
    Не требует установки - просто распакуйте архив (можно прямо на диск С)
    Ctrl+F6 - показ всех QSO по данной DXCC-стране на текущем диапазоне.
    Выбор языка (из имеющихся) через меню. Английский голос можно взять из
    http://r0s.ucoz.ru/load/0-0-0-39-20 или из английской версии.
    Улучшения и исправления ошибок.

    http://r0s.ucoz.ru/load/0-0-0-43-20 - лог, версия 1.3, с русским голосом
    http://r0s.ucoz.ru/load/0-0-0-44-20 - руководство пользователя
    http://r0s.ucoz.ru/load/0-0-0-41-20 - logbook v1.3 with voice
    http://r0s.ucoz.ru/load/0-0-0-42-20 - logbook v1.3 - manual
    Михаил RD3AJB.

  5. #25
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Михаил, спасибо за новую версию... На неделе плотно протестирую и потом, если будут, скажу свои
    замечания/пожелания или комменты. Кстати, я пообщался с бывшими коллегами, которые используют
    (до сих пор!) ту немецкую библиотеку. Причина ее вываливания с ошибкой связаны с использованием
    именно двойного биндинга данных (по-русски, через одно место автогеном!) - это раз, а два - с тем,
    что библиотека только для немецкой культуры и не подписана! Не подписана, это вообще шедевр, так
    как в новых системах старые ActiveX (без подписи) можно зарегистрировать только танцами с бубном...
    Про двойной биндинг, отдельная песня - коллеги оттрассировали все вызовы и оказалось, что библиотека
    лишь каким-то чудным (ну немцам известным!) способом перенаправляла вызовы методов из родной
    микрософтовской библиотеки для доступа к данным. Очередная попытка сваять lightweight tier, но при
    помощи wrapper in wrapper. От великого ума, наверное!

    [OFF]
    Порой удивляешься, какие шедевральные проги и код здесь пишут... ужасЪ тихий... (Ъ знак специально,
    программер поймет почему!). Отдельно в другом топике, где юмор, выложу потом фрагменты кода.
    И пишут его "крутые" (по их меркам!) программеры, которые тут кучу курсов закончили. Микрософт бы
    удавился от таких "золотых" партнеров.
    [/OFF]
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  6. #26

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    Версия 1.3+
    Забыл поменять номер версии в логе, поэтому будет с плюсом
    Добавлена возможность добавлять в лог QSO из старых журналов - время и дата редактируемы по Shift + F11.
    Секретная комбинация Alt+Z разрешает нажимать Alt-Tab для перехода на другие окна, а там уже будут разрешены любые нажатия любых клавиш.
    Кодировка ини-файлов теперь - Unicode, что позводяет писать их на разных языках с использованием разных редких знаков.
    Добавлена работа со справочниками стран и экспедиций - изменение, удаление, добавление...
    В меню Файл-Новый можно либо создавать журнал для нового позывного, либо переключаться
    на уже созданный журнал другого позывного.
    Можно записывать связи как на КВ, так и на КВ+УКВ.
    И что-то, кажется, ещё было сделано...

    http://r0s.ucoz.ru/load/0-0-0-47-20 - русская версия
    http://r0s.ucoz.ru/load/0-0-0-49-20 - описание
    Михаил RD3AJB.

  7. #27

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    Пролетел я тут немножко с этими улучшениями, как оказалось... Юникодовская добавка потребовала кое-где явную установку. Так что портабельность, получается, пока что потеряна - может быть, не везде, но всё же... В общем, вот этот экзешник для установки Юникодовской компоненты.
    Вложения Вложения
    Михаил RD3AJB.

  8. #28
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от nomick Посмотреть сообщение
    Пролетел я тут немножко с этими улучшениями, как оказалось... Юникодовская добавка ....
    Михаил, приветствую! Где ты пролетел, не совсем понял? У меня пока твоя последняя версия работает нормально.
    Вылетов не замечал, кодировка тоже в порядке. Есть некоторые недочеты и моменты по улучшению, но о них
    немного позднее... Если есть какие-то проблемы, пиши в личку или здесь - разберемся!
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  9. #29

    Регистрация
    25.11.2004
    Адрес
    Москва, Зеленоград
    Сообщений
    302
    Михаил, приветствую тоже ! А на какой операционке работает нормально ?
    Возможно, проблемы только на Windows 7... сделал себе пару виртуальных машин на win xp, win 2000 - вроде там запускается без вопросов. Пока не получается более точно понять, где ставится, где - нет...
    Михаил RD3AJB.


  10. #30
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от nomick Посмотреть сообщение
    Возможно, проблемы только на Windows 7... сделал себе пару виртуальных машин на win xp, win 2000 - вроде там запускается без вопросов.
    Как раз на операционке Windows 7 SP1 32 и 64 Bit все работает. На других не проверял, так как давно уже не пользуюсь.
    Под Линуксом пока не смотрел.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

Страница 3 из 3 ПерваяПервая 123

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

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

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

Похожие темы

  1. Лог для КПК
    от nomick в разделе Софт для мобильных устройств
    Ответов: 519
    Последнее сообщение: 19.02.2013, 11:46
  2. Радиопрограмма для радиолюбителей
    от RW6HRM в разделе Темы не вошедшие в другие разделы форума
    Ответов: 3
    Последнее сообщение: 12.12.2010, 13:23
  3. Магазин для радиолюбителей
    от UA3RW в разделе Продавцы, покупатели...
    Ответов: 1
    Последнее сообщение: 25.02.2009, 09:06
  4. Нужен ЛОГ для CQWWCONTEST!!!!
    от RZ6FM в разделе Программное обеспечение
    Ответов: 16
    Последнее сообщение: 30.08.2006, 18:11

Ваши права

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