User Tools

Site Tools


AppleScript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
AppleScript [2017/06/04 22:08]
JMichaelTX [Create & Set Variable] Replace script with Ver 6+ compatible
AppleScript [2019/03/28 14:41] (current)
JMichaelTX ADD tell block to first example.
Line 1: Line 1:
 ====== Using AppleScript to Get and Set Keyboard Maestro Variables ====== ====== Using AppleScript to Get and Set Keyboard Maestro Variables ======
-\\ 
-===== Get and Set Variables ===== 
  
 Keyboard Maestro Version 7.1 introduced a streamlined way to Get and Set Keyboard Maestro Variables from AppleScript. Keyboard Maestro Version 7.1 introduced a streamlined way to Get and Set Keyboard Maestro Variables from AppleScript.
Line 7: Line 5:
 In AppleScript,​ you can tell the application "​Keyboard Maestro Engine"​ to: In AppleScript,​ you can tell the application "​Keyboard Maestro Engine"​ to:
  
 +```applescript
 +tell application "​Keyboard Maestro Engine"​
     getvariable <KM Variable Name>     getvariable <KM Variable Name>
     setvariable <KM Variable Name> to <New Value>     setvariable <KM Variable Name> to <New Value>
 +end tell
 +```
  
 where both the `<KM Variable Name>` and `<New Value>` are text values. where both the `<KM Variable Name>` and `<New Value>` are text values.
  
-==== Examples ​====+**For more details, see:** 
 +  - [[manual:​Scripting|Scripting article in the Manual Section]]. 
 +  - [[action:​Execute_an_AppleScript|Execute AppleScript Action]]. 
 + 
 +===== Global Variables ​===== 
 + 
 +Global Variables (available in //all// macros) may be got and set like this:
  
 ```applescript ```applescript
Line 44: Line 52:
 ``` ```
  
 +**Real-World Example**
  
 Normally, you would not have both a GET and a SET variable within the same AppleScript tell block.\\ Normally, you would not have both a GET and a SET variable within the same AppleScript tell block.\\
Line 50: Line 58:
  
 ```applescript ```applescript
 +### Requires Keyboard Maestro 7.1+ ###
 +
 --- GET REQUIRED KM VARIABLES --- --- GET REQUIRED KM VARIABLES ---
  
Line 67: Line 77:
 ``` ```
  
 +===== Local & Instance Variables =====
  
-**For more details, see [[manual:​Scripting|Scripting article in the Manual Section]].** 
  
-----+To get or set [[manual:​Variables#​Instance_Variables_v8|Local or Instance Variables]],​ you must pass the macro execution instance to the `getvariable` or `setvariable` command. ​ The instance is passed in to your script via the KMINSTANCE environment variable (v8.0.3+). 
 + 
 +  * //Local Variables// are denoted by a Variable with the prefix of "​Local"​. 
 +  * //Instance Variables// are denoted by a Variable with the prefix of "​Instance"​. 
 + 
 +```applescript 
 +### Requires Keyboard Maestro 8.0.3+ ### 
 + 
 +set kmInst to system attribute "​KMINSTANCE"​ 
 +tell application "​Keyboard Maestro Engine"​ 
 + set kmLocalVar1 to getvariable "​Local__SomeLocalVariable"​ instance kmInst 
 + setvariable "​Local__FromAS"​ instance kmInst to "​Variable set in AppleScript."​ 
 +end tell 
 + 
 +log kmLocalVar1 
 +``` 
 + 
 + 
 +===== Dictionary Values ===== 
 + 
 +You can read and write [[manual:​Dictionaries|Dictionary]] values from AppleScript. 
 + 
 +```applescript 
 +### Requires Keyboard Maestro 8.0+ ### 
 + 
 +tell application "​Keyboard Maestro Engine"​ 
 + set kmDictList to name of dictionaries 
 + set dictKeyList to dictionary keys of dictionary "First Names"​ 
 + 
 + set value of dictionary key "​P"​ of dictionary "First Names" to "​Fred"​ 
 +end tell 
 +```
  
 ===== Prior to Ver 7.1 ===== ===== Prior to Ver 7.1 =====
Line 86: Line 127:
   ​   ​
   --- Compatible with Keyboard Maestro 6+ ---   --- Compatible with Keyboard Maestro 6+ ---
-  --     • Creates the KM Variable ​it does not exist (just like KM 7 setvariable)+  --     • Creates the KM Variable ​if does not exist (just like KM 7 setvariable)
   --     • Returns true if new Variable was created   --     • Returns true if new Variable was created
   ​   ​
Line 116: Line 157:
  
  
-==== Get Existing ​Variable ====+==== Get Variable ==== 
 +(returns empty string ""​ if Variable does //not// exist)
  
 ```applescript ```applescript
Line 125: Line 167:
  
   --- Compatible with Keyboard Maestro 6+ ---   --- Compatible with Keyboard Maestro 6+ ---
-  --     • Returns ""​ if variable is not found (just like KM 7)+  --     • Returns ""​ if variable is not found (just like KM 7 getvariable)
   ​   ​
   tell application "​Keyboard Maestro Engine"​   tell application "​Keyboard Maestro Engine"​
AppleScript.1496628489.txt.gz · Last modified: 2017/06/04 22:08 by JMichaelTX