好像不会有系统消息产生,Random只是调用了Delphi的一个随机数产生器。
不同的编译系统它的随机数产生器应该也不相同。
以小弟愚见,你的想法可能不能实现了。

解决方案 »

  1.   

    1:不会
    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;
      

  2.   

    程序A显示时要发送消息,在B中捕获并预处理,然后返回给A,
      

  3.   

    这好像是API函数拦截的问题。
    截获A程序对rand()这类函数的调用,然后通知程序B。
      

  4.   

    各位观众,难道你们没有看到,B程序只是知道A程序的句柄吗?这可能是B程序想截获一个不由B程序控制的程序(A)的消息,(哦,对不起,这个消息不存在!)
    如果A程序也是自己写的话,还用问吗?
      

  5.   

    程序A的显示是动态的显示,即用动态变化图形实现的,我已经捕获
    但此时程序A已经对生成的数已经被处理,程序B不能及时抢在程序A前处理那数,
    得到数也无意义
    对于拦截API函数的问题,还请明示方法!
    再次说明,程序B是我由编写的,程序A是第三方提供的,无源代码,更甚至不是EXE COM等
    是一个FLASH
      

  6.   

    你想要干什么?那你还不如做FPE那样的东东,直接查找内存里的值
      

  7.   

    FPE也没用,FPE需要一定量的数据,定值或变化趋势
    但程序A在你足够反应时已经结束进程了
      

  8.   

    本人已经进一步知道实现原理
    现在问题改为如果拦截API函数!!
      

  9.   

    拦截API函数技术难道就没有人深入的了解?
      

  10.   

    壮兄:有关拦截winapi函数的hook在《程序员》第二期就有,很详细的。去研究研究吧。
      

  11.   

    呵呵~~~~~拦截api也不一定有用哟,程序a不一定用到api函数哟,可能是自己写的一个函数(比如说根据当前时间作种子数)
      

  12.   

    你可以上sina,yahoo上找一些这方面的资料,挺多的