| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 21.10.08 Prihlásený: 18.12.19 Príspevky: 198 Témy: 74 Bydlisko: Nitra | Napísal KViki: 01.08.2009 16:01 | |
|
Potrebujem aby program v delphi zaznamenaval vsetko aj ked je neaktivny.
Napr.: aj ked mam aktivne ine okno tak a stalcim klavesu tak mi ju program zaregistruje. neviem ci ma chapate. ?!
|
|
Registrovaný: 11.01.09 Prihlásený: 23.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 01.08.2009 18:28 | |
|
Ak ide len čisto o zaznamenanie stlačených klávesov, tak najideálnejšie to bude za pomoci hákov (hooks).
Vytvor si DLL:
Kód: library Project1;
uses SysUtils, Classes, Windows, Dialogs;
{$R *.res}
var hHak: HHOOK;
function OdchytenieKlavesu(kodHaku: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; begin
if ((lParam and $80000000) = 0) then ShowMessage(IntToStr(wParam));
Result:= CallNextHookEx(hHak, kodHaku, wParam, lParam);
end;
procedure PridajHak(); begin
hHak:= SetWindowsHookEx(WH_KEYBOARD, @OdchytenieKlavesu, HINSTANCE, 0);
end;
procedure OdstranHak(); begin
UnhookWindowsHookEx(hHak);
end;
exports PridajHak, OdstranHak;
begin end. Vytvor si projekt: Kód: var Form1: TForm1;
procedure PridajHak; external 'Project1.dll'; procedure OdstranHak; external 'Project1.dll';
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin
PridajHak();
end;
procedure TForm1.FormDestroy(Sender: TObject); begin
OdstranHak();
end;
Knižnica nech je samozrejme v zložke s aplikáciou a nech sa volá Project1.dll (alebo si prepíš názov pri importovaní funkcií). Po každom stlačení klávesu sa v dialógu zobrazí ASCII stlačeného klávesu.
|
|
Registrovaný: 12.05.09 Prihlásený: 21.05.10 Príspevky: 33 Témy: 8 Bydlisko: Bánovce nad... |
v záujme toho aby som nemusel program distribuovať s knižnicou DLL tak som to skúsil prerobiť takto:
Kód: unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; hHak: HHOOK; txt:TextFile;
implementation
{$R *.dfm} function OdchytenieKlavesu(kodHaku: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; begin
if ((lParam and $80000000) = 0) then showmessage(chr(wParam));
Result:= CallNextHookEx(hHak, kodHaku, wParam, lParam);
end;
procedure PridajHak(); begin
hHak:= SetWindowsHookEx(WH_KEYBOARD, @OdchytenieKlavesu, HINSTANCE, 0);
end;
procedure OdstranHak(); begin
UnhookWindowsHookEx(hHak);
end;
procedure TForm1.FormCreate(Sender: TObject); begin assignfile(txt,'skuska.txt'); rewrite(txt); PridajHak(); end;
procedure TForm1.FormDestroy(Sender: TObject); begin OdstranHak(); closefile(txt); end;
end.
lenže robí to teraz také somariny:
tiež som hľadal nejakú možnosť ako spraviť keylogger ale no neviem asi toto nebude princíp na ktorom sú založené keyloggery
_________________ SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA |
|
Registrovaný: 11.01.09 Prihlásený: 23.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 02.08.2009 8:10 | |
|
Ehm
Citácia: Ak špecifikujete globálny hák, musí sa funkcia háku nachádzať v DLL knižnici ...
Globálne háky nie sú WH_JOURNALRECORD a WH_JOURNALPLAYBACK - my sme použili WH_KEYBOARD, takže DLL je nevyhnutná.
|
|
Registrovaný: 21.10.08 Prihlásený: 18.12.19 Príspevky: 198 Témy: 74 Bydlisko: Nitra | Napísal autor témy KViki: 02.08.2009 11:47 | |
|
No aj ja som premyslal ako spravit keylogger,. ale to neni primarne., Chcel som spravit multiClipBoard. Zistujem ze to nebude take jednoduche., :|
|
|
Registrovaný: 12.05.09 Prihlásený: 21.05.10 Príspevky: 33 Témy: 8 Bydlisko: Bánovce nad... |
no našiel som na nete toto:
Kód: http://mo4x.wordpress.com/2007/03/30/simple-keylogger-in-delphi/ je to presne ako písal Fico že v tom čo on ukázal zdroják tak tam je použité:WH_KEYBOARD a v tom čo som našiel j tam je WH_JOURNALRECORD ...absolútne neviem čo to je ale aspoň viem čo si môžem pozrieť a naučiť sa...myslím tie háky a mimochodom ten keylogger na tej stránke vyššie funguje už som ho aj skúšal len osobne som ho trošku preroobil aby som nemusel stláčať ten speedbutton a prekrásne funguje aj keď skryjem form takto: Kód: Application.ShowMainForm := False;
to som dal do oncreate a není program ani v lište ani v tray len v taskbare a z teda sa dá vymazať
_________________ SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| [Delphi] Okno v Delphi, Visual Basic | 6 | 687 | 15.01.2010 21:42 vama | | Popup okno v Delphi v Delphi, Visual Basic | 16 | 1394 | 28.07.2010 13:06 newby | | Ako dostat okno z druheho monitora nazad ked ho nemam? v Operačné systémy Microsoft | 1 | 353 | 17.11.2010 21:58 OmeGa | | Keď hrám hru tak sa mi okno visvieti ako nepoužívane. v Notebooky a netbooky | 12 | 440 | 19.06.2015 16:42 walther | | delphi zapis cisla do editu v delphi v Delphi, Visual Basic | 3 | 1107 | 11.05.2008 12:02 p360t | | okno v Ostatné programy | 1 | 289 | 10.09.2014 9:24 tatko Tom | | Okno v JavaScript, VBScript, Ajax | 4 | 848 | 01.12.2007 17:32 qacer | | VB - okno v Delphi, Visual Basic | 1 | 1102 | 28.03.2008 21:10 sento | | Vyskakovacie okno v Redakčné systémy | 1 | 611 | 18.04.2007 18:08 Tominator | | Staticke okno v HTML, XHTML, XML, CSS | 6 | 537 | 13.03.2008 15:10 ove | | Vyskakovacie okno v Operačné systémy Microsoft | 6 | 526 | 16.06.2008 6:54 holubbn | | vyskakovacie okno v PHP, ASP | 3 | 1007 | 24.07.2009 21:11 emer | | Vyskakocvacie okno v PHP, ASP | 5 | 498 | 11.11.2007 21:00 Hue | | samostatne okno v Assembler, C, C++, Pascal, Java | 24 | 906 | 09.09.2010 21:49 achbo | | Javascript okno v JavaScript, VBScript, Ajax | 22 | 826 | 27.03.2014 14:11 samson3333 | | Formulárové okno v PHP, ASP | 1 | 319 | 14.01.2014 0:34 shaggy |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|