MacCentre.ru Форум
Форум по компьютерам Mac, Mac OS X и продукции Apple
 
ПравилаПравила   FAQFAQ   ПоискПоиск  РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить ЛСВойти и проверить ЛС   ВходВход 
Вопросы и ответы по AppleScript
На страницу 1, 2, 3, 4, 5, 6, 7, 8  След.
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование   
Автор Сообщение
MMX



Репутация: 0    

Зарегистрирован: 15.07.2001
Сообщения: 2441

СообщениеДобавлено: Вт Янв 15, 2008 20:37
Вопросы и ответы по AppleScript
Ответить с цитатой

Вопрос снят
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Пт Янв 18, 2008 20:09
Автоматор и иже с ними...
Ответить с цитатой

Ну вот, а я только накатал:
Код:
global tNameList
global tButtonList
global tChoice
set tNameList to {} as list
set tButtonList to {} as list
tell application "System Events"
   get properties
   get every process
   if UI elements enabled then
      tell process "Finder"
         set tReturn to value of attributes of menu 1 of menu item 7 of menu 1 of menu bar item 1 of menu bar 1 as list
         set tReturn to item 3 of tReturn as list --very impotent string!
         set tItemCount to count of tReturn
         repeat with tItem from 1 to count of tReturn
            set tNameList to tNameList & title of (item tItem in tReturn)
         end repeat
         
         repeat with tItem from 1 to ((count of tNameList) - 2)
            set tButtonList to tButtonList & title of (item tItem in tReturn)
         end repeat
      end tell
      tell me
         display dialog "Select Location" buttons tButtonList
         set the tChoice to the button returned of the result
         tell application "Finder"
            activate
            tell application "System Events"
               click menu item tChoice of menu "Location" of menu item "Location" of menu "Apple" of menu bar 1 of process "Finder"
            end tell
         end tell
         
      end tell
      
      
      
   else
      tell application "System Preferences"
         activate
         set current pane to pane "com.apple.preference.universalaccess"
         display dialog "UI element scripting is not enabled. Check \"Enable access for assistive devices\". No eto nichego ne dast!"
      end tell
   end if
end tell

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Ср Ноя 30, 2011 00:01), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Пн Янв 21, 2008 15:55
Ответить с цитатой

2moders
Перенесите тему в "Программирование и Beta-тестирование", буду примерчики с коментами сюда постить.

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Korwin



Репутация: +32    

Зарегистрирован: 12.02.2007
Сообщения: 2657
Откуда: Севастополь / Санкт-Петербург

СообщениеДобавлено: Пн Янв 21, 2008 17:27
Ответить с цитатой

zztatarin
А можно в двух словах что этот скрипт делает? А то из темы и комментариев сразу не понятно зачем он нужен.

_________________
Пожалуйста, воспользуйтесь поиском...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение iChat
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Пн Янв 21, 2008 19:06
Ответить с цитатой

Location переключает из диалога.
Можно использовать для принудительного выбора Location, если поставить в LogIn Items.
К завтрему построчно распишу.

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Ср Янв 23, 2008 13:57
Вместо предисловия.
Ответить с цитатой

Чем каждый день кормить ухой, лучше дать в руки удочку и научить ловить рыбу. (с)Ставка



Почему я решил всё это написать.
Не секрет, что при работе с компьютером очень часто возникают ситуации, когда надо проделывать много малоинтеллектуальных, повторяющихся действий. В некоторых программах существуют специальные средства для создания и выполнения заранее определенных действий, например Actions в Photoshop или Scripts в InDesign. Но это средства не способны выйти за пределы своих программ. А часто бывает необходимо выполнить действия в одной программе в зависимости от определённых значений в другой. И в результате высококвалифицированный специалист работает интерфейсом между двумя программами. А иногда и между определенными окнами одной программы.

Например: оператор фотонабора, которому принесли на вывод кварковский Collect, должен подключить шрифты, слинковать картинки, определить формат документа, настроить драйвер принтера в соответствии с требованиями и спринтовать PS-файл. Сидит препрессор и жмет кнопки. Эффективность работы препрессора практически равна нулю, загрузка компьютера едва ли приближается к пяти процентам. Я это делал немного иначе. На десктопе была папочка, куда бросался Collect и ... Через некоторое время в папке OUT появлялся PS-файл (группа PS-файлов). Или файл с расширением .log, где описаны проблемы данной работы. Как это реализовать, я попытаюсь обьяснить.

Многие, недавно севшие за Macintosh (не будем называть их свитчерами, назовем начинающими маководами) ищут инструмент, чтобы автоматизировать свои ежедневные задачи и облегчить жизнь. Apple предлагает два решения: Automator и AppleScript. Самоуверенный начинающий маковод начинает искать "почитать" про AppleScript. Как же, он на C++ програмировал, а тут какой-то макро-язык, почти Бейсик. Почитать, выучить операторы и вперед, писать программы. Но, как говорится, гладко было на бумаге, да забыли про овраги. Дело в том, что при компиляции скрипта получается не исполняемый код, а последовательность системных событий. Т.е. клики мышью, выбор определенного меню, нажатия клавиш. И самое главное. AppleScript работает не с абстрактными переменными, описанными в header-файле, а с конкретными объектами, которые мы видим на экране, и их свойствами.

Почему здесь и почему сейчас.
Последнее время часто встречаются вопросы: — "Где почитать про AppleScript?" Множество информации по AppleScript-у с примерами и обсуждениями находится в интернете. Посещая тематические форумы и сайты, я часто вижу достаточно интересные и нестандартные решения, которые могут пригодиться мне (и не только мне) в будущем. Но... В то время, когда эти решения перед глазами, когда код прочитан и "прочувствован", применения ему нет. А когда возникает задача, требующая решения, которым я восторгался пару месяцев назад, по закону Мерфи ссылка потеряна, History потерто. И начинается перелопачивание интернета. Как старателю, чтобы найти крупинку золота, приходится перемывать тонны пустой породы, так и мне приходится пререлопачивать кучу информации (сопровождаемой ненавязчивой рекламой). Ради трех-четырех строчек кода приходится расходовать мегабайты трафика и часы времени. Я постараюсь собрать здесь те золотые крупицы, которые мне встречались и будут встречаться в будущем. Я не претендую на абсолютную истину, поэтому критика и коментарии приветствуются. Если Вы обнаружите, что я в своем повествовании не проставил Ваш копирайт (копилефт), пишите в личку на этом форуме.

И последнее.
Если у Вас возник вопрос, задавайте его прямо здесь.

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
whaler



Репутация: 0    

Зарегистрирован: 07.07.2007
Сообщения: 12

СообщениеДобавлено: Ср Янв 23, 2008 21:40
Ответить с цитатой

Совершенно правильно, это будет супер когда все будет собрано в одной теме.

А теперь собственно вопрос:
Есть код для подключения VPNа для Apple Script 2.0 (Leopard)

Код:
tell application "System Events"
   tell current location of network preferences
      set VPNservice to service "VPN service" -- name of the VPN service
      if exists VPNservice then connect VPNservice
   end tell
end tell

Хотелось бы осуществить реконнект при разрыве и (если возможно)
то убрать доступ к интернету если VPN не включен.
Заранее спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
whaler



Репутация: 0    

Зарегистрирован: 07.07.2007
Сообщения: 12

СообщениеДобавлено: Вс Янв 27, 2008 05:15
Ответить с цитатой

я прям смотрю лес желающих мну помочь)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Korwin



Репутация: +32    

Зарегистрирован: 12.02.2007
Сообщения: 2657
Откуда: Севастополь / Санкт-Петербург

СообщениеДобавлено: Вс Янв 27, 2008 12:02
Ответить с цитатой

whaler писал(а):
я прям смотрю лес желающих мну помочь)))

Вы пользуетесь UNIX-certified системой. Поэтому можете найти любой удовлетворяющий вас вариант в Google если в поиске указать вместо mac os x - UNIX.

Например ваш скрипт повесить в CRON который будет пинговать сервер ya.ru и при отсутствии пинга запускать дозвон.

Или проверять наличие установленного интерфейса через проверку назначен ли вашей машине IP-адрес или нет (hint: ifconfig)

_________________
Пожалуйста, воспользуйтесь поиском...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение iChat
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Пн Фев 04, 2008 15:24
Ответить с цитатой

Первые шаги.
Немного о моих приёмах "скриптописания". Для написания скриптов я стараюсь не использовать дополнительный софт по многим причинам. Одна из них - невозможность иметь под рукой компьютер в девелоперской конфигурации. Для написания кода я использую ScriptEditor, который есть на каждой машине. Кроме того, если вы сможете писать скрипты в ScriptEditor-е, то в AppleScript Studio сможете и подавно.
Итак приступим. Как водится у программистов, первая программа на любом языке - "Hello World!":

Код:

tell me to display dialog "Hello World!" buttons {"Sam Hello!"} default button 1

Что в переводе означает "Скажи сам себе, чтоб показать диалог с текстом "Hello World!", содержащий кнопки "Sam Hello!" из которых активна первая.1)

Есть несколько очень важных моментов, которые я хотел бы пояснить.
Во первых. Target application (целевое приложение) — программа, которая будет выполнять то, что мы напишем. Реально будут генерироваться определённые AppleEvents (системные события), побуждающие программу выполнить необходимые действия. Фраза tell me как раз и задает target application. Ею является ScriptEditor. Хорошо, но нам же надо не только в нем работать. Нам нужно работать с другими программами. Немного изменим код:

Код:

tell application "Finder" to display dialog "Hello World!" buttons {"Sam Hello!"} default button 1

Результат не изменился, однако target application у нас теперь Finder, и диалог теперь показывает не ScriptEditor, а именно он.

Зачем я все это рассказываю? Скрипт это такая же программа, и как любая программа он нуждается в отладке. А так как ScriptEditor практически не имеет отладочных средств, приходится выкручиваться следующим образом:

Код:

global tReturn
[skip]-- You action
set tReturn to DebugVariable
   tell application "Finder" to display dialog tReturn as string buttons {"Return", "Ok"} default button 2
   if (the button returned of the result is "Return") then
      return
   end if
[skip]
return tReturn


Расшифрую, что здесь есть. Первая строка объявляет глобальную переменную tReturn. (Дело в том, что в AppleScript-е, как и в других языках, могут использоваться подпрограммы. Переменная, объявленная глобально, видна из любой подпрограммы.) Вторая строка (реально она не будет второй) устанавливает нашу глобальную переменную в значение того, чего нам нужно посмотреть. Уже знакомая нам строка выводит диалог.
Обращаю внимание на конструкцию tReturn as string. Первым параметром команды display dialog обязательно должна быть строка, а переменной tReturn могло быть присвоено значение произвольного типа. Указание as string обязательно. И ещё. Target application обязательно Finder. Ведь программа, для которой мы пишем скрипт, может ничего не знать о команде display dialog. Finder — программа, которая всегда запущена и которая способна выполнить эту команду.
В том случае, если мы видим, что искомое значение неверно, жмем Return и прерываем выполнение скрипта. В случае, если все идет как надо, дождавшись окончания скрипта мы получим расшифровку искомого значения в окошке снизу.

Во вторых. Имена переменных. Имя переменной может быть любым кроме зарезервированных слов. Поэтому я стараюсь давать им такие имена, что бы назначение переменной было понятно без коментариев. Дабы избежать совпадений с зарезервированными словами, перед именем я ставлю маленькую "t".

В третьих. Как Вы уже догадались, для написания скрипта надо знать, какие команды способна выполнять target application. Мало того, надо ещё знать, с какими элементами мы можем работать. Где все это узнать? В словаре.
В ScriptEditor-е выбираем меню Open Dictionary, выбираем Finder и изучаем.
Рекомендую сразу же переключить вид к inheritance и поизучать элементы Finder-a. Ибо следующий кусок будет называться "Триединая Система. Finder, AppleEvents и SystemUIServer."

Может быть получилось сумбурно и не вполне понятно. Но попробуйте обьяснить кому-нибудь как Вы дышите.

1)Я не уверен в переводе tell как скажи. Скорее прикажи, попроси.
Кстати, очень забавно читать автоматические переводы конкретных скриптов. Очень похоже на разговор с китайцем. См. пример. Зачастую, прочитав этот корявый перевод понимаешь как и что работает.



Sample.zip
 Описание:

Скачать
 Название файла:  Sample.zip
 Размер файла:  1.37 кб
 Скачено:  97 раз(а)


_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Сб Ноя 22, 2008 15:15), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Korwin



Репутация: +32    

Зарегистрирован: 12.02.2007
Сообщения: 2657
Откуда: Севастополь / Санкт-Петербург

СообщениеДобавлено: Пн Фев 04, 2008 15:30
Ответить с цитатой

zztatarin
Спасибо! Как раз начал изучение AppleScript. Буду повторять каждый ваш шаг!

_________________
Пожалуйста, воспользуйтесь поиском...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение iChat
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Пн Фев 11, 2008 13:59
Ответить с цитатой

Триединая Система. Finder, System Events и SystemUIServer.
Продолжаем. Что мы видим после загрузки системы? MenuBar, Desktop, Dock. Что мы можем сделать? Подвигать мышкой, кликнуть меню, открыть диск с названием "Macintosh HD". Wink
Попробуем?
Код:

tell application "Finder" to click at {15, 15}

Не получилось... Frown
Но почему? Ведь в Finder-е мы кликаем Apple меню и оно открываются.
Дело в том, что Finder ничего не знает о мыши, ее положении и нажатии кнопки. Все это события, и обрабатывает их часть системы, которая называется System Events. Исправим эту ошибку.
Код:

tell application "System Events" to click at {15, 15}

Опять ничего. Но уже нет сообщения об ошибке и это вселяет надежду.
System Events отрабатывает событие click, но у нас не указано приложение, которое должно среагировать на него. Исправляем.
Код:

tell application "System Events" to tell application "Finder" to click at {15, 15}

Опять ошибка. Что-то не заладилось сегодня. Frown
Одно важное правило. Любой объект в системе имеет свойства, и эти свойства можно прочитать-поменять. Если что-то не так, смотри свойства.
Где их смотреть? Ну например исполнить команду get properties. Но самым правильным будет открыть словарь интересующей нас программы. Выбираем меню File->Open Directory... Жмем кнопку Brouse и выбираем System:Library:CoreServices:System Events.app.



Подсказка:

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Вт Ноя 25, 2008 12:19), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Вс Июн 29, 2008 16:53
Ответить с цитатой

Тяжела и неказиста жизнь простого программиста.
Не так сложно код писать, как ходы записывать.
Некто, всем известный Steps Wink , попросил меня автоматизировать хорошо знакомую всем пепрессникам задачу упаковки коллектов в ахив (на вывод). Вроде задача простая. Чего там, взял коллект, кинул на его на пластинку и записал. Но...

1. Если коллект по обьему превышает 4,3 ГБайт?
2. Если его объем меньше 1 ГБайт, но больше 700 МБайт? И таких коллектов с десяток?
3. Если надо найти картинку с позапрошлогоднего архива?
Как говорится флаг в руки, транспарант на спину и дудку в рот...


Собственно ТЗ:
На десктопе лежит папка, назовем ее "ToArchive", куда мы сбрасываем то, что нам надо поместить в ахив. При достижении размера ее содежимого некоторого заранее определенного предела (например размера DVD-диска) выкидывается предложение подготовить диск для записи и записать его. Точнее от папки "отпочковывается" папка типа "ReadyToBurn" Если содержимое не помещается на диск, то оно делится на две (три,.. двадцать и так далее) части.

Для ускорения работы скрипта и исключения фризов я решил использовать служебный файл типа index, который в последующем очень пригодился.

Итак поехали...

Сначала необходимо узнать, есть ли такая папка на десктопе и каков ее размер. Если ее нет, то ее надо создать.
Для этого идем в домашнюю папочку юзера AppleScript...
Код:

get every item of "Tiger:Users:applescript:Desktop"

Что переводится как взять каждый элемент объекта
Цитата:

{"T", "i", "g", "e", "r", ":", "U", "s", "e", "r", "s", ":", "a", "p", "p", "l", "e", "s", "c", "r", "i", "p", "t", ":", "D", "e", "s", "k", "t", "o", "p"}

Упс..., что-то не так.Frown
А, ну конечно, объект у нас строка, а ее элементы буквы (литеры). Smile
А нам нужен объект-папка. Исправляем ошибочку.
Код:

get every item of "Tiger:Users:applescript:Desktop" as alias

Цитата:
Can't make {"T", "i", "g", "e", "r", ":", "U", "s", "e", "r", "s", ":", "a", "p", "p", "l", "e", "s", "c", "r", "i", "p", "t", ":", "D", "e", "s", "k", "t", "o", "p"} into type alias.

Опять не то...
Ах ну да. "as alias" действует на всю команду "get every item of...", а нам надо на "Tiger:Users:applescript:Desktop". Т.е. необходимо тип string преобразовать к типу alias ДО выполнения команды get. Как это сделать? Как в математике, с помощью скобок.
Код:

get every item of ("Tiger:Users:applescript:Desktop" as alias)
Цитата:
Can't get every item of alias "Tiger:Users:applescript:Desktop"

Опс...Frown
Что же не так? Explode
Coffee
Конечно, ScriptEditor не Finder, он не может работать с файлами. Он работает с переменными и типами. Если в начале скрипта или строки отсутствует конструкция
tell application ""
--
end tell
или tell application "" to --, то подразумевается tell me. И мы пытаемся заставить ScriptEditor сделать то, чего он не умеет. Если чуть чуть изменить строку, то все получится.
Код:
tell application "Finder" to get every item of  ("Tiger:Users:applescript:Desktop" as alias)
Цитата:
{folder "My Folder" of folder "Desktop" of folder "applescript" of folder "Users" of startup disk of application "Finder"}

Еще чуть чуть изменим код, чтобы сделать результат более читабельным.
Код:

tell application "Finder" to get every item of ("Tiger:Users:applescript:Desktop" as alias) as alias
Цитата:
alias "Tiger:Users:applescript:Desktop:My Folder:"

Geek
Уф-ф... Сохраняемся и перекур.
--------------------------------------------------
Итак покурили, отдохнули, продолжем.
Я думаю все понимают, что указанные выше ошибки я совершал преднамеренно, дабы обьяснить как с ними бороться.Перечислю их поименно:
1. Неправильный тип данных, передаваемый команде.
2. Неправильное (не вовремя) преобразование типа.
3. Не верная TargetApplication. (Неверное адресование команды.)
Теперь, после исправления этих трех ошибок все работает...
Упс... Frown Не работает.
Цитата:
Can't make {alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"} into type alias.

Это четвертая ошбка. Неверное предположение о возвращаемом типе. Скрипт мы сохранили на десктоп, и у нас изменилось количество параметров, возвращаемых командой get. Обращаю внимание на то, что в последнем случае данные, которые пытается возвратить команда заключены в фигурные скобки. Это список (list). Известная "ошибка???" Finder Scripting, называемая Radar problem 2741967. Суть ее заключается в том, что Finder при возврате одной ссылки на объект возвращает именно ссылку, а не список ссылок из одного элемента. Хотя правильнее (по моему) последнее. Мораль такова: желательно преобразовывать тип перед использованием переменной. Итак:
Код:

tell application "Finder" to get every item of ("Tiger:Users:applescript:Desktop" as alias) --as alias


Что Вы говорите? У Вас нет диска "Tiger" ? И пользователь называется подругому?
Нет проблем, сейчас доработаем. Smile
Код:

set tStartUpDisk to "Tiger"
set tUser to "applescript"
tell application "Finder" to get every item of (tStartUpDisk & ":Users:" & tUser & ":Desktop" as alias) --as alias

В двух первых строках в начале скрипта поменяйте "Tiger" и "applescript" на Ваши диск и Short Name и все Ok!
Однако скрипт можно заставить делать это автоматически. Например вот так:
Код:
--set tStartUpDisk to "Tiger"
--set tUser to "applescript"
set tHome to home directory of application "Finder" --as alias
tell application "Finder" to get every item of ((tHome as text) & "Desktop" as alias) --as alias
Цитата:
{alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"}

Или так:
Код:
tell application "Finder" to set tDesktop to desktop --as alias
tell application "Finder" to get every item of (tDesktop as alias) --as alias
Цитата:
{alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"}

И даже так:
Код:
tell application "Finder" to get every item of (desktop of application "Finder" as alias)
Цитата:
{alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"}

И так:
Код:
tell application "Finder" to get every item of (desktop as alias)
Цитата:
{alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"}

Но!:
Код:

tell application "Finder" to get every item of desktop
Цитата:
{alias "Tiger:", alias "Tiger:Users:applescript:Desktop:My Folder:", alias "Tiger:Users:applescript:Desktop:My Script.scpt"}

Разница в том, что в последнем случае у нас появился alias диска....
Хм... а если так:
Код:
 tell application "Finder" to get every disk of desktop
Цитата:
startup disk of application "Finder"

А так?
Код:
tell application "Finder" to get every folder of desktop
Цитата:
startup disk of application "Finder", folder "My Folder" of desktop of application "Finder"
Неужели диск считается папкой? Вообще-то правильно, свойства у них похожи.

Собственно все это расказывалось с единственной целью. Показать, что одинаковый результат можно получить с помощью различного кода и с помощью практически одинокового кода можно получить различный результат. Все зависит от того, с помощью какого механизма мы обращаемся к объекту и какие свойства запрашиваем.

_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Сб Ноя 22, 2008 15:42), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
zztatarin



Репутация: +34    

Зарегистрирован: 04.08.2006
Сообщения: 4260

СообщениеДобавлено: Вс Июн 29, 2008 18:40
Ответить с цитатой

2 Moders Не удаляйте. Это закладка для будущих "глав".
_________________
Дайте мне единицу измерения и я смогу измерить ничтожность и бесконечность. А компьютер мне в х... не упёрся. Мне штангенциркуля хватит.
И ещё. Учу пользоваться документацией
Искренне Ваш ﺗﺘﺮ


Последний раз редактировалось: zztatarin (Сб Ноя 22, 2008 15:40), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Slava Ryabinin



Репутация: 0    

Зарегистрирован: 30.04.2008
Сообщения: 2

СообщениеДобавлено: Вс Авг 10, 2008 15:14
Ответить с цитатой

А нет ли форумов или книжек на русском по AppleScript?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение AIM Address
Показать сообщения:   
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование Страница 1 из 8
На страницу 1, 2, 3, 4, 5, 6, 7, 8  След.

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


Связь с администраторами

Powered by phpBB © 2001, 2005 phpBB Group