单击其他应用程序的按钮失败

时间:2014-04-17 06:21:13

标签: c++ winapi

我正在使用一个对话框窗口,它有三个按钮:"保存...","解密"和"好的"。根据Spy ++,每个按钮都有类" XButton"。我正在努力按下" Decrypt"来自另一个应用程序,所以我这样做:

    // "buffer" below contains dialog's caption
    hProgramWindow = FindWindowEx(NULL, NULL, NULL, buffer);

    // "caption" below contains string "Decrypt"
    HWND hButton = FindWindowEx(hProgramWindow, NULL, TEXT("XButton"), caption);

    SetFocus(hProgramWindow);
    SetActiveWindow(hProgramWindow);

    PostMessage(hProgramWindow, WM_COMMAND,
            MAKEWORD(GetDlgCtrlID(hButton), BN_CLICKED), (LPARAM)hButton); 

    // After posting the message, GetLastError() returns "5" (Access denied),
    // but the button is clicked

caption变量具有值"保存..."时,"保存..."单击按钮(仍然是GetLastError()= 5),将出现相应的保存对话框。但是当caption变量具有值" Decrypt"时," Decrypt"按钮单击,不显示任何对话框。任何建议,为什么会发生?

顺便说一句,给EnableWindow(hButton, FALSE);打电话" Decrypt"按钮(以及"保存..."按钮)工作正常,它被禁用,这意味着句柄是正确的。

0 个答案:

没有答案