Basic AppleScript Dialog: display dialog "Your text here" with icon stop buttons {"OK"} default button {"OK"} giving up after 5
'giving up after 5' will automatically close the script after the indicated interval of time has elapsed.
|
AppleScript - When to Use Set and When to Use Copy
This one can be a difficult one, but if you have been following my posts so far, or otherwise are that much interested in learning AppleScript, this is an important issue to get straight.
Even if you have been using AppleScript for a while, as I have, you may still be unclear as to the difference between using set and using copy. In fact you may, as I thought for the longest time, think that they are synonyms. This is in many cases true, such as in statements like:
set clientName to "Joe Gonzalez"
copy "Joe Gonzalez" to clientName
In both cases, the variable clientName is set to the value of “Joe Gonzalez”.
If we try to use these interchangeably in the following statements, however, we get very different results. To illustrate this, have a look at these two scripts, which, on the surface would appear to have the same result:
set todaysDate to current date
set tomorrowsDate to todaysDate
set day of tomorrowsDate to (day of todaysDate) + 1
return date string of todaysDate
The last statement, it would seem, would give us the current date: say ‘Tuesday, June 9, 2009′. Unexpectedly, the value of the variable ‘todaysDate’ is now ‘Wednesday, June 10, 2009′ – not what we want. The reason for this anomaly is that when we use set to ‘set’ the value of a second variable, any changes to the value of the second are also changed in the former. This is because ‘set’ makes the second variable a clone to the original.
If we want to use the original variable as an initial value for the second without effecting the value of the original then we must use the keyword ‘copy’:
set todaysDate to current date
copy todaysDate to tomorrowsDate
set day of tomorrowsDate to (day of todaysDate) + 1
return date string of todaysDate
In the second case with ‘copy’, todaysdate retains its original value; using copy instead of set makes the new variable tomorrowsDate an independent variable.
This principle holds true for lists, records and script objects as well. In other words, the set keyword is a reference to the original item which is why, with ordinary text strings they are can be used interchangeably.
This is one of those things that you will encounter with AppleScript, where you can get the correct result every time you run a script and think that it will always work, and then you try to use it with another data type and get a big surprise.

Questions or comments are always welcome (positive – hopefully or negative – if that is the case). Contact me at: hyperscripter@gmail.com or http://twitter.com/hyperscripter.

Subscribe to Learning AppleScript for Beginners by Email
|
 
HTML Guide from Peachpit Press
 iPhoto 6
Create Multiple Folders with Terminal
If you are more of a techy kind of person and are comfortable with using Terminal, here is a script you can use to easily create multiple folders:
First, for a single folder, type in: mkdir "Folder 1"
--or whatever you want to name your folder, this creates a new directory, which, in effect is a new folder.
To place multiple items in the 'Documents' folder:
cd/Users/
Administrator/
Documents
mkdir "Folder 1" "Folder 2"
"Folder 3"
To quickly create multiple folders, create a text file with the desired folder names (as many as you want) and name it something like 'folderList.txt'. Next type this in Terminal:
cat folderList.txt |xargs mkdir
Or you could create folders with the same prefix by entering:
mkdir "Invoices " {"Corporate", "Individual", "Pro-Bono"}
Digg This!!
An AppleScript to Verify a Date Run this in the Script Editor:
set dateRecord to (current date)
set defaultDate to (date string of dateRecord)
try
set apptDate to text returned of (display dialog "Enter appointment date:" default answer defaultDate buttons {"Set"} default button {"Set"})
set datetext to apptDate as text
date apptDate --if an invalid date is entered, the next dialog is aborted and it triggers the error alert below.
display dialog datetext & " is a valid date." with icon note buttons {"OK"} default button {"OK"}
on error
set alertText to "An error has occurred!"
set messageText to quote & datetext & quote & " is an invalid date."
display alert alertText message messageText as warning buttons {"OK"} default button "OK" giving up after 15
return
end try
|
 Concept Drawing for iMac prior to Production
Fun HTML Use this to add interest to your pages, but be careful, if you overdo it, it can make your page look gaudy, if not ridiculous!
Read All About It
Here's is the code as it appears above:
<p align="center" style="padding: 5px; background-color: #FFCE9C; border: dotted 5px #FFCE9C;"><marquee width=20% behavior=scroll direction=left loop=infinite> Latest Headlines... </marquee><blink>Read All About It</blink>/p>
Check out this color HTML!!!
AppleScript for Setting System Volume Copy and paste this into the Script Editor and try it out:
set defaultVolume to "3"
set volumeLevel to text returned of ¬
(display dialog ¬
"Set the system volume to (7 is the highest):"¬
default answer defaultVolume with icon note¬
buttons {"OK"} default button "OK") as integer
set volumeValues to {0, 1, 2, 3, 4, 5, 6, 7} ¬
as list
if volumeLevel is not in volumeValues then ¬
set volumeLevel to defaultVolume
tell application "Finder"
try
set volume volumeLevel
beep 2
on error errDlog
display dialog errDlog with icon stop ¬
buttons {"Abort"} default button ¬
"Abort" giving up after 15
end try
end tell
Earn Wealth on Internet
Learn Tips and Tricks to Making Money on the Internet
www.internetwealth.com
Learn How To Make Money Blogging - Blog Mastermind
Six-figure Yaro Starak Teaches You How To Set Up And Profit From A Successful Blog. Start Making Money From Blogs By Following This Step-by-step, Weekly Coaching Program
http://www.blogmastermind.com/coaching/
Seo Elite: New Seo Software!
The Grand Daddy Of All Seo Software!
Get A Top 5 Google Ranking In Under 30 Days!
http://www.seoelite.com/
Turn Your Photos Into Cash
All You Need Is A Digital Camera, A Computer And An Internet Connection To Get Started Making Extra Income Every Month!
http://turnyourphotosintocash.com/
Infinite Income Plan - Instant Wealth Guide & CDs.
Easy Money For Affiliates, Huge 8.3% Conversions On Generic Traffic. Massive 70% Commissions Plus
HyperCard AppleScript Users:
Heres an AppleScript for backing up a selected group of HyperCard files. this was used in one of my HyperCard stacks, but could be adapted for use in OSX programs with little or no modification:
send "suiteBkp(true)" to bg btn "BackupSuite"
--Use this line to call the handler below (true displays a notification dialog when the process is complete, you must have a button named bg btn "BackupSuite"):
on suiteBkp(theBoolean)
copy line 1 of field "selectedFolder" to theHFFolderPath --You'll need a hidden field named "selectedFolder" that a script (prior to the call) will place the path to the desired folder in.
tell application "Finder"
activate
set todaysDate to (current date)
set bkpYear to (year of todaysDate)
set monthlyBkp to ("Monthly Reports_" & bkpYear) as string
if exists (folder "HyperCard Backup") then
select folder "HyperCard Backup"
delete selection
end if
if exists (folder "HyperCard Backup" of folder theHFFolderPath) then
select folder "HyperCard Backup" of folder theHFFolderPath
delete selection
end if
make new folder at folder theHFFolderPath with properties {name:"HyperCard Backup"}
select {file "Appointments" of folder theHFFolderPath, ¬ file "HyperFile" of folder theHFFolderPath, ¬ file "Outstanding Invoices" of folder theHFFolderPath, ¬ file "Year" of folder theHFFolderPath, ¬ file monthlyBkp of folder theHFFolderPath, ¬
copy selection to folder "HyperCard Backup" of folder theHFFolderPath
select folder "HyperCard Backup" of folder theHFFolderPath
select file "Appointments" of folder ¬ "HyperFile Suite Backup" of folder theHFFolderPath
set name of selection to "Appointments.bkp"
select file "HyperFile" of folder "HyperCard Backup" of ¬ folder theHFFolderPath
set name of selection to "HyperFile.bkp"
select file "Outstanding Invoices" of ¬ folder "HyperFile Suite Backup" of folder theHFFolderPath
set name of selection to "Outstanding Invoices.bkp"
select file "Year" of folder "HyperFile Suite Backup" of ¬ folder theHFFolderPath
set name of selection to "Year.bkp"
set prefMonthlyBkp to (monthlyBkp & ".bkp") as string
select file monthlyBkp of folder "HyperFile Suite Backup" of ¬ folder theHFFolderPath
set name of selection to prefMonthlyBkp
select folder "HyperFile Suite Backup" of folder "The HyperFile Folder"
move selection to desktop
end tell
if theBoolean = "true" then
tell application "HyperCard"
activate
display dialog ¬ "Your backup has been saved to desktop." buttons {"Done"} default button {"Done"} with icon 129 giving up after 10
end tell
end if
end suiteBkp
more HyperTalk
 Macintosh Plus (late 1984), followed close behind the Mac 512k
 The classic Apple IIc (1981), part of a series of Apple computers that preceded the debut of the Macintosh
HyperCard Users Corner:
Here's a simple, but very useful little HyperTalk script for verifying the validity of a date entered by a user, assuming that you have a menu item "flag date..." (or whatever you choose to name it) or it could be altered slightly and placed within a mouseUp statement:
if menuItem = "Flag Date..." then
global tryDate
ask "Enter a date for your new appointment:" with the long date
if it ≠ "" and the result ≠ "Cancel" then
put it into tryDate
else
put "" into tryDate
exit doMenu
end if
if invalidDate() then
answer "The date entered is not valid!"
put "" into tryDate
exit doMenu
end if
--Here you would put the statements to execute if the entered date proves to be valid
put "" into tryDate
end if
function invalidDate
global tryDate
convert tryDate to short date
if the result = "invalid date" then
return true
else
return false
end if
end invalidDate
more HyperTalk

 Mac SE (circa 1987), was a more advanced version of the Mac Plus and had an internal hard drive.
YouTube Video Search Script:
tell application "Finder"
try
set webSearch to text returned of (display dialog "Enter YouTube Video
Search" default answer "" buttons {"Search", "Cancel"} default button 1)
open location "http://www.youtube.com/results?search_query=" & webSearch
on error theError
display dialog theError
end try
end tell
|
My family always say that I am killing my time here at web, but I know I am getting know-how all the time by reading thes nice articles or reviews.
I basically tweeted your wordpress blog and wanted to claim that We have really enjoyed reading your wordpress blog posts. By any means I’ll be subscribing to your feed now, thanks
OCK6LQ6 OCK6LQ6 OCK6LQ6 375074 OCK6LQ6
You are my intake , I have few blogs and occasionally run out from to post : (.
Noted your website from the buddies Fb hyperlink, it appears that evidently you have developing fanbase and that i also at present undertsand the reason why Incredibly academic article, many many thanks one million.
Noted your web site that came from the friends Fb linkage, evidently you encounter developing fanbase and that i also now undertsand the sole reason why Incredibly useful information, many merit 1.
I’m studying Journalism at the University of Minnesota, and I am looking for a good website to start blogging on. I’m mostly looking for a good sports blogging website, but a music website would also be of interest. I’ve heard about Bleacher Report, is that one of the main sites?.
Cheers for another excellent content. In which otherwise may possibly any person have that sort of info in these an ideal way involving writing? Apple powerpoint presentation monday, and i’m for the find this sort of info.
good platform
I’m not truly sure if greatest practices have emerged around things like that, but I am certain that your excellent work is clearly identified. I had been wondering should you provide any subscription to your RSS feeds as I would be really interested and can not find any link to subscribe here.
Someone I profession with visits your blog really often and recommended it to me to understand too. The column style is gigantic and the content is interesting. Thanks suitable the understanding you lay down the readers!
Very effectively written information. It will likely be useful to anybody who usess it, together with myself. Sustain the nice work – for sure i will check out extra posts.
I do agree with all the ideas you have presented in your post.They’re very convincing and will certainly work.Still, the posts are too short for novices.Could you please extend them a little from next time? Thanks for the post
I’m not sure where you’re getting your information, but great topic.I needs to spend some time learning more or understanding more.Thanks for great info I was looking for this information for my mission
I would like to thnkx for the efforts you’ve put in writing this site.I am hoping the same high-grade site post from you in the upcoming as well.Actually your creative writing skills has inspired me to get my own web site now.Really the blogging is spreading its wings rapidly.Your write up is a great example of it
Hey, nice post, really well written. You should write more about this.
Hey, nice post, really well written. You should post more about this. I’ll definitely be subscribing.
Thanks for posting, I’ll definitely be subscribing to your blog.
We simply tweeted your blog and planned to feel that We have really enjoyed reading your blog posts. By any means I’ll be subscribing to your feed now, thanks
I am personally really fan of this blog…will get found the key to competently immediately. I’m really satisfied in addition to your copy abilties plus in the describe in your web log. Is the a paid theme or have you customise it by yourself? Anyway keep up the nice high-quality text, it’s rare to work out a beautiful site like this a lately..