Событие мыши робота JAVA не работает на экране входа в систему 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); (Используется внутри кода)

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

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

person user2493546    schedule 06.03.2014    source источник


Ответы (1)


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

person Nokob    schedule 28.05.2014
comment
Удаленное взаимодействие Chromium, похоже, делает CGEventPost для событий клавиатуры перед входом в систему, и это работает, можете ли вы проверить и сказать? cs.chromium.org/chromium/src/ удаленное взаимодействие/хост/ - person Sai Prasanna; 02.01.2017