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ºÍC++Êý¾ÝÀàÐͶÔÕÕ±í
Delphi ×Ö³¤/ÖµÓò C++
ShortInt &n ......
Procedure TForm1.Button1Click(Sender: TObject);
Var
xmlstr,FileName: String;
f: Textfile;
Begin
xmlStr := '<?xml version="1.0" encoding="gb2312"?>';
xmlstr := xmlstr + '<user><name>ÕÅÈý</name><sex>ÄÐ</sex></user>';
sh ......