我想为OS X创建一个虚拟监视器驱动程序.我的意思是虚拟是一个监视器驱动程序,它不驱动连接的监视器,但愚弄OS X认为附加了这样的监视器.
目的?它可以通过其他协议将显示数据传输到其他设备,比如VNC.
我相信以前已经以这种或那种形式(也许那些将你的iPad变成辅助显示器的应用程序)完成了这项工作.
任何编码/内核hackery指针将不胜感激!
Cocoa有大量的整数掩码和代码.例如,NSCommandKeyMask或NSF1FunctionKey,它们在标题中明确定义和记录.
但是,有些可能是古老的,当访问辅助功能属性时,例如获取字形(AXMenuItemCmdGlyph),您将获得一个整数,如111,表示F1(0xf704),或112表示F2(十六进制:0xf705).
有没有简单的方法来处理面具和代码?也许一个能够将111转换为相应的十六进制unicode 0xf704?我的意思是NSEvent.h将NSF1FunctionKey映射到0xf704,但是有一个映射为111到NSF1FunctionKey还是0xf704?
对于后台应用程序(LSUIElement = 1),如果用户在已经运行的情况下双击应用程序图标,那么弹出"首选项"或"配置"窗口的最优雅方式是什么?
这假设用户无法从其他任何位置访问应用程序的首选项(例如菜单栏状态项菜单).
我认为理想的方法会阻止prefs窗口在初始启动时显示,但是足够聪明,可以在随后双击应用程序的图标时显示它.
谢谢
曾经是在Carbon中你可以使用SetMenuItemKeyGlyph.10.6下的替代方案是什么?我是否需要使用无证件或......?
谢谢
设置事件点击后,我无法确定在给定CGEvent的情况下按下了哪个修改键.
CGEventFlags flagsP;
flagsP=CGEventGetFlags(event);
NSLog(@"flags: 0x%llX",flagsP);
NSLog(@"stored: 0x%llX",kCGEventFlagMaskCommand);
if (flagsP==kCGEventFlagMaskCommand) {
NSLog(@"command pressed");
}
Run Code Online (Sandbox Code Playgroud)
给定上面的代码片段,第一个NSLog返回与第二个NSLog不同的值.毫不奇怪,当按下命令修饰键时,从不触发条件.
我需要确定是否按下给定CGEvent的命令,备用,选项,控制或移位.首先,我需要帮助才能理解上述原因无效.
谢谢!