Delphi¿ç½ø³Ì·ÃÎÊDBGRID
´ËÎÄÊǸù¾Ý°éË®ÀÏ´óµÄʵÀý×öµÄСÐ޸ģ¡
ÒÔÏÂÊǸöÈ˼û½â£¬ÈçÓдíÎóÇëÖ¸Õý:)
ÒªÏë¿ç½ø³Ì·ÃÎÊDBGRID£¬Ã²ËÆÖ»ÄÜÓÃHOOK£¬Ð´Ò»¸öDLLÏë°ì·¨×¢È뵽Ŀ±ê½ø³Ì¡£×¢Èë³É¹¦ºó£¬Ê¹DLLÓëÄ¿±ê½ø³ÌÔÚͬһ½ø³Ì¿Õ¼äÖÐ(ÆäÄÚÓÐһЩϸ½ÚÎÊÌ⣬Çë²Î¼û´úÂë)£¬Õâʱ¿ÉÒÔ·ÃÎÊÄ¿±ê½ø³ÌµÄVCL×é¼þ¡£²¢°ÑVCL×é¼þµÄÊý¾Ýͨ¹ý½ø³ÌͨÐŵķ½Ê½·¢¸øSniffer½ø³Ì¡£
ÈçºÎ½øÐÐ×¢È룿
¿ÉÒÔ°²×°Ò»¸öWH_CALLWNDPROC¹³×Ó£¬ÕâÑùµ±ÓÐÏûÏ¢ÔÚ´°¿Úº¯ÊýÖÐʱ£¬ÏµÍ³¾Í»á×°ÔØHOOK£¬¼´Ö´ÐÐDLL²¿·Ö¡£
ÈçºÎ·¢ÏûÏ¢£¿
¿ÉÒÔÔÚDLLÖÐÉèÖÃÒ»¸ö×Ô¶¨ÒåÏûÏ¢£¬ÔÚ°²×°Íê¹³×Ӻ󣬷¢ËÍÒ»¸ö×Ô¶¨ÒåÏûÏ¢ÖÁÄ¿±ê½ø³ÌµÄ´°¿Úº¯Êý¡£
ÒÔÏÂʵÀý¿É¶Á³öÁíÒ»½ø³ÌµÄEDIT¡¢LABEL¡¢DBGRIDµÈ¿Ø¼þµÄÖµ¡£
ÈçºÎÁ˽âÕâ¸öÔÀí£¬¿ç½ø³Ì¶ÁÈ¡StringGridµÈ¿Ø¼þÒ²²¢·ÇÄÑÊ£¡
//DLLµ¥Ôª1
(*//
±êÌ⣺´°ÌåÐá̽Æ÷
×÷ÕߣºÍõ¼¯ðÀ(Zswang)
²©¿Í£ºhttp://blog.csdn.net/zswang
ÈÕÆÚ£º2009Äê3ÔÂ14ÈÕ
.//*)
unit Sniffer;
interface
uses Windows,DBGrids,DB;
function ExeSniffer( // Ö´ÐÐÐá̽
AHandle: THandle; // ´°Ìå¾ä±ú
AParam: Integer // ¸½¼Ó²ÎÊý
): BOOL; stdcall;
implementation
// ×ðÖØ×÷Õߣ¬×ªÌùÇë×¢Ã÷³ö´¦ Íõ¼¯ðÀ(Zswang) 2009Äê3ÔÂ14ÈÕ
uses SysUtils, Classes, Controls, StdCtrls, Messages;
var
WM_SNIFFWINDOW: Longword;
type
TSnifferInfo = packed record
rHOOK: HHOOK;
rHandle: HWND;
rParam: Integer;
end;
PSnifferInfo = ^TSnifferInfo;
var
vMapFile: THandle;
vSnifferInfo: PSnifferInfo;
var
ControlAtom: TAtom;
ControlAtomString: string = '';
RM_GetObjectInstance: DWORD; // registered window message
function FindControl(Handle: HWnd): TWinControl;
var
OwningProcess: DWORD;
begin
Result := nil;
if (Handle <> 0) and (GetWindowThreadProcessID(Handle, OwningProcess) <> 0) and
(OwningProcess = GetCurrentProcessId) then
begin
if GlobalFindAtom(PChar(ControlAtomString)) = ControlAtom then
Result := Pointer(GetProp(Handle, MakeIntAtom(ControlAtom)))
else
Result := Pointer(SendMessage(Handle, RM_GetObjectInstance, 0, 0));
end;
end; { FindControl }
function
Ïà¹ØÎĵµ£º
ÓÉÓÚÏîÄ¿µÄÐèÒª£¬½üÆÚ¿ªÊ¼Ñ§Ï°ÓÃdelphi¿ª·¢Ò»¸öÈíµç»°¿Ø¼þ¡£
ÒÔǰ½Ó´¥¹ýһЩdelphi¿ª·¢·½ÃæµÄ¶«Î÷£¨µ±È»¶¼ÊÇЩƤëÀ²£©£¬µ«Ã»½Ó´¥¹ýocx¿Ø¼þµÄ¿ª·¢£¬Ôڴ˰ÑһЩ¼òµ¥µÄ¶«Î÷¼ÇÏÂÀ´£¬Ò»·½ÃæÒÔºó×Ô¼º¿ÉÒÔÔÙѧϰ£¬ÁíÒ»·½ÃæÏ£Íû¶Ô¸Õ¸Õѧϰdelphi¿ª·¢ocx¿Ø¼þµÄ³õѧ ......
//²ÉÓõݹ鷽·¨£¬D7±àÒëµ÷ÊÔͨ¹ý¡£
//Êý¾Ý²ÉÓÃADOQuery¶ÁÈ¡£¬²¢½«Êý¾ÝÔÝ´æÔÚÒ»¸ö¶¯Ì¬Êý×éÖУ¬Ê÷ÐÎÁÐ±í¿Ø¼þΪTreeView¡£
procedure TForm1.LoadTreeInfo;
type
TInfo = record
ID, //´úÂë
Name, //Ãû³Æ
&nb ......
Ñо¿ÁËÒ»ÏÂPop3µÄÓʼþ½ÓÊÕÐÒ飬ȻºóËæÊÖдÁËÒ»¸öPop3µÄÓʼþ½ÓÊտؼþ£¡Pop3µÄÓʼþÐÒéʵ¼ÊÉÏÊǺܼòµ¥µÄ£¬ÖªµÀÄǼ¸¸öÃüÁî¾ÍÐÐÁË£¬Óë·þÎñÆ÷Ö®¼ä
µÄ½»»¥ÊÇÒ»ÎÊÒ»´ðµÃ·½Ê½£¬¿ØÖÆÆðÀ´Ò²ÈÝÒ×£¬Ïà¶Ô¶øÑÔÓʼþ¸ñʽµÄ½âÎöµ¹ÊǸü¼ÓÂé·³Ò»µã£¡ÓÚÊÇÒ²±ã˳´ø×Ž«MIMEÓʼþ¸ñʽ¸øÊìϤÁËһϣ¡×ܹé˵À´£¬¹æÂÉÐÔ±È
½ÏÇ¿£¬ÏÈ»ñÈ¡×î´óµÄ¶¥²ã¿ò ......
dll µ÷Ó÷½·¨ÓÐ ¾²Ì¬µ÷ÓúͶ¯Ì¬µ÷ÓÃÁ½ÖÖ·½·¨
Óõ½µÄdllΪÉÏÆªÎÄÕÂËù±àдµÄdll.
×ܽáÈçÏ£º
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Type
TForm1 = Class(TForm)
Button1: TButton; ......
Format
typeµÄ¿ÉÄÜÖµÓÐÏÂÁÐÕâЩ£º
(1) d ÓзûºÅÊ®½øÖÆÊý
Args±ØÐëÊÇÓзûºÅÕûÐÍÊý¡£Èç¹ûÔÚ¸ñʽ»¯×Ö·û´®Öл¹¼ÓÈëÁË["." prec]£¬ÔòÈç¹ûArgs
µÄ³¤¶ÈÈç¹ûСÓÚ¸ø³öµÄ¾«¶ÈÊýʱ£¬ÔÚǰ±ßÌî²¹0£»Èç¹û´óÓÚ¾«¶ÈÊý£¬°´Êµ¼Ê³¤¶ ......