macos-carbon相关内容

Mac OS X 游戏如何接收低级键盘输入事件?

游戏需要对键盘输入进行低级访问.在 Windows 上,有 DirectInput.但是 Mac OS X 游戏开发者使用什么技术呢? 显然,有足够多的 Mac 游戏可以恰到好处地输入键盘,而没有常见解决方案的缺点: 解决方案 #1:使用 keyUp/keyDown 事件 -(void)keyUp:(NSEvent*)event;-(void)keyDown:(NSEvent*)事件 ..
发布时间:2022-01-13 22:34:55 其他开发

将虚拟键码转换为 unicode 字符串

我有一些代码用于获取当前键盘布局并将虚拟键代码转换为字符串.这在大多数情况下都很好用,但我在某些特定情况下遇到了麻烦.使这一点曝光的是德国 QWERTZ 键盘上退格键旁边的重音键.http://en.wikipedia.org/wiki/File:KB_Germany.svg 该键生成我期望的 VK 代码 kVK_ANSI_Equal 但是当使用 QWERTZ 键盘布局时,我没有得到任何描述 ..
发布时间:2022-01-11 10:48:40 其他开发

在 Mac OS X 上以编程方式查找 DNS 服务器设置

我有一些跨平台 DNS 客户端代码,用于执行端到端 SMTP,在 Windows 上,我可以通过查看注册表找到当前的 DNS 服务器 IP 地址.在 Mac 上,我可能可以使用第一个答案中提到的 SystemConfiguration 框架,但是这样做的确切方法并不是很明显. 例如 SCDynamicStoreCopyDHCPInfo 返回一些动态 DHCP 相关数据,但不返回 DNS 服务 ..
发布时间:2022-01-04 13:53:01 其他开发

来自 AXUIElement 的 CGWindowID

我正在尝试使用可访问性 API 自动化外部 OSX 应用程序.一些应用程序的状态无法通过 API 获得,所以我通过屏幕抓取.为此,我需要为可访问性对象获取 CGWindowID“窗口角色". 是否有任何直接获取“窗口角色"辅助功能对象的 CGWindowID 的方法?我可以通过匹配窗口的各种属性来启发式地获取它,例如大小,标题和位置,但这真的很hacky,如果我的我感觉更好应用程序也将支持极 ..
发布时间:2021-12-29 13:20:29 其他开发

如何检测 OS X 应用程序是否已启动

通常,OS X 上的应用程序包只能启动一次,但是只需复制该包,同一个应用程序就可以启动两次.检测和阻止这种可能性的最佳策略是什么? 在 Windows 上,这种效果可以简单地通过应用程序在启动时创建命名资源来实现,如果无法创建命名资源,则退出,表明另一个进程正在运行,并且已经创建了相同的资源.当应用程序退出时,这些资源在 Windows 上以可靠的方式释放. 我在研究这个问题时看到的问 ..
发布时间:2021-12-24 15:47:53 其他开发

获取另一个应用程序窗口的唯一 ID

我是 Cocoa 开发新手,正在开发我的第一个应用程序.我想从任何应用程序的任何窗口读取唯一标识符 - 无论是 Cocoa 还是 Carbon.Cocoa 应用程序使它们的窗口 ID 可用于 AppleScript(虽然我确信有更好的方法通过适当的 Objective C 路由来做到这一点),但我正在尝试从 Adob​​e 应用程序中的文档访问窗口 ID.这似乎要棘手得多.我在参考库中似乎只能找到 ..
发布时间:2021-12-17 23:28:31 其他开发

如何以编程方式确定正在运行的 Mac OS X 版本?

我有一个程序需要在 Tiger 和 Leopard 上的行为略有不同.有没有人知道一个系统调用,它可以让我准确地确定我正在运行的 Mac OS X 版本.我找到了许多宏定义来确定构建机器的操作系统,但没有什么能真正确定运行机器的操作系统. 谢谢,乔 解决方案 在这里查看这篇文章 但简而言之,如果您使用的是 carbon,请使用 Gestalt() 调用,如果您使用的是可可,则有 ..
发布时间:2021-12-17 23:07:31 其他开发

以编程方式检查进程是否在 Mac 上运行

Mac 上是否有任何可用的 Carbon/Cocoa/C API 可用于枚举进程?我正在 Windows 上寻找类似 EnumProcesses 的东西. 我的目标是通过代码检查进程是否正在运行(按名称). 谢谢! 解决方案 TechZen 说:流程管理器已于 2013 年 12 月完全弃用. 啊,我刚刚找到了 Process经理参考 看起来 GetNextProc ..
发布时间:2021-12-15 00:10:47 服务器开发

在 Mac OS X 中模拟按键事件

我正在编写一个应用程序,我需要在 Mac 上模拟按键事件,给定代表每个键的代码.看来我需要使用 CGEventCreateKeyboardEvent 函数来创建事件.问题是这个功能需要一个Mac键码,而我有的是一个代表特定键的代码.因此,例如,我收到: KEY_CODE_SHIFT 或 KEY_CODE_A - 这些都是在某处定义的数字常量. 我需要将这些常量转换为 CGKeyCode ..
发布时间:2021-12-06 21:15:15 C/C++开发

如何在 OS X 或 iOS 中确定运行时的操作系统版本(不使用格式塔)?

位于 CarbonCore/OSUtils.h 中的 Gestalt() 函数在 OS X 10.8 Mountain Lion 中已被弃用. 我经常使用这个函数在运行时测试 OS X 操作系统的版本(参见下面的玩具示例). 还有哪些其他 API 可用于在 Cocoa 应用程序中在运行时检查 OS X 操作系统版本? int main() {SInt32 versMaj、versMi ..
发布时间:2021-12-06 20:38:20 移动开发

通过 OSX Accessibility API 获取窗口编号

我正在开发一个可以在屏幕上移动第三方应用程序窗口的应用程序. 要获得所有当前打开的窗口的概览,我使用 CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID); 这将返回定义每个打开窗口的字典数组.这是返回的示例字典: ..

在 64 位应用程序中使用碳和碳问题在位置查找窗口

正如我今天在一些问题中所说的,我正在寻找在某个位置获取 window 或 windowPart 引用的方法.虽然我知道我可以为此目的使用 Cocoa(我还不知道该怎么做)我更喜欢(并且可能需要)使用 Carbon 来做到这一点,因为需要此功能的整个应用程序都是用 C++ 编写的,但我已经尝试发现很多问题. 有人使用以下函数之一获得有效的 windowPtr 或 windowRef 吗?Fin ..
发布时间:2021-11-25 07:45:51 C#

在 64 位转换中解决从不同大小的整数转换为指针的错误

我正在努力将 PTHotKeyLib 修改为 64 位友好,但我已经运行进入我不知道如何解决的代码问题.在 PTHotKeyCenter 中,registerHotKey 方法创建一个 EventHotKeyID 实例,然后将 PTHotKey 对象的 填充到 id 属性中.原来的代码用了很久.我根据 Apple 的 64 位编程指南将其转换为 NSInteger. - (BOOL)regis ..
发布时间:2021-11-25 07:31:02 C#

将 Carbon 代码移植到 Cocoa 的策略

我正在寻找有关使 Carbon 代码支持 64 位的策略和文章. 用于 64 位的 Carbon 不存在,也不会存在.这几乎是一个死胡同. 所以为了将 Carbon 应用程序和工具包带到 64 位,他们的 GUI 部分必须用 Cocoa 和 Objective-C 重写,对吗? 我怎样才能最大限度地减少我必须投入到过渡中的努力?如何最大限度地减少所需的 Objective-C 代 ..
发布时间:2021-11-25 06:37:34 移动开发

Qt Mac App Store 应用程序被拒绝

我提交的新 Qt 应用程序被 Mac App Store 拒绝.原因是: 二进制文件被拒绝 2012 年 5 月 23 日下午 07:42拒绝理由:2.5 使用非公开 API 的应用将被拒绝2.30 不符合 Mac OS X 文件系统文档的应用程序会被拒绝2012 年 5 月 23 日下午 07:42.来自苹果.2.5如果这些 API 使用非公共 API 会导致糟糕的用户体验将来更改,因此是不允 ..
发布时间:2021-11-16 23:57:44 其他开发

如何在查找器窗口(mac os 10.5)中刷新浏览器视图?

我想在 mac os 10.5 上刷新 finder 的 NSBrowserView 中的所有 NSTableView.为了刷新图标视图、列表视图和流列表视图,我使用了苹果脚本. @"告诉应用程序\"Finder\"更新前窗口中的每个项目" 在浏览器视图中,此脚本仅刷新最后一列. 例如,此脚本仅刷新第三列(icns-copy.m.....). 任何人都可以帮我吗? 解决方案 ..
发布时间:2021-11-16 22:03:51 移动开发

转换成 Apple Events AppleScript

我有一个非常简单的applescript: 告诉应用程序“Opera"获取窗口 1 的活动标签的 URL结束告诉 我想看看底层的 Apple Events.所以我在启用了这两个环境变量的情况下启动了它: export AEDebugSends=1;导出 AEDebugReceives=1 现在我得到这个输出: osascript browser.scpt{core,getd target ..
发布时间:2021-11-16 21:59:05 其他开发

在 TextEdit 中以编程方式选择文本范围

是否可以在 TextEdit(通过 AppleScript、Cocoa 或 Carbon)中选择(突出显示)一系列文本?我试过这段代码但没有用: 将属性“AXSelectedTextRange"的值设置为 {selStart, selLen} 这个属性似乎是只读的.谢谢. 解决方案 不确定如何使用 AppleScript(虽然应该可以),使用可访问性 API,您可以执行以下操作: A ..
发布时间:2021-11-16 21:52:19 其他开发

点击 AppleEvents 被发送到另一个应用程序

是否可以像点击 Quartz 事件一样监控或点击发送到进程的 Apple 事件流? 我有一个应用程序可以与另一个应用程序通信以强制它导入文件,但它以一种无法通过菜单或 UI 脚本实现的方式执行此操作,我正在尝试追踪它是如何执行此操作的. 解决方案 您需要以编程方式执行此操作还是手动/交互式可以?如果手动没问题,这里有一些方法: 尝试使用 AppleScript 编辑器录制目标应 ..
发布时间:2021-11-16 21:48:54 其他开发

Mac Carbon 应用程序中的可编写脚本 (AppleScript)

我正在尝试向我的非基于 Cocoa 的应用程序添加 AppleScripting 支持. 我正在使用 AEGetParamDesc 等低级函数,自己处理 form/want/seld 参数. 我的词汇提供了一个类,我们称之为“图像".它有一个属性“名称". 我得到了一些 Applescript 代码,例如: 获取图片获取每个图像的名称得到计数图像获取每个图像获取第一张图片获取图 ..
发布时间:2021-11-16 21:43:57 其他开发