pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

在 Mac OS X 中模擬按鍵事件

Simulating key press events in Mac OS X(在 Mac OS X 中模擬按鍵事件)
本文介紹了在 Mac OS X 中模擬按鍵事件的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在編寫一個(gè)應(yīng)用程序,我需要在 Mac 上模擬按鍵事件,給定代表每個(gè)鍵的代碼.看來(lái)我需要使用 CGEventCreateKeyboardEvent 函數(shù)來(lái)創(chuàng)建事件.問(wèn)題是這個(gè)功能需要一個(gè)Mac鍵碼,而我有的是一個(gè)代表特定鍵的代碼.因此,例如,我收到:

I'm writing an app where I need to simulate key press events on a Mac, given a code that represents each key. It seems I need to use the CGEventCreateKeyboardEvent function to create the event. The problem is that this function needs a Mac keycode, and what I have is a code that represents the specific key. So, for example, I receive:

KEY_CODE_SHIFTKEY_CODE_A - 這些都是在某處定義的數(shù)字常量.

KEY_CODE_SHIFT or KEY_CODE_A - these are both numeric constants defined somewhere.

我需要將這些常量轉(zhuǎn)換為 CGKeyCode 值.

I need to take these constants and turn them into CGKeyCode values.

我目前的嘗試使用類似于this SO question的代碼.問(wèn)題是它只適用于可打印的字符.如果所有其他方法都失敗了,我不會(huì)對(duì)轉(zhuǎn)換進(jìn)行硬編碼,但這意味著我需要一個(gè)可能的 CGKeyCode 值表,但我還沒有找到.

My current attempt uses code similar to this SO question. The problem is that it only works for printable characters. If all else fails, I'm not above hard coding the conversion, but that would mean that I'd need a table of possible CGKeyCode values, which I have not yet been able to find.

有什么想法嗎?

推薦答案

這是模擬 Cmd-S 動(dòng)作的代碼:

Here's code to simulate a Cmd-S action:

CGKeyCode inputKeyCode = kVK_ANSI_S;
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef saveCommandDown = CGEventCreateKeyboardEvent(source, inputKeyCode, YES);
CGEventSetFlags(saveCommandDown, kCGEventFlagMaskCommand);
CGEventRef saveCommandUp = CGEventCreateKeyboardEvent(source, inputKeyCode, NO);

CGEventPost(kCGAnnotatedSessionEventTap, saveCommandDown);
CGEventPost(kCGAnnotatedSessionEventTap, saveCommandUp);

CFRelease(saveCommandUp);
CFRelease(saveCommandDown);
CFRelease(source);

CGKeyCode 只不過(guò)是一個(gè)無(wú)符號(hào)整數(shù):

A CGKeyCode is nothing more than an unsigned integer:

typedef uint16_t CGKeyCode;  //From CGRemoteOperation.h

您真正的問(wèn)題是將字符(可能是 NSString)轉(zhuǎn)換為鍵碼.幸運(yùn)的是,Shortcut Recorder 項(xiàng)目的代碼可以在 SRKeyCodeTransformer.m 文件.它非常適合將字符串轉(zhuǎn)換為鍵碼并再次返回.

Your real issue will be turning a character (probably an NSString) into a keycode. Fortunately, the Shortcut Recorder project has code that will do just that in the SRKeyCodeTransformer.m file. It's great for transforming a string to a keycode and back again.

這篇關(guān)于在 Mac OS X 中模擬按鍵事件的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How do I set the icon for my application in visual studio 2008?(如何在 Visual Studio 2008 中為我的應(yīng)用程序設(shè)置圖標(biāo)?)
Convert CString to const char*(將 CString 轉(zhuǎn)換為 const char*)
Remove secure warnings (_CRT_SECURE_NO_WARNINGS) from projects by default in Visual Studio(默認(rèn)情況下,在 Visual Studio 中從項(xiàng)目中刪除安全警告 (_CRT_SECURE_NO_WARNINGS))
How do I start a new CUDA project in Visual Studio 2008?(如何在 Visual Studio 2008 中啟動(dòng)新的 CUDA 項(xiàng)目?)
Exporting classes containing `std::` objects (vector, map etc.) from a DLL(從 DLL 導(dǎo)出包含 `std::` 對(duì)象(向量、映射等)的類)
What are some reasons a Release build would run differently than a Debug build(發(fā)布版本與調(diào)試版本的運(yùn)行方式不同的一些原因是什么)
主站蜘蛛池模板: 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 海鲜池-专注海鲜鱼缸、移动海鲜缸、饭店鱼缸设计定做-日晟水族厂家 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 浙江富广阀门有限公司 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | BHK汞灯-百科|上海熙浩实业有限公司| 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 亮点云建站-网站建设制作平台 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 |