sách gpt4 ai đã đi

Không thể CGEventTapCreate - Stack Overflow

In lại 作者:行者123 更新时间:2023-11-28 08:29:15 29 4
mua khóa gpt4 Nike

我在命令行工具项目中复制并粘贴了 main.swift 下面链接中的代码。 How do you use CGEventTapCreate in Swift?
它构建没有错误,但是当我运行时, guard let eventTap = CGEventTapCreate... 失败。我认为 eventTap 从 CGEventTapCreate 中获取 nill。
我假设是因为系统首选项 > 安全和隐私 > 可访问性中不允许该应用程序。不过,我没有收到允许该应用程序进入辅助功能类别的通知。我是否需要在项目设置中设置一些东西来触发它?它虽然从命令行运行。由于某种原因,我无法从 xCode 运行。这是对上述链接稍作修改的代码。

import Foundation

func myCGEventCallback(proxy : CGEventTapProxy, type : CGEventType, event : CGEvent, refcon : UnsafeMutablePointer) -> Unmanaged? {
if [.KeyDown , .KeyUp].contains(type) {
var keyCode = CGEventGetIntegerValueField(event, .KeyboardEventKeycode)
print(keyCode)
if keyCode == 0 {
keyCode = 6
} else if keyCode == 6 {
keyCode = 0
}
CGEventSetIntegerValueField(event, .KeyboardEventKeycode, keyCode)
}
return Unmanaged.passRetained(event)
}

let eventMask = (1 << CGEventType.KeyDown.rawValue) | (1 << CGEventType.KeyUp.rawValue)
guard let eventTap = CGEventTapCreate(.CGSessionEventTap, .HeadInsertEventTap, .Default, CGEventMask(eventMask), myCGEventCallback, nil)
else {
print("failed to create event tap")
exit(1)
}

let runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, eventTap, 0)
CFRunLoopAddSource(CFRunLoopGetCurrent(), runLoopSource, kCFRunLoopCommonModes)
CGEventTapEnable(eventTap, true)
CFRunLoopRun()

1 Câu trả lời

如果您使用的是 Swift3,那么 CGEventTap 常量应该以小写字母开头。例如:

.CGSessionEventTap应该是 .cgSessionEventTap

.keyDown也是如此, .keyUp , .headInsertEventTapvân vân……

为了从 Xcode 运行,您需要将 Xcode.app 添加到:System Preferences > Security & Privacy 面板(不是您正在构建的应用程序)。

要在没有 Xcode 的情况下运行,您需要通过调用 isProcessTrusted 使您的应用程序成为受信任的辅助功能客户端来自你的 applicationDidFinishLaunchingphương pháp.

关于swift - 不能 CGEventTapCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211049/

29 4 0
Bài viết được đề xuất: javascript - HTML5 Canvas 触摸操纵杆性能问题
Bài viết được đề xuất: c++ - 有人知道哪个网络包包含 winlive.h 吗?
Bài viết được đề xuất: c++ - 我可以将 UDP 包广播到网络的一部分吗?
Bài viết được đề xuất: ios - UIImagePickerController黑屏问题
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com