尋求李維的<Delphi 6/Kylix 2 SOAP/Web Service程序设计篇> ( 积分: 50 )

  • 主题发起人 主题发起人 cyxxde
  • 开始时间 开始时间
C

cyxxde

Unregistered / Unconfirmed
GUEST, unregistred user!
各位FW,誰能給我一份《Delphi 6/Kylix 2 SOAP/Web Service程序设计篇》,在網上找了很久都沒找到,不勝感激!
cyxxde@126.com
 
各位FW,誰能給我一份《Delphi 6/Kylix 2 SOAP/Web Service程序设计篇》,在網上找了很久都沒找到,不勝感激!
cyxxde@126.com
 
到书店去买!
 
自由界面和报表的完美解决方案!可用于常见的开发工具。
http://www.anylib.com
 
用HOOK,在dll中可以拦截到,不过HOOK必须放到一个DLL中.
自己查一下, SetWindowsHookEx,UnhookWindowsHookEx等API用法,
在HOOK中拦截WM_COMMAND
 
wqyzsh,謝謝你的幫助,能否再幫看看下面的代碼哪出了問題,運行的時候出錯,謝謝!下面是包含在dll中的代碼
unit hkproc;
interface
USES Windows,Messages, SysUtils ;

var
c:char;
i:integer;
j:integer;
hNextHookProc : HHook;
procSaveExit : Pointer;
function KeyboardHookHandler(iCode : Integer;wParam : WPARAM;lParam : LPARAM) : LRESULT; stdcall export;
function EnableHotKeyHook(FormHandle:THandle):BOOL ; export ;
function DisableHotKeyHook:BOOL; export;
procedure HotKeyHookExit ; far;

implementation
function KeyboardHookHandler(iCode : Integer;WParam : WPARAM;lParam : LPARAM) : LRESULT stdcall export;
var ActiveMessage:Msg;
_SendText:Array[0..254] of char;
begin
Result :=0;

if iCode &lt;0 then
begin
Result :=CallNextHookEx(hNextHookProc,iCode,wParam,lParam);
Exit;
end;
//========消息鉤子
if ActiveMessage.message=WM_GetText then
begin
SendMessage(iCode,WM_GetText,249,integer(@_SendText));
StrPCopy(_SendText,(_SendText+'我的附加消息'));
sendmessage(iCode,WM_SETTEXT,249,integer(@_SendText));
end;


//=======消息鉤子
end;

function EnableHotKeyHook(FormHandle:THandle):BOOL;export;
begin
Result:=False;
if hNextHookProc&lt;&gt;0 then exit;
hNextHookProc:=SetWindowsHookEx(WH_GetMessage,KeyboardHookHandler,FormHandle,0);
Result:=hNextHookProc=0;
end;

function DisableHotKeyHook:BOOL; export;
begin
if hNextHookPRoc&lt;&gt;0 then
begin
UnhookWindowshookEx(hNextHookProc);
hNextHookProc:=0;
Messagebeep(0);
Messagebeep(0);
end;
Result:=hNextHookPRoc=0;
end;


procedure HotKeyHookExit;
begin
if hNextHookProc&lt;&gt;0 then DisableHotKeyHook;
close(f);
ExitProc:=procSaveExit;
end;
end.
 
Result :=CallNextHookEx(hNextHookProc,iCode,wParam,lParam);
不是吧·消息总要返回的~不然目标程序会不正常的
ActiveMessage(这个里面有东西吗??)消息结构指针值应该是nil
修改一下
代码:
function KeyboardHookHandler(iCode : Integer;WParam : WPARAM;lParam : LPARAM) : LRESULT stdcall  export;
var
  _SendText:Array[0..254] of char;
begin
  if (nCode = HC_ACTION) and (PMsg(lParam).message=WM_GETTEXT) then
  //这个部分也不知道楼主要挂钩什么消息,我就按照您的Copy了一下,按钮:WM_COMMAND
  begin
    SendMessage(iCode,WM_GetText,249,integer(@_SendText));
    //偶没测试不知道这里会不会被自己拦截掉~~^_^
    StrPCopy(_SendText,(_SendText+'我的附加消息'));
    SendMessage(iCode,WM_SETTEXT,249,integer(@_SendText));
  end;
  Result :=CallNextHookEx(hNextHookProc,iCode,wParam,lParam);
end;
这样应该差不多了~~临时修改的没有测试估计差不多了~~
参考~http://liumazi.ys168.com
的代码好了~~
 
后退
顶部