0

SendMessage 返回 0 和 GetLastError 返回 2 ( ERROR_FILE_NOT_FOUND)。ERROR_ACCESS_DENIED记录在案,但不是这个。有人知道这意味着什么吗?

4

1 回答 1

2

返回 0 的 SendMessage 不会也不能指示失败。SendMessage 只返回 WindowProc 返回的值,该值通常为 0。无法判断 - 仅通过 SendMessage 的返回 - 如果 SendMessage 无法传递消息(可能是因为窗口无效或属于更高完整性级别的进程)。

如果消息记录为返回 0 以外的值,则再次根据消息,查看 GetLastError() 以了解消息处理失败的原因可能是有效的。

此外,没有任何操作系统函数会清除最后一个错误代码,因此 GetLastError() 中的任何值都可能完全是偶然的。调用 API 然后调用 GetLastError() 可能意味着错误发生在之前的 API 调用中,或者内部调用的 API 执行了一些“失败”但被处理并且 API 本身成功的操作。

于 2009-09-30T08:41:05.703 回答