如何捕获信息和发送消息(100分)

  • 主题发起人 主题发起人 jsq
  • 开始时间 开始时间
J

jsq

Unregistered / Unconfirmed
GUEST, unregistred user!
两个问题:<br>1.如何截取所有的键盘信息,并从中选出我所需要的某些<br>字符串,在显示前进行预处理,<br>2.然后将处理好的字符串发送到当前的输入焦点处<br>程序实在后台运行的,前台是编辑窗口,和输入汉字一样
 
高手快指点啊,急急急
 
象你这样, 得用 hook, 具体看其他问题。
 
<br>拦截消息处理过程 &nbsp;<br><br><br>program Project1;<br><br>uses<br>Forms, messages, wintypes, winprocs,<br>Unit1 in 'UNIT1.PAS' {Form1};<br><br>{$R *.RES}<br><br>var<br>OldWndProc: TFarProc;<br><br>function NewWndProc(hWndAppl: HWnd; Msg, wParam: Word;<br>lParam: Longint): Longint; export;<br>begin<br>NewWndProc := 0; { Default WndProc return value }<br><br><br>NewWndProc := CallWindowProc(OldWndProc, hWndAppl, Msg,<br>wParam, lParam);<br>end;<br><br>begin<br>Application.CreateForm(TForm1, Form1);<br>OldWndProc := TFarProc(GetWindowLong(Application.Handle,<br><br>GWL_WNDPROC));<br>SetWindowLong(Application.Handle, GWL_WNDPROC,<br>longint(@NewWndProc));<br>Application.Run;<br>end. <br><br><br><br>模拟按下某键,就是向某处发送消息。<br><br>让 WIN95 模拟按了一个按键,就向某窗体发送按键一样,例如按下 ENTER 或者 TAB 键,或者按 7 键<br>PostMessage(Object.Handle, WM_KEYDOWN, VK_TAB, 0);<br>{Object表示窗体名,WM_KEYDOWN是按下,VK_TAB是发送的按键}<br>PostMessage(edit1.Handle, WM_KEYDOWN, 55, 0);<br>{向edit1发送一个7字}
 
用hook监视键盘事件.检索"Hook"
 
怎么发送一串字符呢?谢谢<br>
 
SetWindowText(Edit1.Handle, 'OOOKKK');
 
各位大虾,能给个具体点的例子吗?<br>比如有form1;<br>然后我在键盘敲入'I'm try to send it'<br>然后我从字符串中取得'send',并送到form1<br>的edit1中。<br>谢谢<br>
 
to jsp:<br>KeyDown()、KeyUp()、KeyPress();<br>选择'send'的标准是什么?为什么要屏蔽其它字符?能说清楚吗?
 
我也比较关注该问题
 
to miki:<br>&nbsp; &nbsp;“用hook监视键盘事件.检索"Hook"”可否详细点,能有个例子吗?!谢谢了!
 
不要犹豫了setWindowsHookEx吧。
 
hook的例子在http://www.csdn.net/delphi/Samples/hookdemo.zip<br>http://www.csdn.net/delphi/Samples/hookdmo.exe
 
多人接受答案了。
 
后退
顶部