假设App_Control的值为“window_button”,其中window是窗口的标题,button是按钮的text;我的想法是把“字符串分割”得到这两个值后先通过“window”找到窗口的句柄,然后遍历窗口的所有控件,通过“button”找到BUTTON的句柄;通过句柄给button发消息实现点击操作;帮忙检查一下程序
BOOL AppConfig_line::ClickButton()
{
   
    LPTSTR pName = App_Control;
       //开始风格字符串
    TCHAR ControlName[MAX_PATH];
    TCHAR WindowName[MAX_PATH];
    TCHAR *pTemp;    pTemp = wcsrchr(pName, _T('_'));
    if (pTemp == NULL)
    {
        return FALSE;
    }
        //得到控件的text
    _tcscpy(ControlName,(pTemp + 1));
    *pTemp = '\0';
        //得到窗口的值
    _tcscat(WindowName, pName); 
        TCHAR TempName[MAX_PATH];
    HWND hWindow =::FindWindow(NULL,WindowName);
    HWND  pWnd  = GetWindow(hWindow,GW_CHILD);
        //遍历窗口控件
    while(pWnd != NULL)
    {
        memset(TempName, 0, sizeof(TempName));
        int m = GetWindowText( pWnd, TempName,sizeof(TempName));
                //比较窗口控件的值和指定控件值是否相等
        if(0 ==_tcscmp(TempName ,ControlName))
        { 
            //发送点击消息
                        PostMessage(pWnd, WM_LBUTTONDOWN, MK_LBUTTON, 0);
            PostMessage(pWnd, WM_LBUTTONUP, 0, 0);
            Sleep(1000);
            return true;
            break;
        }
        pWnd = GetWindow( pWnd, GW_HWNDNEXT); 
    }    return false;
}由于本人水平有限,不知道字符串的分割是否正确,
但是每次执行完GetWindowText()后pWnd就指向了一个空地址,而且ControlName的值也成了空字符串

百思不得解!