Показать сообщение отдельно
  #10  
Старый 06.10.2012, 23:05
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
По умолчанию

я знаю что не так,.. но как?

Код:
start:

  PRIVAT Shift_key : DWORD
  
  mov Shift_key, FALSE
  mov  hInstance, rv(GetModuleHandle, NULL)
  call WinMain
  exit

;------------------------------------------------------------------------------

LowLevelKeyboardProc proc uses ebx nCode, wParam, lParam : DWORD
  LOCAL fEatKeystroke : DWORD

  mov fEatKeystroke, FALSE

  .if nCode == 0
    Switch wParam
      case 256
        mov ebx, lParam
        .if [ebx.KBDLLHOOKSTRUCT].vkCode == 20
          mov fEatKeystroke, TRUE
        .endif
        .if [ebx.KBDLLHOOKSTRUCT].vkCode == 160
          mov Shift_key, TRUE
        .endif
       case 257
        mov ebx, lParam
        .if [ebx.KBDLLHOOKSTRUCT].vkCode == 160
          mov Shift_key, FALSE
        .endif  
    endsw
  .endif

  .if fEatKeystroke && not Shift_key
    invoke PostMessage, rv(GetForegroundWindow), 80, 0, HKL_NEXT
    mov    ebx, 1
  .else
    mov    ebx, rv(CallNextHookEx, 0, nCode, wParam, lParam)
  .endif
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием