2013-11-20 2 views
3

У меня есть ноутбук с глюкометром. Пока я не смогу повторно экранировать кабель, который вызывает сбой, я просто хочу выключить дигитайзер. Я нашел страницу, которая научила меня некоторому коду, и я использовал его успешно прошлой ночью. После перезагрузки, однако, он больше не работает:Невозможно сделать Unix ID процесса в тексте?

Сценарий:

tell application "System Events" 
    set PTD to (unix id of process "PenTabletDriver") as text 
    do shell script "kill -STOP " & quoted form of (PTD) 
end tell 

Сообщение об ошибке:

ошибка «Не удается сделать«класс»idux «class prcs» \ «PenTabletDriver» приложение «Системные события» в текст типа. » номер -1700 от «класса idux» из «класса PRCS» «PenTabletDriver» к тексту

Могу ли я изменить код как-то исправить эту проблему?

PS: Я прочитал this post и, хотя это похоже, я не понимаю, как это можно применить к моей проблеме.

+0

В коде нет ничего плохого. Вы получаете ошибку, потому что «Системные события» не могут найти этот процесс. – markhunte

ответ

0

Жизнь слишком короткая, чтобы испортить AppleScript. Попробуйте выполнить следующую команду в терминале:

pkill -STOP PenTabletDriver 

Кроме того, проверьте ваши детали для входа, чтобы увидеть, если водитель автоматически запускается каждый раз при входе в систему (Более вероятно, однако, заключается в том, что он настроен начать с. . время загрузки с помощью launchd)

0

вы можете сохранить следующий скрипт в небольшой апплет:

set shellStr to "pkill -STOP PenTabletDriver" 
do shell script shellStr 

и запустить его, когда вам нужно.

0

Я думаю, что другие ответы дают хорошую оценку, команда оболочки приятна и быстра. НО, если вы должны иметь это в AppleScript, это, кажется, работает для меня ....

tell application "System Events" 
    set PTD to (unix id of process "iTunes") 
    do shell script "kill -STOP " & quoted form of (PTD as text) 
end tell 

что приводит к

tell application "System Events" 
    get unix id of process "iTunes" 
     --> 37987 
    do shell script "kill -STOP '37987'" 
     --> error number -10004 
end tell 
tell current application 
    do shell script "kill -STOP '37987'" 
     --> "" 
end tell 

Процесс ID просто номер, так что нет необходимости цитата ...

tell application "System Events" 
    set PTD to (unix id of process "iTunes") 
    do shell script "kill -STOP " & PTD 
end tell 

Приведенный выше код достаточно.

 Смежные вопросы

  • Нет связанных вопросов^_^