macOS objective C 生成带重复的键盘事件击键

问题描述 投票:0回答:0

如何使用 objective-c 在 macOS 应用程序中生成带重复的击键?

我已经设法生成击键:

CGEventRef keyup, keydown;
uint64_t keyModifier=0;

VK = kVK_RightArrow;
keyModifier = 0;

keydown = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)VK, true);
CGEventSetFlags( keydown, keyModifier);
           
keyup = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)VK, false);
CGEventSetFlags( keyup, keyModifier);

// press the key
// forward them to the frontmost app
CGEventPostToPid (pid, keydown);
        
// and finally behave friendly
CFRelease(keydown);

....

// somewhere else with time delay
// release the key
// forward them to the frontmost app
CGEventPostToPid (pid, keyup);
        
// and finally behave friendly
CFRelease(keyup);

使用此代码相当于按下键盘右键然后松开,但没有重复,尽管两次事件之间有足够的时间。

objective-c macos repeat keyboard-events generate
© www.soinside.com 2019 - 2024. All rights reserved.