某对话框是其他程序生成的,上面有些按钮,比如说一个“是”一个“否”,怎么知道直接回车会作用到哪个上,怎么知道哪个目前是不可用(变灰按钮)?

解决方案 »

  1.   

    怎么知道直接回车会作用到哪个上:GetFocus,当然这个也不一定准,因为有可能父窗口会处理回车
    怎么知道哪个目前是不可用(变灰按钮):用BM_GETSTATE
      

  2.   

    有一个程序,
    HWND hChooseWnd = ::FindWindow(NULL,"Universal Theme Patcher Report");
    HWND hR = GetDlgItem(hChooseWnd,6);用::SendMessage(hChooseWnd, WM_COMMAND, MAKEWPARAM( 6,BN_CLICKED), 0);
    能模拟点击某按钮,

    ::SetActiveWindow(hChooseWnd);
    ::SendMessage(hR,WM_KEYDOWN,VK_RETURN,0); 
    ::SendMessage(hR,WM_KEYUP,VK_RETURN,0);
    却不行,不知道怎么回事
      

  3.   

    你可以用mouse_event/SentInput()来模拟鼠标点击事件