Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Tastatureinstellungen automatisch ändern bei Spielstart?

Tastatureinstellungen automatisch ändern bei Spielstart?

jimcontact
jimcontact01.09.1112:24
Hallo Leutz,

ich versuche nun schon seit geraumer Zeit eine Möglichkeit zur Automatisierung für folgendes Szenario:

Ich öffnen vor jedem Spielstart die Tastatureinstellungen und setzte die F-Tasten auf "Standart-Funktionstasten", so dass ich sie im Spiel als Aktionstasten einsetzen kann.
(siehe Bild-für das genannte Menü)

Ich spiele... dann beende ich das Spiel und mache meinen Kram weiter... wenn ich dann die Lautstärke, Bildschirmhelligkeit, etc. ändern will, geschehen seltsame Dinge... denn ich vergesse fast immer, wieder die Tastatureinstellungen zu öffnen und das ganze umzustellen.

Ich habe schon gegoogelt und versucht mir was mit Automator zu basteln... alles ohne Erfolg, AppleSkript kann ich nicht.

Meine Idealvorstellung:

Ich starte das Spiel (auf welche Art auch immer Skript oder normal) die Tastatureinstellungen ändern sich automatisch auf "Standartbelegung" - ich spiele- ich beende das Spiel und die Tastatureinstellungen stellen sich wieder um auf die Belegung mit den aufgedruckten Sonderfunktionen.

Sowas... oder etwas was nah dran ist, würde mir das Leben sehr viel leichter machen

Hat da Jemand eine Idee... mir sind meine Ausgegangen

Danke euch schon mal im vorhinein
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0

Kommentare

_mäuschen
_mäuschen01.09.1113:33

Ändere theApp zu deinem Spiel Programm-Namen

set theApp to "TextEdit"

global isRunning, theApp

CheckUI()

on runMe()
    set isRunning to true
    keyboard()
    delay 2
    tell application theApp to launch
    delay 2 -- let the app launch
    tell application "System Events" to tell application process theApp to set frontmost to true
    repeat while isRunning
        delay 5
        tell application "System Events" to if not (exists application process theApp) then set isRunning to false
    end repeat
    delay 3
    keyboard()
end runMe

on keyboard()
    tell application "System Preferences"
        set currentPane to current pane
        set flag to true
        try
            currentPane -- throws an error if current pane is empty
        on error
            set flag to false
        end try
        set current pane to pane "com.apple.preference.keyboard"
        tell application "System Events"
            tell application process "System Preferences"
                click radio button 1 of tab group 1 of window 1
                click checkbox 1 of tab group 1 of window 1
            end tell
        end tell
        if flag then
            set current pane to currentPane
        else
            set show all to true
        end if
    end tell
end keyboard

on CheckUI()
    tell application "System Events"
        if UI elements enabled then
            my runMe()
        else
            tell application "System Preferences"
                set current pane to pane "com.apple.preference.universalaccess"
                display dialog "UI element scripting is not enabled.                    Check \"Enable access for assistive devices\"" buttons {"Continue…"}
            end tell
        end if
    end tell
end CheckUI



0
jimcontact
jimcontact01.09.1113:45
Cool! Danke _mäuschen
(insgeheim hatte ich auf eine Antwort von dir gehofft )

Drei Fragen noch zu dem Skript:

1. Soll ich das als Apple-Skript bauen und dann das Skript starten, oder die App?
2. muss ich die App mit dem Suffix ".app" eingeben?
3. Soll muss ich set theApp to "TextEdit" mit ins Skript schreiben?

„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1114:09

1. Den script als Programm speichern. (ergibt z.Bsp.: QuakeMitFNkeys.app)
2. Der suffix ist von Hause aus ausgeblendet.
3. Ersetze ganz einfach TextEdit mit dem Namen deines Programms. z.Bsp.: Quake

Kannst das AppleScript-Programm dann ja ins Dock ziehen oder im Launchpad aufrufen.

0
jimcontact
jimcontact01.09.1115:21
Wie geil ist das denn?!?!

Es funktioniert!

Genau so habe ich mir das vorgestellt! Herrlich!
VIELEN DANK!

Du hast mir echt eine große Freude damit gemacht!

Anmachen (auf Skript.app klicken)...zocken (die Tasten machen was sie sollen)...Spiel beenden (einige Sekunden später, sind die Tasten wieder wie gewohnt)...
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
jimcontact
jimcontact01.09.1115:23
Komisch...
Bei Warcraft 3 geht es aber leider nicht, da bekomme ich beim beenden des Spiels eine Fehlermeldung (siehe Bild).
Beim Start wird allerdings alles schön umgestellt- nur zurück eben nicht.

Woran mag das liegen?
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1115:42

Ändere

tell application "System Events" to tell application process theApp to set frontmost to true
zu

    tell application theApp to activate

0
jimcontact
jimcontact01.09.1115:53
Hab ich probiert...
Beim Start, stellt er die Tastatur wie gewollt ein. Beim beenden das gleiche Problem: Er stellt es nicht zurück...
Nur die Fehlermeldung hat sich verändert (siehe Bild).
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1116:08

Drücke "Bearbeiten" und sage welche Zeile highligthed ist.

0
jimcontact
jimcontact01.09.1116:16
Ich kann mir selber gar nicht helfen, denn ich blick bei Apple-Skript gar nicht durch
So sieht es aus wenn ich auf bearbeiten klicken:
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1116:28

Sage mir wie "The Frozen Throne" in der Aktivitätsanzeige als Prozessname erscheint.

0
jimcontact
jimcontact01.09.1116:39
Er erscheint als Warcraft III
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1116:49

Ergänze zuoberst

set theApp to "The Frozen Throne"
um
set theProc to " Warcraft III"

und ändere

tell application "System Events" to if not (exists application process theApp) then set isRunning to false
zu
tell application "System Events" to if not (exists process theProc) then set isRunning to false


0
jimcontact
jimcontact01.09.1116:57
Klappt nicht :'(
Fehlermeldung erscheint, Tasten bleiben "unumgestellt" (siehe Bild)

Warcraft III kann ich übrigens auch nicht mit dem Skript starten.... da passiert nix, obwohl im Dock unten die Prefs, das Skript und Warcraft III aufgehen, startet das Spiel nicht. Die Tasten werden aber umgestellt- nur eben nicht zurück...

„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
jimcontact
jimcontact01.09.1116:58
Wenn ich auf "Bearbeiten" klicke kommt das:
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
jimcontact
jimcontact01.09.1116:58
Wenn dir das jetzt wegen diesem einen Spiel zu krampfig wird, dann kann ich auch ohne...
Bei den anderen Games funktioniert es ja einwandfrei!

Damit hast du mir schon sehr geholfen
Echt herrlich, dass diese nervige Umstellerei nun (fast ganz) der Vergangenheit angehört!

Ich setze den Thread daher schon mal auf gelöst.
Und bedanke mich dafür, dass es bei den anderen Spielen schon so wunderbar klappt, das ist auf jeden Fall mal sehr genial!
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1119:22

Ersetze diesen obersten Teil des scripts

set theApp to "The Frozen Throne"
set theProc to "Warcraft III"

global isRunning, theApp, theProc

CheckUI()

on runMe()
    keyboard()
    delay 1
    tell application theApp to launch
    delay 1 -- let the app launch
    set isRunning to true
    tell application theProc to activate
    repeat while isRunning
        delay 1
        tell application "System Events" to if not (exists application process theProc) then set isRunning to false
    end repeat
    delay 1
    keyboard()
end runMe

So läuft es bei mir

0
jimcontact
jimcontact01.09.1119:34
Perfekt!
Klappt einwandfrei, mit Frozen Throne!

Aber warum geht das partout nicht mit Warcraft III...
Komisches Verhalten... startet, aber erscheint nicht- das Spiel...
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen01.09.1120:01

Sehr eigenartig

Mit

tell application theApp to activate

geht es

0
jimcontact
jimcontact01.09.1120:04
Stimmt!

Geiles Skript!
Das muss ich jetzt erst mal auf der iDisk, der Dropbox, Evernote und auf dem USB-Stick sichern! Damit ich es nie wieder verliere!

Absolut geil! Danke... das rockt!
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
jimcontact
jimcontact03.09.1113:13
Eine Kleinigkeit noch:
Kann man es auch so machen, dass das Systemeinstellungen-Fenster auch wieder zu gehen, wenn das Skript fertig durchgelaufen ist.

Wenn ich jetzt das Spiel beende, dann sind zwar alle Tasten richtig eingestellt aber das Systemeinstellungen-Fenster bleibt im Hintergrund geöffnet.

Das wäre noch ganz schick
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen03.09.1113:28

tell application "System Preferences" to quit
oder
tell application "System Events" to set visible of process "System Preferences" to false


vor end runMe einfügen

0
jimcontact
jimcontact03.09.1114:04
Klasse!
Mit
tell application "System Preferences" to quit
geht es prima!

Nur bei Starcraft 2 bekomme ich einen Fehler... das Skript schliesst dann auch nicht die SysPrefs.
Dann kommt:
error "„System Events“ hat einen Fehler erhalten: „application process \"StarCraft II\"“ kann nicht als „true“ gesetzt werden." number -10006 from application process "StarCraft II"

Liegt wohl daran, dass die Eigentlich StarCraft 2 App (wie bei den anderen Blizz-Games) anderes heißt.

Mit
set theApp to "StarCraft II"
set theProc to "SC2"

global isRunning, theApp, theProc

CheckUI()

on runMe()
    keyboard()
    delay 1
    tell application theApp to launch
    delay 1 -- let the app launch
    set isRunning to true
    tell application theProc to activate
    repeat while isRunning
        delay 1
        tell application "System Events" to if not (exists application process theProc) then set isRunning to false
    end repeat
    delay 1
    keyboard()
end runMe
tell application "System Preferences" to quit
on keyboard()
    tell application "System Preferences"
        set currentPane to current pane
        set flag to true
        try
            currentPane -- throws an error if current pane is empty
        on error
            set flag to false
        end try
        set current pane to pane "com.apple.preference.keyboard"
        tell application "System Events"
            tell application process "System Preferences"
                click radio button 1 of tab group 1 of window 1
                click checkbox 1 of tab group 1 of window 1
            end tell
        end tell
        if flag then
            set current pane to currentPane
        else
            set show all to true
        end if
    end tell
end keyboard

on CheckUI()
    tell application "System Events"
        if UI elements enabled then
            my runMe()
            
        else
            tell application "System Preferences"
                set current pane to pane "com.apple.preference.universalaccess"
                display dialog "UI element scripting is not enabled. Check \"Enable access for assistive devices\"" buttons {"Continue…"}
            end tell
        end if
    end tell
end CheckUI

Geht es dann...

Apple-Skript ist geil...

Hast du einen Tipp, wie man sich als Apple-Skript-Noob da mal reinlesen kann?
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
_mäuschen
_mäuschen03.09.1114:27

  keyboard()
end runMe
tell application "System Preferences" to quit
on keyboard()

muss zwingend sein

  keyboard()
  tell application "System Preferences" to quit
end runMe
on keyboard()

0
_mäuschen
_mäuschen03.09.1114:38

developer.apple.com AppleScript Language Guide.pdf

O Reilly - AppleScript in a Nutshell.pdf

0
jimcontact
jimcontact03.09.1114:39
Ok...hab's geändert... klappt auch
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0
jimcontact
jimcontact03.09.1114:58
Ah ok... danke!
Werd mich mal reinlesen und schauen wie weit ich komme

Danke noch mal für die Hife... ich liebe dieses Skript
„An alle die gerade mit-, zu- oder abhören: Wer wo, warum, mit wem und wann, dass geht euch einen Scheißdreck an! (W.Schmickler)“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.