【问题标题】:Moving the cursor in Mac OS X (in Python and/or R)在 Mac OS X 中移动光标(在 Python 和/或 R 中)
【发布时间】:2012-08-21 01:34:33
【问题描述】:

谁能帮我弄清楚如何使用 Python 或 R 脚本在 Mac OS X 中移动光标?该计划是读取实时信号并根据流式值向上或向下移动光标。谢谢你的帮助 ... 谢谢!

【问题讨论】:

  • stackoverflow.com/questions/281133/… 的可能重复项(你可以在那里回答)
  • 我想看看是否有人有R的解决方案
  • 您可以使用“可能重复”中的 C 代码并从 R 中运行它。虽然不是 Mac 人,所以不要问我在 Mac 上编译 C 并将 R 与 Mac 链接的技术细节操作系统系统库...
  • @RSK 我投票结束,因为这个问题是重复的。但是,我也认为 R 的答案会很有趣。我建议你稍微清理一下这个问题(在你有 Python 答案时删除 Python 引用)以避免这个问题被关闭。注意我也赞成这个问题,因为我很乐意看到 R 解决方案。

标签: python macos r


【解决方案1】:

嗯,R 允许你使用 C,所以它闻起来像作弊,但确实有效:

library(inline)
move.cursor <- cfunction(c(x="numeric",y="numeric"),
  "CGWarpMouseCursorPosition(CGPointMake(asReal(x),asReal(y)));
   return R_NilValue;",
  "#include <ApplicationServices/ApplicationServices.h>",,"C",
  libargs="-framework AppKit")

然后您只需调用move.cursor即可移动光标:

move.cursor(100, 100)

【讨论】:

  • Simon,我需要使用相同的方法创建空格键按下事件。你有什么解决办法吗?我尝试了一些代码,但无法让它工作......
  • 这个答案 stackoverflow.com/questions/2379867/… 显示了必要的 C 代码 - 您只是不需要 CGEventSetFlags 并且您需要找到空格键的代码。不过,我没有时间测试它......
  • Simon,我编写了该代码的 R 版本,它工作正常,但是,我找不到空格键和箭头键的 CGKeyCode。无论如何我可以列出它们并找出它们吗?
  • 完成!对于数字键:which.key ", language = "C", libargs = "-framework AppKit") KeyPress()
【解决方案2】:

此外,如果有人想要执行键盘事件,这就是它的完成方式。 以下是输入数字的代码:

which.key <- 1
eval(parse(text = paste("c.key <- 'CGEventRef e = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)", which.key+17, ", true); CGEventPost(kCGSessionEventTap, e); CFRelease(e); return R_NilValue;'", sep = "")))

KeyPress <- cfunction(
    body = c.key,
    includes = "#include <ApplicationServices/ApplicationServices.h>",
    language = "C",
    libargs = "-framework AppKit")

KeyPress()

【讨论】:

  • 您复制了西蒙的答案,但忘记包括图书馆电话?来吧……至少一路走下去。
猜你喜欢
  • 2011-07-17
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
  • 2011-06-28
  • 2011-04-03
  • 2016-12-22
  • 2012-01-02
相关资源
最近更新 更多