- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 CGEventCreateKeyboardEvent
和 CGEventPost
为系统范围的键盘快捷键(如 control-F4)发送击键,但没有成功。使用 CGPostKeyboardEvent
发送此类击键效果很好,但该方法已被弃用,我正在寻找替代方法。
CGPostKeyboardEvent((CGCharCode)0, (CGKeyCode)118/*F4*/, true); // worked
CGEventPost(kCGHIDEventTap, CGEventCreateKeyboardEvent(NULL, (CGKeyCode)118/*F4*/, true)); // doesn't work
有人会告诉我哪里出了问题或我应该阅读什么吗?恐怕 CGPostKeyboardEvent
发布系统范围快捷方式的能力是弃用的原因。任何输入将不胜感激!
最佳答案
我通过 stackoverflow Japan 得到了答案 http://goo.gl/nACVPz并确认以下代码有效!
#import <Foundation/Foundation.h>
#import <Carbon/Carbon.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef f4 = CGEventCreateKeyboardEvent(source, kVK_F4, true);
CGEventSetFlags(f4, kCGEventFlagMaskControl);
CGEventTapLocation location = kCGHIDEventTap;
CGEventPost(location, f4);
CFRelease(f4);
CFRelease(source);
}
return 0;
}
关于objective-c - 如何使 CGEventCreateKeyboardEvent 和 CGEventPost 组合等效于 CGPostKeyboardEvent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259118/
我有一段非常简单的代码,用于模拟键盘事件。下面的简单示例应该输入“Cz” - shift 键下降,c 键下降,c 上升,shift 上升。然后 z 键上下移动。 似乎有时订单会变得困惑。当我创建一个计
当用户单击某个键盘键(CapsLock)时,我以编程方式生成鼠标单击。因此,我在 CapsLock 打开时按下鼠标左键,然后在关闭 CapsLock 时按下鼠标左键。 这种行为是正确的,例如,如果我将
我正在寻找一种方法来设计一个带有修饰键(例如,Shift、命令)的小面板,并且必须能够像虚拟键盘一样单击它。 我希望它有这种行为: 点击虚拟键(Shift)。 按住 Shift 按钮并持续按下。 用我
好的,所以我正在使用 LEAP Motion,如果您之前没有听说过它,它是一种发射激光的设备,通过电缆发送图像,并处理该图像以给出手指数量的结果、手等。它每毫秒左右通过帧拍摄这些数据(我认为)。 所以
我正在尝试以编程方式发送修改后的击键,例如大写“A”。问题是shift修饰符似乎没有任何效果。 在我的代码中,我有两个事件,一个用于按下 Shift 键,另一个用于按下“m”键。 CGEventRef
我创建了一个使用 CGEventPost 来模拟键盘的登录前代理。仅供引用,我正在开发一个类似于 teamviewer 的远程控制应用程序。 键盘 CGEventRef keyEvent = CGEv
对于我正在开发的应用程序,我正在使用 CGEventPost 发布一些关键事件,我注意到它在启用沙盒的情况下停止工作,即使我打开了“启用辅助设备访问”系统偏好。 是否有权允许使用 CGEventPos
从事件水龙头发布事件时,我遇到了一个棘手的问题。我在 kCGHIDEventTap 上点击 NSSystemDefined,然后用一个新事件替换该事件。我遇到的问题是,根据我发布事件的方式,它只能被某
我在 OSX 上使用 C++ 中的 ApplicationServices 和 CGEventPost,我想看看我是否可以按住某个键,但它不起作用。 这是我正在使用的方法: void postKeyb
我正在尝试使用 CGEventCreateKeyboardEvent 和 CGEventPost 为系统范围的键盘快捷键(如 control-F4)发送击键,但没有成功。使用 CGPostKeyboa
我是一名优秀的程序员,十分优秀!