wm_Random := RegisterWindowMessage(szWMRandom); procedure MyRadom() begin Randomize; postMessage(funcB.handle,wm_Random,random(50),0); end;程序B const szWMRandom: pchar = 'IPC_WM_RANDOM'; var wm_Random: word; wm_Random := RegisterWindowMessage(szWMRandom);
procedure TForm1.WndProc(var AMessage: TMessage); begin if AMessage.Msg = wm_Terminate then begin FuncARadomValue = AMessage.wParam; end else inherited WndProc(AMessage); end;
2:能。注册消息
3:
程序A
const szWMRandom: pchar = 'IPC_WM_RANDOM';
var wm_Random: word;
wm_Random := RegisterWindowMessage(szWMRandom);
procedure MyRadom()
begin
Randomize;
postMessage(funcB.handle,wm_Random,random(50),0);
end;程序B
const szWMRandom: pchar = 'IPC_WM_RANDOM';
var wm_Random: word; wm_Random := RegisterWindowMessage(szWMRandom);
procedure TForm1.WndProc(var AMessage: TMessage);
begin
if AMessage.Msg = wm_Terminate then
begin
FuncARadomValue = AMessage.wParam;
end else
inherited WndProc(AMessage);
end;
截获A程序对rand()这类函数的调用,然后通知程序B。
如果A程序也是自己写的话,还用问吗?
但此时程序A已经对生成的数已经被处理,程序B不能及时抢在程序A前处理那数,
得到数也无意义
对于拦截API函数的问题,还请明示方法!
再次说明,程序B是我由编写的,程序A是第三方提供的,无源代码,更甚至不是EXE COM等
是一个FLASH
但程序A在你足够反应时已经结束进程了
现在问题改为如果拦截API函数!!