Эмуляция нажатия клавиш...Нид Хелп

Тема в разделе "WASM.BEGINNERS", создана пользователем KeyMan, 12 сен 2009.

  1. VaZoNeZ

    VaZoNeZ New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    121
    Прицепи kernel32.inc и kernel32.lib
     
  2. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    где то выше нужно описать эти функции. я хз фасм, но просто из скопированного куска кода не скомпилируешь .ехе

    может тебе разобратца сначала с примером в фасме "хеллоу, ворлд"?
     
  3. KeyMan

    KeyMan New Member

    Публикаций:
    0
    Регистрация:
    12 сен 2009
    Сообщения:
    11
    хмм, а гдето можно скомпелировать не инклюдя разве? или скажите где скомпилить чтобы марок меньше было...
     
  4. VaZoNeZ

    VaZoNeZ New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    121
    Используй MASM и не епи окружающим мозг!
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3.  
    4. option casemap:none
    5.  
    6. include \masm32\include\windows.inc
    7. include \masm32\include\kernel32.inc
    8. include \masm32\include\user32.inc
    9.  
    10. includelib \masm32\lib\user32.lib
    11. includelib \masm32\lib\kernel32.lib
    12.  
    13. .code
    14.  
    15. start:
    16.  
    17. invoke Sleep, 500
    18. invoke keybd_event, VK_4,1,0,0
    19. invoke keybd_event, VK_4,1,KEYEVENTF_KEYUP,0
    20. jmp start
    21.  
    22. end start
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    VaZoNeZ
    Ну все тоже самое почти так же пишется и на фасме. Не надо обсирать хороший компилер)

    Код (Text):
    1. include 'win32ax.inc'
    2. .code
    3. start:
    4.  invoke Sleep, 500
    5.  invoke keybd_event, VK_4,1,0,0
    6.  invoke keybd_event, VK_4,1,KEYEVENTF_KEYUP,0
    7.  jmp start
    8.  
    9. .end start
     
  6. sometime

    sometime Odessa

    Публикаций:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    227
    Адрес:
    sunday
    KeyMan
    http://ru.wikipedia.org/wiki/Brainfuck

    там инклюды не нужны совсем)
     
  7. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    А в чём разница между
    invoke Sleep, 500
    PUSH 001F4h

    В ollydbg пишет одно и тоже, а выполняет разное
    если пишу PUSH 01F4h
    комп что то не то начинает делать
     
  8. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    PUSH 01F4h
    это под DOS что ли
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    VictorV79
    Сосредоточтесь.
     
  10. VaZoNeZ

    VaZoNeZ New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2009
    Сообщения:
    121
    Да, это последняя версия доса - PizDOS.
     
  11. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    А при детях ругаться не хорошо
     
  12. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    Блин, знал бы куда смотреть
     
  13. warsem

    warsem Сеня

    Публикаций:
    0
    Регистрация:
    26 янв 2005
    Сообщения:
    170
    Адрес:
    Германия, NRW
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. .data
    4. db ?
    5. .code
    6. start:
    7.  
    8. invoke Sleep, 500
    9. invoke keybd_event, VK_4,1,0,0
    10. invoke keybd_event, VK_4,1,KEYEVENTF_KEYUP,0
    11. jmp start
    12.  
    13. end start
     
  14. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    А в чём разница между
    invoke Sleep, 500
    PUSH 01F4h

    Да
    Понял
    только не понял как переписать
    invoke Sleep
    прямым кодом без Kernel32
     
  15. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    Sorry
    за глупые вопросы
    просто нужно включить внимательность
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    VictorV79
    Вам пока не нужно без Kernel32, для этого нужно определить ID сервиса NtDelayExecution, динамически или таблицу захардкодить, после чего вызывать его как шлюз, либо использовать этотже экспорт из ntdll.
    Хотя если задержка менее секунды, можно сделать цикл ожидания(без поправки на переполнение):
    Код (Text):
    1. TIMEOUT equ 500 ; Ms
    2.  
    3. GET_TICK_COUNT macro
    4.     Int 2AH ; Edx:Eax
    5. endm
    6.  
    7. WAIT_NEXT_TICK macro
    8.     Int 2AH
    9.     push edx
    10.     push eax
    11. @@:
    12.     Int 2AH
    13.     cmp dword ptr [esp],eax
    14.     jne @f
    15.     cmp dword ptr [esp + 4],edx
    16.     je @b
    17. @@:
    18.     add esp,2*4
    19. endm
    20.  
    21. SPINDELAY macro Timeout
    22.     WAIT_NEXT_TICK
    23.     lea ecx,[eax + Timeout] ; Ms
    24. @@:
    25.     GET_TICK_COUNT
    26.     cmp eax,ecx
    27.     jb @b
    28. endm
     
  17. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    Буду штудировать
    до вас мне ещё далеко
    просто уважительно промолчу и буду вникать в процесс
     
  18. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    :fecepalm:
    розгами таких - да по яйцам, по яйцам!..

    вот объясни мне, юный кодер, нафига ты в фасм полез?
    тебе трудно было устройство точной логики отточить на сях хотя бы?
     
  19. VictorV79

    VictorV79 New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2009
    Сообщения:
    130
    вот объясни мне, юный кодер, нафига ты в фасм полез?
    Работал 15 лет назад в 16 бит
    15 лет не программировал вообще
    и сейчас туплю в MASM 32


    Кто не понял
    Тема эта не моя
    вопрос про DOS мой
    ступил
    бывает

    В фасм, тасм не лезу
    учу в MASM32

    иногда Хочется всё и сразу
    вот и возникают у мя лишние вопросы
    а у других ответы
    розгами таких - да по яйцам, по яйцам!..
    с сутью ответа согласен
    Но излишняя строгость иногда не соответствует результату
    иногда лучше лишний раз объяснить, что бы понял, а не заучил, зазубрил
     
  20. KeyMan

    KeyMan New Member

    Публикаций:
    0
    Регистрация:
    12 сен 2009
    Сообщения:
    11
    Всем кто помог спс, завтра все попробую опишу результат, по поводу людей которые там так яростно орут про фасм, Я на асме кодю 1 раз! и для меня разницы в компиляторе небыло что фасм, что масм, меня не волновало тогда!Но после этих постов я естественно понимаю что нужен мне масм, за что спс(направили на нужный путь), а вот такую жестокую критику по отношению к новичкам призераю...