Qtにobjective-cを組み込んでキーイベントを他のプロセスに送信するコードを書いているのですが、実行時にエラーがでます。
以下のように実装しました。
① KeyEventSendMac.hファイルを作成し、以下のように宣言
#ifndef QKEYEVENTSENDMAC_H #define QKEYEVENTSENDMAC_H void sendKeyEvent(unsigned char uKey); #endif // QKEYEVENTSEND_H
② KeyEventSendMac.mmファイルを作成し、以下のように実装
#include <Carbon/Carbon.h> #include <ApplicationServices/ApplicationServices.h> void sendKeyEvent(unsigned char uKey) { ProcessSerialNumber psn = { 0, kNoProcess }; GetFrontProcess( &psn ); CGEventRef key_down = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)uKey, true); CGEventSetFlags(key_down, kCGEventFlagMaskCommand); CGEventRef key_up = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)uKey, false); CGEventSetFlags(key_up, kCGEventFlagMaskCommand); CGEventPostToPSN(&psn , key_down); CGEventPostToPSN(&psn , key_up); CFRelease(key_down); CFRelease(key_up); #endif }
プロジェクトファイルには以下のように設定しました。
SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h \ keyeventsendmac.h FORMS += \ mainwindow.ui OBJECTIVE_SOURCES += \ keyeventsendmac.mm macx: LIBS += -framework AppKit
こちらでビルド後実行すると、以下のようなエラーが出てクラッシュしてしまいます。
Non-fatal error enumerating at <private>, continuing: Error Domain=NSCocoaErrorDomain Code=260 "ファイル"PlugIns"は存在しないため、開けませんでした。
こちら何が足りないのか分かりますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。