Archive for the ‘AppleScript’ Category

Открыть и сохранить

Friday, August 22nd, 2008

Скрипт открывает страницу в Safari и сохраняет ее как myfile_03-05-2008.html

tell application "Safari"
 	activate
	make new document at end of documents
	set URL of document 1 to "http://mymans.org"
	get document 1
	delay 3
	set pathToSave to (path to desktop as text) & ("myfile_") & (do shell script "date '+%d-%m-%Y'")
	save document 1 in file pathToSave
end tell

Вызов *.app приложения из Perl

Wednesday, April 23rd, 2008
system ("open /Users/myuser/Desktop/sendit.app");

Вызов JS через AppleScript

Wednesday, March 5th, 2008

Ага, не удивляйтесь, но AppleScript позваляет управлять JavaScript на прямую через браузер. Например вызывать alert

tell application "Safari"
	do JavaScript "alert('hi')" in document 1
end tell

Или вызвать функцию на странице

tell application "Safari"
	do JavaScript "doSome()" in document 1
end tell

Скрипт на выходе

Monday, March 3rd, 2008

Хотите что бы при выключениии мака выполнялось некое действие? Тогда сделайте следующее

sudo defaults write com.apple.loginwindow LogoutHook /path/to/script

Циклическое выполнение по таймаутам

Tuesday, February 26th, 2008

Данный код будет выполнять однообразное действие 900 раз с отступом в 30 секунд

tell application ...
repeat 900 times
....
delay 30
end repeat
end tell

Но думаю ключевое слово здесь однообразное, хотелось бы получить переменную шага, для этого надо чуть поменять код

tell application ...
repeat with i from 1 to 900 times
....
delay 30
end repeat
end tell

Теперь переменную i можно использовать для кода внутри цикла

Создаем нужные папки в нужном месте

Tuesday, February 19th, 2008

Неплохой скриптик, создает новые папки в нужном месте.

set a to choose folder -- выводит диалог для определения папки
-- в которой создадуться новые
set new_sub_list to {"folder1", "folder2"} -- имена новых папок
tell application "Finder"
	repeat with nf in new_sub_list
		make new folder in a with properties {name:nf}
	end repeat
end tell

Огранизация файлов на рабочем столе

Monday, February 4th, 2008
tell application "Finder"
-- Здесь можно указать не только рабочий стол
-- но и любую другую папку
tell window of desktop

tell its icon view options
--  а теперь выбираем любую понравившуюся из трех строк
set arrangement to arranged by name
set arrangement to arranged by kind
set arrangement to not arranged

end tell
end tell
end tell

sudo для AppleScript

Friday, January 18th, 2008

Как известно sudo предоставляет возможность пользователям выполнять команды от имени root.
Стоит ввести простую команду вставив впереди sudo как система запросит рутовый пароль.

$ sudo ls
WARNING: Im ....
Password:

Как же быть если команда выполняется через AppleScript?

do shell script "ls" password "pass" with administrator privileges

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

Играем с окном finder

Thursday, December 13th, 2007

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

tell application "Finder"
set {l, t, r, b} to bounds of (Finder window 1)
-- tell application "Finder" to open "path:to:temp"
tell (Finder window 1)
-- положение на экране
set bounds to {l - 305, t, l - 5, t + 300}
set current view to icon view
set toolbar visible to false
set sidebar width to 0
set statusbar visible to false
end tell
tell icon view options of (Finder window 1)
set the icon size to 30
set the text size to 10
end tell
end tell

Я закомментировал строку tell application "Finder" to open "path:to:temp" не случайно. Без нее просто изменится окно в текущем каталоге, но если раскомментировать и прописать путь то можно сразу и перемещаться в нужный каталог.

Отправить мас спать через консоль

Tuesday, December 11th, 2007

Ну, непосредственно сабж

osascript -e 'tell application "System Events" to sleep'