【问题标题】:Using Appkit and Python to hide mouse cursor on OSX使用 Appkit 和 Python 在 OSX 上隐藏鼠标光标
【发布时间】:2014-08-15 17:01:48
【问题描述】:

我正在尝试编写脚本在 OSX 10.9 上隐藏鼠标光标。我有 Chrome 启动并全屏显示信息亭,我想定期运行一个脚本来隐藏光标。

Applescript 不再直接支持“调用方法”来调用目标 C 方法,所以我认为最简单的方法是使用提供的 python 中的 AppKit。

它崩溃了:

$ python
Python 2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import AppKit
>>> AppKit.NSCursor.hide()
Assertion failed: (CGAtomicGet(&is_initialized)), function CGSConnectionByID, file Services/Connection/CGSConnection.c, line 123.
Abort trap: 6

我怀疑我需要进行一个先决条件调用来初始化一些东西,但我在浏览 docs/google 时还没有找到任何东西。

我错过了什么?

【问题讨论】:

    标签: python macos appkit pyobjc


    【解决方案1】:

    PyObjC 附带的 Quartz 让我很幸运:

    import Quartz
    Quartz.CGDisplayHideCursor(Quartz.CGMainDisplayID())
    

    【讨论】:

    • 我 ssh'ed 并尝试了它——它运行了,但没有改变光标。下一步是尝试将其作为更新信息亭的 cron 作业的一部分。
    • 另一方面,我现在可以在调用 Quartz 函数后调用 AppKit.NSCursor.hide(),因此它会初始化一些需要初始化的东西。但光标仍然可见!
    • 我尝试从交互式 shell 运行它,但它没有做任何事情。
    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2011-03-22
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多