Is there any way to send a copy (command-c) instruction without using a cgEvent to mimic the keystrokes? I don't have access to the text field in the application I want to take text from, so need to replicate manually copying to the clipboard, and there seemss to be a bug with cgevent posting.
According the Quartz documentation, to type a capital Z I should use:
CGEventRef event1, event2, event3, event4;
event1 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, true);
event2 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, true);
event3 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)6, false);
even开发者_Python百科t4 = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)56, false);
However, if I attach this set of instuctions to an NSTimer, it only works the first time it is fired. example output:
ZzzZzzzzZZzzZ (vs expected ZZZZZZZZZ).
How else might I send a copy command to the active window?
Rather than posting raw key events, you might be better off using the Accessibility APIs to trigger the Copy item in the other app's Edit menu. This will probably be more reliable.
I'm not sure I understand the relationship between your code and the application's code. Are you injecting or something? Is there a reason you can't do: [[window firstResponder] copy:nil]
?
Describe a little more what you're doing, please.
精彩评论