Горячие клавиши

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

  1. ZLOi

    ZLOi New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2007
    Сообщения:
    4
    Помогите плиз!!! Нужно сделать прогу без интерфейса, но так чтобы она понимала несколько hotkey'соов. В Асме новичок, поэтому не мог бы кто-нибудь написать пустую прогу, с этими параметрами. Заранее спасибо!
    з.ы. Просто советы не желательны, хотя тоже возможны
     
  2. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    регистрируешь хоткей (RegisterHotKey) делаешь цикл получения сообщений, в нём смортишь что за сообщение
     
  3. ZLOi

    ZLOi New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2007
    Сообщения:
    4
    Вот пока листинг, можешь на примере показать как делаеться
    Код (Text):
    1. .386
    2.  
    3. .model flat,stdcall
    4. option casemap:none
    5. include \masm32\include\windows.inc
    6. include \masm32\include\kernel32.inc
    7.  
    8. includelib \masm32\lib\kernel32.lib
    9. include \masm32\include\user32.inc
    10. includelib \masm32\lib\user32.lib
    11.  
    12. .data
    13. MsgName     db "Proga",0
    14. MsgStart    db "Start sucsefully",0
    15. MsgWork     db "Work sucsefully",0
    16. msg db MSG
    17.  
    18. .code
    19.  
    20. Message proc
    21.     invoke MessageBox, NULL, addr MsgWork ,addr MsgName, MB_OK
    22.     ret
    23. Message endp
    24.  
    25. start:
    26.  
    27. invoke MessageBox, NULL, addr MsgStart,addr MsgName, MB_OK
    28. invoke SetTimer,NULL,1,1000, OFFSET Message
    29.  
    30. .WHILE TRUE   ; Enter message loop
    31.     invoke GetMessage, ADDR msg,NULL,0,0
    32. .BREAK .IF (!eax)
    33.     invoke TranslateMessage, ADDR msg
    34.     invoke DispatchMessage, ADDR msg
    35. .ENDW
    36.  
    37.  
    38. end start
     
  4. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Вот так работает
    Код (Text):
    1. .386
    2.  
    3. .model flat,stdcall
    4. option casemap:none
    5. include \masm32\include\windows.inc
    6. include \masm32\include\kernel32.inc
    7.  
    8. includelib \masm32\lib\kernel32.lib
    9. include \masm32\include\user32.inc
    10. includelib \masm32\lib\user32.lib
    11.  
    12. .data
    13. MsgName     db "Proga",0
    14. MsgStart    db "Start sucsefully",0
    15. MsgWork     db "Work sucsefully",0
    16. msg       MSG <>
    17.  
    18. ;Çäåñü åùå íåñêîëüêî ìàêðîñîâ
    19. LOWORD  MACRO   bigword ;; Retrieves the low word from double word argument
    20.  
    21.     mov eax,bigword
    22.     and eax,0FFFFh  ;; Set to low word
    23.     ENDM
    24.  
    25. HIWORD  MACRO   bigword ;; Retrieves the high word from double word argument
    26.  
    27.     mov ebx,bigword
    28.     shr ebx,16      ;; Shift 16 for high word to set to high word
    29.     ENDM
    30.  
    31. .code
    32.  
    33. ;Message proc
    34. ;   invoke MessageBox, NULL, addr MsgWork ,addr MsgName, MB_OK
    35. ;   ret
    36. ;Message endp
    37.  
    38. start:
    39.  
    40. invoke MessageBox, NULL, addr MsgStart,addr MsgName, MB_OK
    41. ;invoke SetTimer,NULL,1,1000, OFFSET Message
    42. invoke  RegisterHotKey,0,100,MOD_CONTROL,VK_F1
    43. invoke  RegisterHotKey,0,200,MOD_CONTROL,VK_F2
    44.  
    45. .WHILE TRUE   ; Enter message loop
    46.     invoke GetMessage, ADDR msg,NULL,0,0
    47. .BREAK .IF (!eax)
    48.     invoke TranslateMessage, ADDR msg
    49.     .if msg.message == WM_HOTKEY
    50.         HIWORD msg.lParam
    51.         .if ebx == VK_F2
    52.             invoke  UnregisterHotKey,0,100
    53.             invoke  UnregisterHotKey,0,200
    54.             invoke  ExitProcess,0
    55.         .elseif ebx == VK_F1
    56.             invoke  MessageBeep,0
    57.         .endif
    58.     .endif
    59.     invoke DispatchMessage, ADDR msg
    60. .ENDW
    61.  
    62.  
    63. end start
     
  5. ZLOi

    ZLOi New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2007
    Сообщения:
    4
    СПАСИТЕЛЬ!!!