Событие мыши 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.