Ich habe Dictation für Eingabeaufforderungen per Sprache aktiviert [erhielt es von der vom Betriebssystem gelieferten Chess-Anwendung in Lion]. Beschlossen, es jetzt im Jahr 2015 systemweit mit Yosemite zu versuchen. Mir gefällt es bisher, sieht auf jeden Fall besser aus und funktioniert besser als Lion (was der Fall sein sollte). Es gibt ein paar anpassbare Optionen, wenn Sie "Erweiterte Befehle aktivieren", wie Datei öffnen, Workflow ausführen, Anwendung öffnen, Text einfügen, einfügen Daten und Tastenkürzel.
Nennen Sie mich jedoch faul, aber es ist immer noch etwas, das mir wichtig ist, ich besuche Netflix & Hulu und andere Websites mindestens 4 Mal am Tag. Ich möchte einen funktionalen Befehl hinzufügen, der automatisch eine Webseite öffnet, die diesem Befehl entspricht. Da Open File anders ist als Run File, versuche ich, Safari + den Namen der Website in URL-Form mit Diktat autonom zu öffnen? Das Gute daran ist, dass es automatisch jede Anwendung, auf die Sie verweisen, zum vordersten Fenster macht. Die Codierung sollte also minimal sein, und ich möchte wirklich keinen Dienst dafür erstellen [meine Dienste wachsen, derzeit bei +55 insgesamt].
Ich bin jedoch ein Automator-Fan und kenne mich damit aus, also verwende ich das Dictation Command-Tool, aber was ich nicht bin, ist ein AppleScript-Gelehrter. Nachdem ich ungefähr 60 Minuten lang die Applescript-Bibliothek durchgelesen hatte, fand ich endlich heraus, wie man ein neues Fenster von Safari öffnet, die Anwendung aktiviert, falls sie nicht geöffnet war, und die URL startet:
tell application "Safari" to activate
tell application "Safari"
make new document with properties {URL:"http://netflix.com"}
end tell
Außerdem habe ich 3 Monitore. Ich habe immer Filme, Fernsehen usw. auf Nummer 2 abgespielt! Ich habe versucht, Safari mit Applescript auf den Monitor 2-Bildschirm zu setzen, aber als iOS-Entwickler ist es mir guten Gewissens zu peinlich, meinen Code zu teilen, es ist schlampig . Kann mich jemand in die richtige Richtung führen? Oder kennt jemand einen einfacheren Weg, das alles zu umgehen? Ich möchte wirklich, dass das funktioniert. fnIch bin beim Militär, also sind unsere Zimmer nicht so groß, also ist mein zweiter Monitor (27 Zoll) mein Fernseher, also habe ich eine iPhone-App nur für meine Bedürfnisse erstellt, die das zweimalige Drücken simuliert, das zum Aktivieren des Diktats erforderlich ist, damit ich zusehen kann Fernseher von meinem Bett aus [habe kein Apple TV].
BEARBEITEN:Mein Hauptziel ist es, die Sprachaktivierung zu verwenden, um eine Safari-spezifische Website mit Dictation für einen bestimmten Monitor zu füllen. Ich möchte meine „Spaces“- oder „Mission Control“-Einstellungen nicht opfern, da ich viel Arbeit darauf verwendet habe, diese für meinen Workflow zu nutzen. Ich habe 3 Monitore, die hintereinander aufgestellt sind (d. h. Monitor 1 & 3 sind direkt nebeneinander auf meiner Schreibtischstation, Monitor 1 ist links & 3 ist rechts, Monitor 2 ist nicht annähernd in der Nähe von 1 oder 3, dem er zugewandt ist Mein Bett, siehe Bild 1. Sie sind jedoch nacheinander eingerichtet, 1 geht zu 2, 2 geht zu 3. Ich habe Bereiche eingerichtet, in denen bestimmte Apps ausschließlich Monitor Nummer 3 verwenden (Xcode), was nicht so viel ausmacht So mühsam es klingt, deshalb möchte ich meine Raumeinstellungen nicht opfern, weil ich 2 als meinen dedizierten "Fernseher" verwende, das ist '
BILD 1:
Der Vorschlag von miken32 funktioniert, aber nur um ihn anzuzeigen, nicht um ihn zu minimieren. Das Minimieren ist wichtig, da ich die aktive Safari-Website minimieren muss, sagen wir Hulu, nur um Netflix zu öffnen, da sich Vollbild-Apps nicht überschneiden können. Ich werde also zwangsläufig eine weitere Sprachaktivierung vornehmen oder anderweitig minimieren, damit ich Webseiten ohne Blimps übertragen kann. Hinweis: Manchmal möchte ich nicht schließen, manchmal speichere ich meinen Platz, daher ist das Minimieren eine gute Ressource für mich. Folgendes passiert mit miken32: Es wird minimiert, aber ich denke, es versucht, zu den Ursprüngen zurückzukehren, die wir im Skript festgelegt haben, aber negativ wie in (-). HINWEIS: Ich weiß, dass die Ursprünge, die Sie im Applescript des Films sehen, nicht den absoluten Ursprung für meinen spezifischen Monitor widerspiegeln. Ich habe die Ursprünge zum Testen geändert. aber zum Aufnehmen des Films musste ich ihn auf diesen Bildschirm legen, also habe ich ihn so belassen, damit Sie sehen können, wohin er geht, wenn Sie ihn minimieren. Abgesehen davon funktioniert es großartig für die Menge an Code!. Ich bin froh, dass ihr die Vollbildoption aufgenommen habt, auch wenn ich nicht danach gefragt habe, das war absolut das, was ich im Sinn hatte, aber ich wollte niemanden stören, der versucht, das herauszufinden, mein Hauptziel war es, es einfach anzuziehen der 2te Monitor.
https://www.dropbox.com/s/jvmtnhh30hqmd36/answer1.mov?dl=0
markhuntes answer funktioniert einwandfrei, die Ladezeit beim ersten Lauf betrug etwa 15 Sekunden, kein Grund zur Sorge, aber definitiv nicht optimal für den täglichen Gebrauch, nachfolgende Läufe waren jedoch minimal (maximal 3-6 Sekunden). Was ich an seinem Vorschlag mag, ist, dass er automatisch den zweiten Monitor findet, anstatt dass ich ihn fest codieren muss, was aus Verbrauchersicht großartig ist, je weniger ich daran herumhantieren muss, desto besser, das ist eine großartige Funktion die Zukunft, sagen wir, ich ändere mein Setup oder ich bekomme einen Monitor mit einer anderen Größe usw. Ich muss einen absoluten Ursprung nicht neu codieren. Es gibt jetzt einen Nachteil, ich werde ein paar Tage damit herumspielen, nur um sicherzustellen, dass es nicht mit meinen anderen Systemeinstellungen kollidiert. Es minimiert, wo es sollte, was großartig ist, es wird genau ausgefüllt, aber ich '
Dieses Skript in einem Automator Dictation-Befehl scheint zu funktionieren.
Nicht der Vollbildmodus funktioniert nicht richtig, wenn er im Automator oder Skripteditor ausgeführt wird. Es übernimmt das vorherige Fenster 1.
Aber jedes Mal, wenn ich den Diktatbefehl zum Laufen gebracht habe. (finde es immer ein bisschen mühsam, sie dazu zu bringen, mich zu verstehen) Es hat zu 100% das richtige Fenster.
Dieses Skript verwendet den System-Profiler, um die Monitore abzurufen. und ein bisschen einfaches Herumspielen, um die Breite von Monitor 1 zu verwenden, um zu bestimmen, wo die Grenzen von Monitor 2 sind.
Ich habe es so gemacht, weil Sie sich möglicherweise dafür entscheiden, den Vollbildmodus nicht zu verwenden
Ich habe auch versucht, das Skript für Leute mit einem Monitor zugänglich zu machen
set theScreens to paragraphs of (do shell script "system_profiler SPDisplaysDataType -detailLevel |grep \"Resolution:\" | awk -F\"Resolution: \" '{print $2}'")
set theMonitor to ""
set the counter to count of theScreens --- set to 1 if you want to test it on monitor 1
if (counter) > 1 then
-- we will do things for monitor 2
set thisDisplayWidthHeightMonitor_2 to {(word 1 of item 1 of theScreens) + 2, 0, ((word 1 of item 1 of theScreens) + (word 1 of item 2 of theScreens)), word 3 of item 2 of theScreens}
set theMonitor to thisDisplayWidthHeightMonitor_2
else
-- we will do things for monitor 1
set thisDisplayWidthHeightMonitor_1 to {0, 0, (word 1 of item 1 of theScreens), (word 3 of item 1 of theScreens)}
set theMonitor to thisDisplayWidthHeightMonitor_1
end if
tell application "Safari"
activate
make new document with properties {URL:"http://netflix.com", index:1}
set bounds of window 1 to theMonitor
end tell
tell application "System Events"
tell application process "Safari"
set value of attribute "AXFullScreen" of window 1 to true
end tell
end tell
set value of attribute "AXFullScreen" of first window to true
:-)Ich werde meinen Kommentar nehmen und daraus eine Antwort machen; Vorausgesetzt ich verstehe zumindest was du suchst.
Getestet diesen Code und es funktioniert gut für mich. Sie müssen die Zahlen anpassen, um die relative Position Ihres Monitors anzugeben. Vorausgesetzt, Sie bewegen Ihre Bildschirme nicht, handelt es sich um einen einmaligen Eintrag.
Wir danken dieser Antwort auf SO , die auch einen Link zu einem Dienstprogramm bereitstellt, um die Details der Bildschirmposition abzurufen.
# this needs to be a position on the desired monitor
set monitorPosition to {-1920, -1380}
tell application "Safari"
activate
make new document with properties {URL:"http://netflix.com"}
end tell
tell application "System Events"
tell process "Safari"
set position of first window to monitorPosition
set value of attribute "AXFullScreen" of first window to true
end tell
end tell
Seelenglanz
Mike32
Seelenglanz