Created
October 12, 2011 15:35
-
-
Save redsweater/1281540 to your computer and use it in GitHub Desktop.
If you use ScanSnap, you can have GUI Scripting automate the process of switching among your scan profiles ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Launches ScanSnap Manager, if necessary. Opens the ScanSnap Manager settings window, | |
-- changes to named profile, applies changes, and closes the window | |
-- Example: | |
SwitchToProfile("Standard") | |
on SaveActiveApplication() | |
return application | |
end SaveActiveApplication | |
on OpenOptionsWindow() | |
tell application "System Events" | |
tell application process "ScanSnap Manager" | |
activate | |
set isWindowOpen to false | |
repeat while isWindowOpen is false | |
try | |
window 1 | |
set isWindowOpen to true | |
on error | |
tell menu 1 of menu bar item "ScanSnap Manager" of menu bar 1 | |
click menu item "Settings..." | |
end tell | |
delay 0.5 | |
end try | |
end repeat | |
end tell | |
end tell | |
end OpenOptionsWindow | |
on ApplyChangesAndCloseOptionsWindow() | |
tell application "System Events" | |
tell application process "ScanSnap Manager" | |
-- Apply | |
click button "Apply" of window 1 | |
-- Close | |
click button 1 of group 2 of window 1 | |
end tell | |
end tell | |
end ApplyChangesAndCloseOptionsWindow | |
-- Our definition of "Is Running" is that it has the menu item available for opening the settings window … we wait for that | |
-- because if we just wait for it to be "launched" it may still be setting up ... | |
on EnsureScanSnapRunning() | |
tell application "System Events" | |
launch application "ScanSnap Manager" | |
set isLaunched to false | |
repeat while isLaunched is false | |
try | |
menu 1 of menu bar item "ScanSnap Manager" of menu bar 1 of application process "ScanSnap Manager" | |
set isLaunched to true | |
end try | |
end repeat | |
end tell | |
end EnsureScanSnapRunning | |
on SwitchToProfile(profileName) | |
EnsureScanSnapRunning() | |
OpenOptionsWindow() | |
tell application "System Events" | |
tell application process "ScanSnap Manager" | |
tell (pop up button 1 of group 2 of window 1) | |
click | |
tell menu 1 | |
try | |
click menu item profileName | |
on error | |
cancel | |
display dialog "Can't find the target menu item \"" & profileName & "\", please make sure you have a profile set up with this name, or modify the script to match the desired name" | |
end try | |
end tell | |
end tell | |
end tell | |
end tell | |
ApplyChangesAndCloseOptionsWindow() | |
end SwitchToProfile |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment