gpt4 book ai didi

winapi - GetClipboardData(CF_TEXT) 在什么情况下会返回 NULL?

转载 作者:行者123 更新时间:2023-12-04 19:40:36 24 4
gpt4 key购买 nike

我有这个断断续续的问题,让我发疯了很长时间:在我的一个程序中,获取剪贴板数据(CF_TEXT) 90%(左右)的时间成功,但每隔一段时间它就会返回 NULL。

尽管 OpenClipboard() 在调用 GetClipboardData(CF_TEXT) 之前总是成功(并检查返回值),但还是会这样做。

请注意,90% 的成功率是针对同一页的! (即我知道那里有 CF_TEXT 内容)

注意:当它失败时,我立即调用 GetLastError() 但它返回的只是: "操作成功完成" .

有问题的代码很简单:

if (::OpenClipboard(hwndW))
{
HANDLE handleClip = ::GetClipboardData(CF_TEXT);
if (handleClip == NULL)
dw = GetLastError()
}

什么可能会将错误的 GetLastError() 代码注入(inject)其中?

知道什么会导致这种不一致的行为吗?

是否有其他进程正在锁定剪贴板?如果是这样,我该如何取回它?

如何解决或调试这样的问题?

最佳答案

您在使用 WebRoot SecureAnywhere 吗?如果不允许的应用程序(基本上是任何未经预先批准的应用程序)尝试从剪贴板中检索由 protected 应用程序(包括许多浏览器和电子邮件客户端通过默认)。发生这种情况时,GetClipboardData(CF_TEXT)即使先前调用 IsClipboardFormatAvailable(CF_TEXT) 也会返回 NULL返回真。

关于winapi - GetClipboardData(CF_TEXT) 在什么情况下会返回 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com