Не могу написать прогу без явного фокуса ввода.

Тема в разделе "WASM.BEGINNERS", создана пользователем Yury, 26 мар 2007.

  1. Yury

    Yury New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    2
    Прога на асме под дос управляет сомадельным устройством на параллельном
    порту. Задача такая при нажатии одной клавиши записать в Lpt2 все нули,
    при нажатии другой записать все единицы и управлять устройством не зависимо
    от того что другая прога активна. Не знаю может это должен быть драйвер.
    Пишу под дос опыт програмирования ограничен. В прикрепленном файле
    мая прога она работает только когда активно окно. Пожскажите плиз как быть?
     
  2. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Лучше "поинтерактивнее" имхо. Вот пример если что. int 27h - это выход с оставлением проги резидентной, и как она написана сейчас, она работать не будет. Если нужно чтобы она висела "резидентом" в винде, то и писать её нужно под винду с перехватом клавиатуры. Как дожно это выглядеть поподробнее?
    Код (Text):
    1. ideal
    2. model tiny
    3. codeseg
    4. org 100h
    5. start:
    6.                 mov     ah,9
    7.                 mov     dx,offset help
    8.                 int     21h
    9.  
    10.                 mov     ah,0
    11.                 int     16h
    12.  
    13.                 cmp     ah,1
    14.                 je      exit
    15.  
    16.                 and     al,1011111b   ; To upper case
    17.  
    18.                 cmp     al,'F'
    19.                 je      ones
    20.  
    21.                 cmp     al,'Z'
    22.                 je      zeros
    23.  
    24.                 jmp     start
    25. exit:
    26.                 ret
    27. zeros:
    28.                 mov     dl,'0'
    29.                 call    print
    30.  
    31.                 mov     al,0
    32.                 jmp     send
    33. ones:
    34.                 mov     dl,'F'
    35.                 call    print
    36.  
    37.                 mov     al,0ffh
    38. send:
    39.                 mov     dx,278h
    40.                 out     dx,al
    41.  
    42.                 jmp     start
    43. print:                     ; DL = character to print
    44.                 mov     ah,2
    45.                 int     21h
    46.                 ret
    47. help db 13,10,'Press F to out ones, Z - zeros, ESC - exit.',13,10,'$'
    48. end start
     
  3. Yury

    Yury New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    2
    эта прога должна при нажатии одной клавиши записать в Lpt2 все нули,
    при нажатии другой записать все единицы. Работая в винде она не зависимо от
    других прог должна реагировать на нажатие определенных клавиш
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Yury
    Глобальный хук на сообщения, должен помочь.