Как получить applecript для сравнения версии приложения с переменной - PullRequest
0 голосов
/ 29 мая 2019

У меня есть строка в моем appleScript, которая не будет читать переменную, установленную для имени приложения

set ReadAppVersion to value of version of application TheApp

но если я использую это ниже, это работает.

set ReadAppVersion to value of version of application "OsiriX"

По какой-то причине я не могу прочитать версию приложения, если она у меня есть в качестве имени переменной.

Но если я воспользуюсь этим ниже, это сработает.

set ReadAppVersion to value of version of application "OsiriX"
on AppOsirixChecks(TheApp)
  delay 1
  tell application "Finder"
    close every window
  end tell
  do shell script "defaults write com.apple.finder AppleShowAllFiles FALSE"
  tell application "Dock"
    tell application "System Events"
      tell process "Dock"
        click UI element "Finder" of list 1
      end tell
    end tell
  end tell
  menu_click({"Finder", "Go", "Applications"})
  delay 1
  set ReadAppName to 0
  set ReadAppVersion to 0
  set TheRow to 2
  tell application "System Events"
    tell process "Finder"
      repeat until ReadAppName is equal to TheApp
        set ReadAppVersion to value of version of application "osirix"
        set ReadAppName to value of text field 1 of UI element 1 of row TheRow of outline 1 of scroll area 1 of splitter group 1 of splitter group 1 of window "Applications"
        set TheRow to TheRow + 1
        if ReadAppVersion doesn't equal AppVersionOsiriX then
          log "TEST FAILURE !: The current version is: " & ReadAppVersion
        end if
      end repeat
    end tell
  end tell
  log ">>>                 Current Application Name is: " & ReadAppName
  log ">>>              Current Application version is: " & ReadAppVersion
  --return TheRow  -- this line does not seem necessary
  tell application "Finder"
    activate
    delay 2
    close every window
    do shell script "defaults write com.apple.finder AppleShowAllFiles TRUE"
  end tell
end AppOsirixChecks

<filepath>/upgrade_test_validation_checklist.scpt:10612:10617: execution error: OsiriX got an error: Can’t make «class valL» of version into type specifier. (-1700)

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Попробуйте задать его по имени, а не по ссылке.Это работает для меня (даже не находясь в блоке «Finder»).

set theApplication to "EasyFind"
set theVersion to version of application named theApplication
0 голосов
/ 29 мая 2019

Нет value of version.

Чтобы получить version приложения, опустите value of

set ReadAppVersion to version of application "OsiriX"

и переместите строку до блока System Events tellтак как вам нужно получить значение только один раз.

Честно говоря, я понятия не имею, что должен делать скрипт.Почему у вас GUI скрипт в Finder окне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...