AppleScript: скрыть / получить имя процесса из приложения

#process #applescript #hide #pid

#процесс #applescript #скрыть #pid

Вопрос:

Я хочу скрыть самое переднее приложение. Я знаю, что вы можете скрыть процесс, используя синтаксис:

 tell application "System Events"
    set visible of process "..." to false
end tell
  

и я знаю, как получить самое переднее приложение:

 (path to frontmost application as string)
  

Но как мне соединить две команды вместе?

Это не сработает:

 tell application "System Events"
    set visible of process (path to frontmost application as string) to false
end tell
  

Ответ №1:

Попробуйте это.

 tell application "System Events"
    set frontProcess to first process whose frontmost is true
    set visible of frontProcess to false
end tell
  

Вы должны быть осторожны, потому что в некоторых случаях, когда вы запускаете скрипт, скрипт является самым передним, поэтому вы можете просто скрыть скрипт вместо приложения, на которое вы нацеливались. Я проверяю имя самого переднего процесса, и если оно совпадает с именем скрипта или «applescript runner», то вам нужно скрыть это, затем снова запустите команду, и вы действительно получите приложение, на которое нацеливались. Это сложно.

Ответ №2:

Поскольку большинство приложений скроются, если вы нажмете Cmd-H, вы, вероятно, также могли бы пойти этим путем.

 tell app "System Events" to keystroke "h" using command down
  

Комментарии:

1. Чак, на самом деле это даже не попытка ответить на вопрос OP, поэтому было бы лучше опубликовать его как комментарий, чем как ответ.

2. Я думаю, что это правильный ответ. Идея может полностью отличаться от того, о чем думал Tyilo, но она должна сработать.