Je suis en train d'écrire un petit programme Go qui utilise osascript (basé sur mac2mqtt ) :
func getCommandOutput(name string, arg ...string) string {
var outbuf, errbuf strings.Builder // or bytes.Buffer
cmd := exec.Command(name, arg...)
cmd.Stdout = &outbuf
cmd.Stderr = &errbuf
err := cmd.Run();
stdout := outbuf.String()
stderr := errbuf.String()
if err != nil {
log.Println(stderr)
log.Fatal(stderr)
}
return strings.TrimSuffix(stdout, "\n")
}
func main() {
runCommand("/usr/bin/osascript", "-e", "tell application \"zoom.us\"", "-e", "tell application \"System Events\"", "-e", "keystroke \"a\" using {shift down, command down}", "-e", "end tell", "-e", "end tell")
}
Après avoir compilé ce code dans un fichier appelé mac2mqttzoom
J'obtiens un exécutable. Je lance chmod +x mac2mqttzoom
exécutez-le à partir de Visual Studio Code, et obtenez ce dialogue :
J'ai appuyé sur OK et tout va bien. Ensuite, je crée un fichier LaunchAgent :
<?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.adriaan.mac2mqttzoom</string>
<key>Program</key>
<string>/Users/adriaan/mac2mqtt/mac2mqttzoom</string>
<key>WorkingDirectory</key>
<string>/Users/adriaan/mac2mqtt/</string>
<key>StandardOutPath</key>
<string>/Users/adriaan/mac2mqtt/standard.log</string>
<key>StandardErrorPath</key>
<string>/Users/adriaan/mac2mqtt/error.log</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Mais lorsque je lance ce programme, j'obtiens cette erreur :
System Events got an error: osascript is not allowed assistive access. (-25211)
Uniquement en cas d'exécution avec des démons de lancement et des agents.
J'ai donné la permission via Acccessibility à toutes les applications concernées :