Симуляция клавиатуры и мыши завершилась неудачно в MacOS.

Я новичок в запуске агента и демонов. Я создал агент перед входом в систему, и он запустит мое приложение, когда откроется окно входа в систему. Я могу имитировать события клавиатуры и мыши с помощью CGEventPost в сеансе пользователя. Пожалуйста, обратитесь код

// для клавиатуры

CGEventRef keyEvent = CGEventCreateKeyboardEvent( NULL, keyCode, down ) ;
CGEventPost( kCGHIDEventTap, keyEvent ) ;
CFRelease( keyEvent ) ;

// Для мыши

CGEventRef event = CGEventCreateMouseEvent(eventSource, eventType, mouseLocation, mouseButton );
CGEventPost(kCGHIDEventTap, event);
CFRelease(event);

// Предварительный вход запуска агента

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>my app label</string>
        <key>LimitLoadToSessionType</key>
        <string>LoginWindow</string>
        <key>RunAtLoad</key>
        <true/>
        <key>WorkingDirectory</key>
        <string>My app directory</string>
        <key>ProgramArguments</key>
        <array>
                <string>app absolute path</string>
                <string>service</string>
                <string>myservice</string>
        </array>
        <key>KeepAlive</key>
        <true/>
</dict>
</plist>

CGEventPost не работает в окне предварительного входа. Как это решить? Есть ли альтернативный способ?

0 ответов

Другие вопросы по тегам