我正在使用一个对话框窗口,它有三个按钮:"保存...","解密"和"好的"。根据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"按钮(以及"保存..."按钮)工作正常,它被禁用,这意味着句柄是正确的。