【问题标题】:what could prevent GetPixel from working?什么会阻止 GetPixel 工作?
【发布时间】:2011-06-08 08:04:48
【问题描述】:

我正在使用 GetPixel 从某个窗口(更具体地说,扑克桌)读取像素。

当然,现在,在我的 PC 以及大约 95% 的其他 PC 上,一切都运行良好。但时不时地,有一台 PC 无法正常工作 - GetPixel 返回 CLR_INVALID。即使操作系统是打开了 aero 的 win7(我已经看到它只在 win7 64 位上发生)。

所以,同一个窗口 - 使用 GetPixel 在我的电脑上工作,但在另一台电脑上却不工作。

有没有人遇到过这种情况?某些应用程序可以阻止其他应用程序吗?从使用 GetPixel?

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    如果其他应用程序正在提升或以其他用户身份运行,您将无法触摸它。

    【讨论】:

    • 嗯,我明白了...如果我也在高架上跑步怎么办?
    • 更新:似乎不是这样 - 我只是尝试以管理员身份运行扑克客户端,而我作为普通用户运行 - 它按预期工作。
    【解决方案2】:

    来自MSDN

    如果像素在当前像素之外 裁剪区域,返回值为 CLR_INVALID.

    【讨论】:

    • 我明白了... 作为旁注,如果我捕获整个窗口并执行 BitBlt,它就可以工作。我该怎么办?
    • 您正在对与窗口关联的 DC 剪辑范围之外的像素进行采样。您仍然可以使用 BitBlt,因为它正在对整个 DC 进行批量操作。
    猜你喜欢
    • 2020-04-20
    • 2018-10-12
    • 1970-01-01
    • 2021-11-04
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多