我想在vs05中做一个c/s程序,页面中有一个button1, 
再用delphi做一个c/s程序,页面中有一个button2 
按下button1触发button1_Click事件,同时触发button2的Click事件, 
哪位高手能给个思路

解决方案 »

  1.   

    1.你可以使用内联汇编,VS的程序HOOK进DELPHI,找到触发button2的Click跳转点,调用汇编类去执行对应的操作
    2.两个程序做一种通讯,SOCKET或者消息机制
      

  2.   

    不同的两个进程的窗体,感觉用SendMessage好,获取该按钮的句柄,直接发送一个该按钮被按下的消息
      

  3.   

    sendmessage或回调函数,当涉及到不同语言相互触发事件的时候,一般都是使用回调函数来实现;
      

  4.   

    library JobMOM;
     
    uses
      Windows,
      Messages,
      Classes;
     
    {$R *.res}
     
    function EnumChildWndProc(AhWnd:LongInt; AlParam:lParam):boolean;stdcall; var
      WndClassName: array[0..254] of Char;
      WndCaption: array[0..254] of Char;
    begin
      GetClassName(AhWnd,wndClassName,254);
      GetWindowText(aHwnd,WndCaption,254);
      if WndCaption='中国共产党'
      then begin
        SendMessage(aHwnd,WM_LBUTTONDOWN,0,0);  //鼠标左键按下
        SendMessage(aHwnd,WM_LBUTTONUP,0,0);    //鼠标左键抬起
      end;
      result:=true;
       //为假则EnumChildWindows回调结束,详细信息查看函数EnumChildProc
    end;
     
    procedure Button1Click;stdcall;
    var hWnd: LongInt;
    begin
       hWnd:=FindWindow(nil,pchar('更改工单'));   // 获得目标窗体的句柄
       if hWnd<>0 then
       begin
         EnumChildWindows(hWnd,@EnumChildWndProc,0);   //将获取空间名称和类名的回调函数传递给EnumchildWindows函数。
       end
     
    end;
     
    exports
      Button1Click;
     
    begin
    end.
     
      

  5.   

     if WndCaption='中国共产党' 
      then begin 
        SendMessage(aHwnd,WM_LBUTTONDOWN,0,0);  //鼠标左键按下 
        SendMessage(aHwnd,WM_LBUTTONUP,0,0);    //鼠标左键抬起 
      end; 
    //当你的标题是“中国共产党”的时候,就发送这两个消息给你的窗口,如果是C#写的winform程序,你需要重写WndProc()这个方法,然后捕获WM_LBUTTONDOWN和WM_LBUTTONUP这两个消息,然后分别对其做互相响应,触发你的C#winform中的button1的click事件;