Событие мыши JAVA Robot не работает на экране входа в oSX Mavericks, но работает на более низкой версии

Я запускаю java-приложение в окне входа в систему, используя LaunchAgents, который дистанционно захватывает события мыши и клавиатуры и выполняет их. События клавиатуры работают правильно, но не события мыши.

<?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>com.ash.login</string>
    <key>LimitLoadToSessionType</key>
    <string>LoginWindow</string>
    <key>RunAtLoad</key>
    <true/>
    <key>Program</key>
    <string>/usr/bin/java</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/java</string>
        <string>-jar</string>
        <string>-Dapple.awt.uielement=true</string> (Works sometimes without this option)
        <string>/Library/Ash_Agent/data/remote.jar</string>
    </array>    
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

captureImage.robot.mousePress (InputEvent.BUTTON1_MASK); (Используется внутри кода)

Я не могу получить контроль над мышью в окне входа в систему. Прекрасно работает в Aqua или при входе в систему.*Ошибки консоли:*

Untrusted apps are not allowed to connect to or launch Window Server before login.
Window Server is not available

1 ответ

Я полагаю, что это потому, что Robot внутренне использует CGEventPost, а не устаревший CGPostMouseEvent, но CGEventPost не работает prelogin.

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