Mac IDに似たアプリケーションを作成しようとしていますが、少し異なるオプションがあります。Mac OSのC++でタイピング/キー入力をシミュレートする方法は?
私の知る限りでは、そこにあるすべての同様のアプリケーションがキーチェーンにパスワードを格納し、単にログイン画面のパスワードフィールドに入力するだけです。ここで
がApple docsとRobotに基づいて書かれた私の元のコードです:
#include <ApplicationServices/ApplicationServices.h>
void Press(int key);
void Release(int key);
void Click(int key);
int main() {
Press(56);
Click(6);
Release(56);
}
void Press(int key) {
// Create an HID hardware event source
CGEventSourceRef src = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
// Create a new keyboard key press event
CGEventRef evt = CGEventCreateKeyboardEvent(src, (CGKeyCode) key, true);
// Post keyboard event and release
CGEventPost (kCGHIDEventTap, evt);
CFRelease (evt); CFRelease (src);
usleep(60);
}
void Release(int key) {
// Create an HID hardware event source
CGEventSourceRef src = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
// Create a new keyboard key release event
CGEventRef evt = CGEventCreateKeyboardEvent(src, (CGKeyCode) key, false);
// Post keyboard event and release
CGEventPost (kCGHIDEventTap, evt);
CFRelease (evt); CFRelease (src);
usleep(60);
}
void Click(int key) {
Press(key);
Release(key);
}
それは「Z」の出力になって、それが「Z」を出力しています。ドキュメントの修飾キーによれば、キーは「押した」必要があります。
どうしたのですか?
その後、私はthis私のシフト問題を解決するように思われたので答えが見つかりました(私はこのソリューションの正しさについては100%ではありません)。しかし、私はこのような文字を出力することができないようです。 ÁÉÍÓÜÖ "。
どうすればいいですか?最初は可能ですか?
これはすでに複数の質問ですが、私はまだ同じ問題を解決しようとしていますが、これまでのところ完璧な解決策を見つけることができなかったので、他の人がこの回答を得てうれしいと思います。
ありがとうございました。何か助けていただければ幸いです。
私はこの回答に恩恵を与えましたが、現状ではそれほど有用ではありません。ここでユニコードとは何ですか? 'const char * unicode ="Á ";'を使ってみましたが、うまくいきませんでした。 –
unicode変数は、 "Á"の場合、印刷したい任意の文字の整数(上記の例ではuint16_t)です。 – MacGeek