> set desktopWidth to (word 3 of (do shell script "defaults read
> /Library/Preferences/com.apple.windowserver | grep -w " &
"Width")) as
> number
> set desktopHeight to (word 3 of (do shell script "defaults read
> /Library/Preferences/com.apple.windowserver | grep -w " &
"Height"))
> as number
Depending on your system version, you might have better results if
you
change this part to use the construct submitted by Kai a couple of
days ago:
tell (do shell script "/usr/sbin/system_profiler
SPDisplaysDataType | grep
Resolution") to set {wd, ht} to {word 2 as number, word 4 as number}
set screenz to result
set desktopWidth to (item 1 of screenz)
set desktopHeight to (item 2 of screenz)
Result is the same, but my method seems significantly faster.
Yes, your method is up to 2.3 times faster here, Gnarlie - although,
if speed was a concern, the same information could be extracted up to
5 times faster again with something like:
--------
set p to (path to preferences from local domain as Unicode text) &
"com.apple.windowserver.plist"
tell application "System Events" to tell property list item 1 of
property list item 1 of ¬
property list item "DisplaySets" of property list file p
set w to (value of property list item "Width") div 1
set h to (value of property list item "Height") div 1
end tell
--------
However, there are issues with getting this type of information in
such a way. The com.apple.windowserver.plist file contains a list of
the currently supported resolutions - and either of the above methods
just selects the first instances of width and height that occur. In
addition, if an unsupported resolution happens to be selected, the
file may still reflect the resolutions from a previous setting.
There's also some further cautionary info here: