I've created a macro that searches a specific Folder for a variable. The problem is, the variable sometimes gets pasted into the "Find" field twice and I do not understand what is causing it (it is sporadic). Any help much appreciated.
If you want this to be pretty bombproof then you’ll want to use AppleScript.
This will retrieve your PIN value from the associated PIN variable in Keyboard Maestro, open the correct window (or bring it to the front if already open), and insert the PIN value in the search field.
-Chris
----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2017/12/21 12:30
# dMod: 2017/12/21 12:44
# Appl: Finder, System Events
# Task: Open a given Finder Window and input a Search Value in the Search Field.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Finder, @System_Events, @Open, @Window, @Input, @Search, @Field, @Value
----------------------------------------------------------------
set targetFolderPath to "/Volumes/SanDisk Blade/Jewelry/" -- Replace with correct path.
tell application "Keyboard Maestro Engine"
set searchString to getvariable "PIN"
end tell
tell application "System Events"
open disk item targetFolderPath
tell application process "Finder"
tell window "Jewelry"
tell toolbar 1
set hitList to first UI element of groups whose subrole is "AXSearchField"
repeat with i in hitList
if contents of i ≠ missing value then
set searchField to contents of i
end if
end repeat
set value of searchField to searchString
end tell
end tell
end tell
end tell
----------------------------------------------------------------
Thank you for this, Chris. I’ll try to implement it in my macro.
I can see my efforts to get around learning Applescript are failing. I am quite certain most of the macros I’ve created in KM would be much more “bombproof” using Applescript.
Next question: How do I access the results? I expect to see a “Finder” search window. That does not seem to be one of the options. I tried several of the “display” options with no results. Sometimes the expected results is “nothing”. That tells me the file does not exist. How does the Applescript handle that?
See the new code block starting at line: tell searchField – New code to execute the search. in the code.
-Chris
----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2017/12/21 12:30
# dMod: 2017/12/21 16:12
# Appl: Finder, System Events
# Task: Open a given Finder Window and input a Search Value in the Search Field.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Finder, @System_Events, @Open, @Window, @Input, @Search, @Field, @Value
----------------------------------------------------------------
set targetFolderPath to "/Volumes/SanDisk Blade/Jewelry/" -- Replace with correct path.
tell application "Keyboard Maestro Engine"
set searchString to getvariable "PIN"
end tell
tell application "System Events"
open disk item targetFolderPath
tell application process "Finder"
tell window "Jewelry"
tell toolbar 1
set hitList to first UI element of groups whose subrole is "AXSearchField"
repeat with i in hitList
if contents of i ≠ missing value then
set searchField to contents of i
end if
end repeat
tell searchField -- New code to execute the search.
set value to searchString
perform action "AXConfirm"
end tell
end tell
end tell
end tell
end tell
----------------------------------------------------------------