用 sendmessage发送消息控制另一个程序的按钮,我用了好象不行,伤心啊!
高手指点一下,详细说一下用法!!

解决方案 »

  1.   

    Hwnd3:=findwindowex(hwnd,0,'TFlatButton','登陆(&L)');
      

  2.   

    var h:hwnd;
        s:string;
    begin
       s:=test;
       h:=findwindow(nil,'按钮名称');
       if h<>0 then showmessage('ok') else showmessage('error');
      sendmessage(h,wm_settext,0,integer(pchar(s)));//设置按钮文字
    end;
      

  3.   

    FindWindowExFindWindowExA( IN HWND, IN HWND, IN LPCSTR, IN LPCSTR);
      

  4.   

    FlatStyle中的TFlatButton?hwnd怎么获得的?
    确定标题和CLASS正确?发送什么消息?
      

  5.   

    标题和类通过winsight32获得,已经证明没有错。
    想发消息控制这个按钮被单击。
    是不是应该用Postmessage?
      

  6.   

    单击那要发两条消息WM_LBUTTONDOWN
    WM_LBUTTONUP
      

  7.   

    具体怎么用呢?

    SendMessage(Hwnd3,WM_LBUTTONDOWN,0, 0);
    SendMessage(Hwnd3,WM_LBUTTONUP,0, 0);
    么?
    还是不行!
      

  8.   

    设几个断点,看看hwnd,hwnd3有没有为0?
      

  9.   

    Hwnd3确实为零!!!想不明白。帮着看看代码:
    ...
        winexec('d:\ccc.exe',SW_SHOWMINIMIZED);
        Hwnd:=findwindow('TFrmMain','客户端');
        EnumChildWindows(Hwnd, @EnumChildProc, 0);
        Hwnd3:=findwindowex(hwnd,0,'TFlatButton','登陆(&L)');
        SendMessage(Hwnd3,WM_LBUTTONDOWN,0, 0);
        SendMessage(Hwnd3,WM_LBUTTONUP,0, 0);
    ....
      

  10.   

    flatbutton? 继承自tgraphiccontrol,有hwnd吗?呵呵。
      

  11.   

    TFlatbutton继承自TCustomControl,而不是TGraphicControl检查Caption是否有错?把
    Hwnd3:=FindWindowEx(hwnd,0,'TFlatButton','登陆(&L)');
    改为
    Hwnd3:=FindWindowEx(hwnd,0,'TFlatButton',nil);
    试试