Syntax
tell app "Apple System Profiler"
(* get the machine's IP address *)
get TCPIP address
end tell
Dictionary commands
- open object or list of objects
This command opens an ASP report, as in the following
example:
set rep to "macintosh hd:desktop folder:ASP report" as alias
tell application "Apple System Profiler"
activate bring ASP to the front
open rep
end tell
- print object or list of objects to print
This prints a report, as in print ASPreportFile
displaying print dialog true as text.
- displaying print dialog (boolean)
This is an optional true/false value. If
it's true, it displays a dialog
for setting printing preferences prior to printing the ASP report.
- as (text/shown on screen)
This is an optional labeled parameter involving whether to print out
the report as text or as it is laid out on screen in the ASP
document.
- quit
This command
quits ASP.
- run
This command
sends a run Apple event to ASP, which is the
same as double-clicking the program's icon on the
desktop. This opens the application if it is not already open.
- close reference to object
This closes an ASP report, optionally saving it in a file. Here is
example code:
close report "ASPreport" saving ask
- saving yes/no/ask
The optional saving labeled parameter takes one
of three constants. yes saves the report with a
default name in ASP's directory (which is the
Apple Menu Items folder),
no just closes the report without saving it, and
ask displays a dialog that the user can use
optionally to rename the document and save it in the directory of his
choice.
- saving in alias
Using the code
close report report 1 saving in aliasFile
saves an open report in the alias contained in the
variable aliasFile.
- count reference to object
This command counts the number of open reports or ASP windows and
returns an integer:
count each window
- each class
The each labeled parameter, as in count
each report, is not required; you can use syntax such as
count reports instead.
- exists reference to object
This finds out whether a report or window exists:
exists report 1
This command returns a boolean value,
true or false.
- make
This command makes a new report:
make new report at "macintosh hd:desktop folder" with properties {report
contents: {system profile} }
A report is the only object that ASP can use
make with.
- new (class)
Follow the new labeled parameter with the
report class type:
make new report
at (location reference)
Follow the at labeled parameter with a
string indicating where you want to save the
report:
at "macintosh hd:desktop folder"
- with data (anything)
This labeled parameter does not appear to add any value in this
context beyond what you can accomplish with the with
properties labeled parameter. At any rate, follow this
labeled parameter with an anything value.
- with properties (record)
The with properties parameter is followed by a
record type that contains the new
report's properties. Chapter 3,describes the
record data type. Here is the example code:
tell application "Apple System Profiler"
make new report at
"macintosh hd:desktop folder" with properties
{report contents:{hardware overview},
report view format:text}
end tell
- save reference to report
You can save an ASP report to a file with code such as:
save report 1 in "macintosh hd:desktop folder:new.txt"
- in (alias)
If you pass in a valid string pathname with the
in labeled parameter, then ASP saves the report in
a new file.
- backup (boolean)
The backup true labeled parameter is not
necessary; if you continually save the same report but with different
filenames, the original saved report is not overwritten. These
actions will just create several different files of the same ASP
report.
Dictionary classes
- application
This class represents the Apple System Profiler app. It includes the
window and report elements, as
well as numerous properties that contain information on the
computer's memory, such as volumes (disks), files,
networking protocols, and other features. Scripters can set
non-read-only ASP properties with code such
as:
tell app "Apple System Profiler" to set report contents to¬
memory overview
You can get information about the machine with code such as the
following:
get QuickTime version or get file sharing
This is true or false if file
sharing is enabled. The phrase
"(report class)"
in the following definitions means that the report
class shares this property with the application
class, and the property has the same definition. The following are
application elements:
- report
The application can have one or more open ASP reports. See the
report class.
- window
The application
can have one or more open ASP windows. See the
window class.
The following are application properties:
- properties
The code:
tell app "Apple System Profiler" to get properties
returns a record type containing the names and
values of the vast majority of the application's
properties. To get a specific property value from this
record type, use code such as:
get AppleTalk address of properties
This useful property returns the hardware address of your Ethernet
card as a string, such as
"08.00.07.00.00.00."
- clipboard (a list of anything)
This returns a list of whatever items are in the
clipboard.
- name (international text)
The name is "Apple System Profiler."
- frontmost (boolean)
This value is true if ASP is the frontmost app on
the desktop.
- version (version)
This returns the ASP version number, which is a string like
"2.4.4." Version 2.4.4 comes with
Mac OS 9.04 and includes the dictionary described in this chapter.
- gathers at launch (list of constants)
This property tells ASP which machine data to gather when it starts
up or launches. You can also set this property by choosing
ASP's menu command
Edit-Preferences. The constants are any of the
following:
all |
network overview |
applications |
printing overview |
control panels |
production information |
devices and volumes |
software overview |
extensions |
system folders |
hardware overview |
system profile |
memory overview |
|
Here is example code:
set gathers at launch to {network overview, system folders}.
- gathering (boolean)
This is a boolean value that returns
true if the application is in the process of
collecting data on the machine.
- remembers window size
(boolean)
This sets the "save window location and
size" checkbox in the Preferences window of the app.
- report view format (text/shown on screen)
You can set this property to either of the
two constants. There are slight differences in the way the two
constants display the ASP data (for example, text
is better for printing the document).
- preferred report contents (a list of constants)
You can set this property to any of these constants:
all |
network overview |
applications |
printing overview |
control panels |
production information |
devices and volumes |
software overview |
extensions |
system folders |
hardware overview |
system profile |
memory overview |
|
The setting determines the default manner in which ASP gathers
machine data.
- control panel volumes (list of aliases or the constants startup/attached /all /preferred)
Usually ASP just gathers information that derives from the startup
disk, but your computer might mount more than one volume on the
desktop. This property determines whether you gather data on the
control panels of only the startup disk or of several other volumes.
You can use a list of aliases to the various
volumes or one of the constants to give this property a value:
set control panel volumes to attached
- extension volumes
(list of aliases or the constants startup/attached/all/preferred)
Using this property, you can control where ASP gathers information
from on extension files. Use a list of aliases to
the volumes or one of the four constants to give this property a
value.
- application volumes
(list of aliases or the constants startup/attached/all/preferred)
Usually ASP just gathers information that derives from the startup
disk, but your computer might mount more than one volume on the
desktop. You can control where ASP gathers information on
applications. Use a list of aliases to the volumes
or one of the four constants to give this property a value.
- system folder volumes (list of aliases or the startup/attached/all/preferred)
Scripters can specify the system folders
that ASP gathers data on by setting this property to either a
list of aliases pointing to the system folders or
one of four constants. The default is startup.
- system info (record)(report class)
This property returns a record containing data
from the system overview section of the System
Profile panel. An example return value is:
{file sharing:true, finder version:"9.0", system version:"9.0.4
US", active enabler:"PowerPC Enabler 9.0.4 9.0.4", AtEase version:"1.1",
QuickTime version:"4.0.3", StartupDiskName:"Macintosh HD", MacOS info:true,
StartupDiskType:"Hard drive", StartupDiskLocation:"ID = 0",
StartupDiskBus:"SCSI Bus 0", disk cache size:"6.50 MB", startup info:true,
system info:true}.
- MacOS info (record)(report class)
This gathers all of the information from the Mac OS overview section
of the System Profile panel. This property returns a
record type. Chapter 3describes the
record data type.
- finder version (string)(report class)
This returns the version of the
Finder from the frontmost ASP window or report.
- system version (string)(report class)
This property returns a string containing the
system version (e.g., "9.04") from
the frontmost ASP window or report.
- active enabler (string)(report class)
This property returns the version of the active enabler system
software or an empty string if there isn't one
installed.
- AtEase version
(string)(report class)
This is the version of the software At Ease, if it's
installed.
- MultipleUsers user name (string)(report class)
This returns the current username if Multiple Users is installed and
a user is logged in.
- MultipleUsersEnvironment (string)(report class)
This property returns information on the Multiple Users environment
if Multiple Users is installed and a user is logged in.
- QuickTime version (string)(report class)
This property finds out which
Quicktime version the machine is running with code such as:
set qt to QuickTime version
- file sharing
(boolean)(report class):
This is a true or false value
indicating whether file sharing is enabled.
- startup info
(record)(report class)
This property returns a record containing useful
system information such as your machine's disk-cache
size. The return value from get startup info looks
like:
{StartupDiskType:"Hard drive", StartupDiskLocation: "ID = 0",
StartupDiskBus:"SCSI Bus 0", disk cache size:"6.50 MB", startup info:true}
- StartupDiskName
(string)(report class)
This property returns the name of your startup disk.
- StartupDiskType (string)(report class)
This returns a string such as
"Hard drive."
- StartupDiskLocation (string)(report class)
This property returns a string such as
"ID = 0."
- StartupDiskBus (string)(report class)
This returns a string from the startup device section of the System
Profile panel, such as "SCSI Bus
0."
- memory info
(string)(report class)
This is a record type whose return value looks
like:
{video memory size:"", memory cache size:"Not installed", VM info:true,
VM size:"209 MB", VM storage:"scratch", physical RAM size:"208 MB",
memory info:true}
- disk cache size (string)(report class)
This property returns the disk cache string from
the memory overview section of the System Profile panel. An example
is "6.50 MB."
- video memory size
(string)(report class)
This property returns the video memory size or an empty
string if the data is not available.
- video note (string)(report class)
This property returns nothing on my machine, but returns a
string if Video note information is available.
- memory cache size (string)(report class)
This property returns "Not
Installed" if the external L2 cache is disabled on
your motherboard, as is true for my CPU-upgraded machine.
- VM info
(boolean)(report class)
This is a true/false value indicating whether
virtual memory is turned on.
- VM storage(string)(report class)
This property returns the name of the volume or disk that is storing
the virtual-memory file, if virtual memory is turned on.
- VM size (string)(report class)
This returns a string representing the amount of
virtual memory the machine is using; it returns an empty
string otherwise.
- physical RAM size
(string)(report class)
This property returns the amount of memory the machine has.
- hardware info
(record)(report class)
This returns a record type containing the
information that is found in the hardware-overview section of the
System Profile panel. Here's a sample return value:
{logicboard num:"69", unique logicboard num:"69",
model name:"Power Macintosh 8500 series", keyboard type:"Apple
Extended Keyboard", hardware attributes:"Not available",
processor type:"PowerPC G3", rated speed:"400 MHz", processors:"1",
nanokernel version:"2.13", free pools:" 0", scheduled processors:" 1",
hardware info:true}.
- logicboard num (string)(report class)
This represents a subset of the hardware-info value (see the example
return value under "hardware
info").
The following 10 properties represent a subset of the hardware info
value (see the example return under "hardware
info"):
- unique logicboard num (string)(report class)
- rated speed (string)(report class)
- model name (string)(report class)
- keyboard type (string)(report class)
- hardware attributes (string)(report class)
- processor type (string)(report class)
- processors (string)(report class)
- nanokernel version (string)(report class)
- free pools (string)(report class)
- scheduled processors (string)(report class)
- network info
(record)(report class)
All of the available AppleTalk, Ethernet, modem, and other networking
information (including TCP/IP address and subnet mask) is returned as
a record type. In other words, this is a very
useful value for anyone who is dealing with networked Macs. The data
derives from the network-overview section of ASP's
System Profile.
- Ethernet information (record)(report class)
This property returns a record type containing the
values for Ethernet link, duplex, and speed.
- Ethernet link (string)(report class)
This returns the Ethernet link value from the network-overview
section of ASP's System Profile tab.
- Ethernet speed (string)(report class)
This returns the Ethernet speed value from the network-overview
section of ASP's System Profile tab.
- Ethernet duplex (string)(report class)
This returns the Ethernet duplex value from the network-overview
section of ASP's System Profile tab.
- modem info
(string)(report class)
This property returns the modem info value from the network-overview
section of ASP's System Profile tab.
- modem name (string)(report class)
This property returns the modem name value from the network-overview
section of ASP's System Profile tab.
- modem protocol (string)(report class)
This property returns the modem protocol value from the
network-overview section of ASP's System Profile
tab.
- modem version (string)(report class)
This property returns the modem version value from the
network-overview section of ASP's System Profile
tab.
- modem status (string)(report class)
This property returns the modem status value from the
network-overview section of ASP's System Profile
tab.
- Open Transport info (record)(report class)
This property returns a
record type containing information derived from
the network-overview section of the System Profile tab. The following
is a sample return value:
{Open Transport installed:true, Open Transport status:true, Open Transport
version:"2.6.1", Open Transport info:true}.
- Open Transport installed (boolean)(report class), Open Transport status (boolean)(report class), Open Transport version (string)(report class)
These properties return a subset of the Open Transport info value.
See Open Transport info for a sample return value.
- AppleTalk info
(record)(report class)
This value is a record type containing the
AppleTalk information from the network-overview section of the System
Profile tab. Here is a sample return value:
{AppleTalk installed:true, AppleTalk state:true, AppleTalk
version:"60", default AppleTalk zone:"Not available", active network
ports:"Ethernet built-in LocalTalk (printer) built-in", AppleTalk network:"0",
AppleTalk node:"123", AppleTalk address:"08.00.07.00.00.00", AppleTalk
router:"<not available>", AppleTalk
info:true}
- AppleTalk installed (boolean)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- AppleTalk state (boolean)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- Apple Talk version (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- file sharing
(boolean)(report class)
This is a true/false value indicating whether file
sharing is started in the File Sharing control panel.
- default AppleTalk zone (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- active network ports (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- AppleTalk network (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- AppleTalk node (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- AppleTalk address (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- AppleTalk router (string)(report class)
This property returns a subset of the AppleTalk info property value.
See AppleTalk info for a sample return value.
- TCPIP info
(record)(report class)
This property returns a record type containing the
TCP/IP data for the machine, such as TCP/IP address, version, and
subnet mask. The return value looks like:
{TCPIP installed:true, TCPIP status:true, TCPIP version:"2.6.1",
web sharing:false, multihoming:false, TCPIP netmask:"255.255.0.0",
TCPIP address:"192.168.0.3", TCPIP gateway:"192.168.0.1", TCPIP domain:"",
TCPIP nameserver:"192.168.0.1", TCPIP info:true}
The data is derived from the network overview section of the System
profile tab.
- TCPIP installed (boolean)(report class)
This property returns a subset of the TCPIP info property value. If
TCP/IP is not installed then this property returns
false.
- TCPIP status (boolean)(report class), TCPIP version (string)(report class), multihoming (boolean)(report class)
These properties return a subset of the TCPIP info property value.
See TCPIP info.
- web sharing (boolean)(report class)
This property returns a subset of the TCPIP info property value. It
is true if web sharing has been started in the Web
Sharing control panel.
- TCPIP netmask (string)(report class)
This property returns a subset of the TCPIP info property value. It
returns a string such as
"255.255.255.0." See TCPIP
info.
- TCPIP address (string)(report class)
This property returns a subset of the TCPIP info property value. It
returns a string such as
"172.128.0.1." See TCPIP
info.
- TCPIP gateway (string)(report class), TCPIP domain (string)(report class), TCPIP nameserver (string)(report class)
These properties return a subset of the TCPIP info property value.
You can also find this information in the TCPIP control panel. See
TCPIP info.
- production info (record)(report class)
This property returns a record type that contains any production
information on the machine, such as it serial number. A sample return
value is:
{ROM revision:"$77D.28F1", boot ROM version:"Not available", boot ROM file
version:"Not available", serial number:"Not applicable", software bundle
number:"Not applicable", sales order number:"Not applicable", production
info:true}
The following six properties are subsets of the production info value:
- ROM revision (string)(report class)
- boot ROM version (string)(report class)
- boot ROM file version (string)(report class)
- serial number (string)(report class)
- software bundle number (string)(report class)
- sales order number (string)(report class)
- not applicable (string)(report class)
This returns the string "not
applicable" if the machine is using a U.S. version
of ASP. Otherwise it returns the translated version of
"not applicable."
- not available (string)(report class)
This returns the string "not
available" if the machine is using a U.S. version of
ASP. Otherwise it returns the translated version of
"not available."
- monitors (string)(report class)
This
property returns the number of monitors that are connected to the
machine.
- report
This
class represents an Apple System Profiler report. These
reports assemble all or a subset of system
information as either an ASP document or text file. Most of the
report object's properties (it
has no elements) are shared with the application
object; those that are not shared are defined in the upcoming
section. See the application class discussion for
the definitions of most of the report
class's properties. The following are
report properties:
- name (international text; read-only)
This property returns the report name as a string.
- id (integer; read-only)
Every report has a unique id that looks like 182306468. You can get
the ID of the frontmost report with code such as:
tell app "Apple System Profiler" to get id of report 1
If you set this value to a variable you can then refer to the report
by its ID:
report ID 182306468
- index (integer; read-only)
Open ASP reports can be identified with a 1-based index: report 1 for
the first report that is created, report 2 for the second, etc. You
can initially get the ID of a report with the code:
set myid to id of report 1
- report contents (list of constants)
report contents is a list
containing any of the following constants:
all |
network overview |
applications |
printing overview |
control panels |
production information |
devices and volumes |
software overview |
extensions |
system folders |
hardware overview |
system profile |
memory overview |
|
This is a list of the type of data that the report
contains. You can also use this property when you make a new ASP
report; see the make command description in this
chapter. The system profile category constitutes the software
overview, memory overview, hardware overview, network overview,
printing overview, and production information
categories.
- report text (string; read-only)
This property returns a large string of
tab-delimited values if the report is extensive in its coverage. Its
return value might be useful if you wanted to save the
string to a file and then import it into a
database file.
- window
class
This is an ASP window object that has the typical properties of a Mac
window.
- bounds (bounding rectangle)
This returns the boundary rectangle for the window as a
list of integers, such as {50, 50, 594, 764}.
- closeable (boolean; read-only)
This returns true or false
depending on whether the window has a close box.
- titled (boolean; read-only )
This is a true/false value depending on whether
the window has a title bar.
- name (international text; read-only)
This property returns the window's title, which
could be useful when you try to identify a particular ASP report.
- modal (boolean; read-only )
This returns a true/false value indicating whether
the window is modal or not. Since most ASP windows are document
windows (you can move them around and access other windows behind the
document window), this property often returns
false.
- resizable (boolean; read-only)
This returns a true/false value indicating whether
the window can be resized by dragging its corners.
- zoomable (boolean; read-only)
This returns a true/false value indicating whether
the window has a zoom box in its upper right-hand corner.
- zoomed (boolean)
You can use this property to increase or decrease an ASP-report
window size:
set zoomed of window 1 to true.
Examples
This script gathers important system information on the local machine
and displays the dialog shown in Figure 11-2:
try -- trap any errors caused by running ASP
tell application "Apple System Profiler"
launch -- run the app but don't bring it to the front
set sys to system version -- a string like "9.04"
set startdisk to StartupDiskName
set ram to physical RAM size -- how much RAM does the machine have?
set megh to rated speed -- how fast the machine is in megahertz
set cpu to processor type -- an example is "PowerPC G3 400"
(* Assemble a message to the user in the sysmessage variable *)
set sysmessage to return & "The system version is : " & sys &¬
return
set sysmessage to sysmessage & "Startup disk name: " & startdisk¬
& return
set sysmessage to sysmessage & "Amount of RAM: " & ram & return
set sysmessage to sysmessage & "CPU speed: " & megh & return
set sysmessage to sysmessage & "CPU type: " & cpu & return
display dialog sysmessage
end tell
on error errMessage
display dialog "Opening ASP caused this error: " & errMessage
end try
|