Делать нечего в селе Мы сидим на веселе... Пишу на Delphi прогу - keylogger. Хуки на перехват установил вроде. SetWindowsHookEx(WH_KEYBOARD, @MyProc, HInstance, 0); Но никак не могу понять где касячу! Вроде соответствующая библиотека перехватывает все нажатия с клавиатуры (абсолютно). Но как ни странно фиксирует и отождествляет передаваемый код с соответствующей клавишей только в том случае, если приложение, запустившее библиотеку, находится в активном состоянии. Как вы понимаете такой вариант меня не устраивает... Приложение запустившее библиотеку у меня скрыто. Подскажите где и что я делаю не так!
YR Ты "делаешь не так" самое главное - дурью маешься. Достали уже, ничего писать еще не умеют, даже читают с трудом (если пользоваться справкой и т.д. не умеют), а туда же - малвары писать. Модеры, закройте, пожалуйста тему!
Могу только поблагодарить за подобный комментарий . НО хочу сказать, что и МОСКВА не сразу строилась!
В те времена кроме DELPHI ни на чем е писали. если бы тогда была Java или C++ - Москва бы построилась сразу
Хватит дурью маятся YR Напиши че-нибудь стоящее, а то щас очень много людей только прогать научились и давай мутить дурь типа кейлоггеров. Для начала научись читать хелп, а уже потом пиши гадость типа руткитов, если очень охота спереть пароль от инета своего соседа по сети.
И что я в хелпе не видел? Знаю - латинские буквы . А если серьезно, то конечно спасибо за коммент, но думаю у всех были моменты, когда "приперло"!?!?
nitrotoluol Есть такой ДелфиВорлд Т.е. автор темы задавал это же вопрос где-то еще? Знаешь точную ссылку? Человек скопировал-вставил Помогать можно по разному. Можно стебаться, можно дать готовое решение, можно подсказывать направления поиска, можно задавать вопросы так (imho это уже высший пилотаж), что автор, отвечая на них, "сам" найдет решение, что безусловно добавит ему уверенности в себе и, возможно, подвигнет на решение более сложных задач.
q_q Нет. Есть различные миры , к примеру мир асм, мир си и мир делфи - DelphiWorld, C++ world и пр. Т.е. сборник статей простыми словами. Вот в сборнике статей делфи есть и о хуках. Автор не нагрузив себя умственной работой, просто скопировал код со статьи, вставил, ткунл, а оно не заработало. hinstance - это просто хэндл.
Да, здесь идет реально стеб, хотя спасибо за подсказку по мирам (delphiworld наверно подойдет ). И если уж совсем о птичках-прога работает, и я ждал по большей части комментов с линками на какой нить ман или статью, что кстати частично оправдалось
nitrotoluol Есть различные миры ... Использование в них Win API сильно разнится? Автор не нагрузив себя умственной работой, просто скопировал код со статьи ... Наверное, ты хорошо знаком с автором темы. hinstance - это просто хэндл. Например, Рихтер пишет, что для глобального хука его обработчик должен быть размещен в dll'ке и третий параметр SetWindowsHookEx должен быть ее дескриптором, а это уже не "просто хэндл".
линкуй с секцией разделяемых данных, типа: \masm32\bin\link /section:.bss,S /DLL /DEF:keyhook.def /SUBSYSTEM:WINDOWS /OPT:NOREF keyhook.obj Особо обрати внимание на : /section:.bss,S Это должно помочь
Вместо хука юзай GetAsyncKeyState. Тут кажись есть исодники Simples Key Logger by marazm, правда на Fasm-е. Немножко подправить и получается то, что нужно. На его базе написал себе маленькую утиль, работает хорошо. Удачи.
GetAsyncKeyState не рулит, палится всем чем только можно. Через DirectInput надежнее (по крайней мере было И опять же не нужно библиотек..