0

我正在使用代码在 MacOS 上使用碳模拟“粘贴”到最前面的应用程序。现在,我需要对不在最前面的特定应用程序执行此操作。到目前为止,我使用 PostToPsn 使用此代码:

   ProcessSerialNumber psn;
   //Using 8844 for testing purposes (safari)
   OSStatus err = GetProcessForPID(8844, &psn);

   CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
   CGEventRef cmdDown = CGEventCreateKeyboardEvent(source,kVK_ANSI_V, YES);
   CGEventSetFlags(cmdDown, kCGEventFlagMaskCommand);
   CGEventRef cmdUp = CGEventCreateKeyboardEvent(source, kVK_ANSI_V, NO);

   if(err == noErr){

       CGEventPostToPSN(&psn, cmdDown);
       CGEventPostToPSN(&psn, cmdUp);

       CFRelease(cmdUp);
       CFRelease(cmdDown);
       CFRelease(source);

   }

它只使用一个字母,但是当与命令组合时,它根本不起作用。

4

0 回答 0