<!DOCTYPE
HTML PUBLIC "-//W3O/DTD HTML//EN">
Microsoft Windows
Scripting Host
PROGRAMMER'S REFERENCE
ABSTRACT
The following information is presented in this programmer's reference:
·
About Microsoft® Windows® operating system Scripting Host
·
Using Windows Scripting Host
·
Windows Scripting Host Object Reference
CONTENTS
·
OVERVIEW OF THE WINDOWS SCRIPTING HOST
OBJECT MODEL
·
USING WINDOWS SCRIPTING HOST
·
Writing a Scripting Engine for Windows Scripting Host
·
How Windows Scripting Host Uses the Registry
·
Registering a Scripting Engine for Windows Scripting Host
·
Running Scripts Using Wscript.Exe
·
Creating .WSH Files to Record Script Options
·
Using .WSH Files to Run Scripts
·
Running Scripts Using Cscript.exe
·
A Cscript Example
·
Document Conventions
·
WINDOWS SCRIPTING HOST OBJECT
REFERENCE
·
Objects provided by Wscript.exe
·
Objects provided by WSHom.Ocx
·
Wscript Object
·
Wscript.Application
·
Wscript.Arguments
·
Wscript.FullName
·
Wscript.Name
·
Wscript.Path
·
Wscript.ScriptFullName
·
Wscript.ScriptName
·
Wscript.Version
·
Wscript.CreateObject
·
Wscript.DisconnectObject
·
Wscript.Echo
·
Wscript.GetObject
·
Wscript.Quit
·
WshArguments Object
·
WshArguments.Item
·
WshArguments.Count
·
WshArguments.length
·
WshShell Object
·
WshShell.Environment
·
WshShell.SpecialFolders
·
WshShell.CreateShortcut
·
WshShell.ExpandEnvironmentStrings
·
WshShell.Popup
·
WshShell.RegDelete
·
WshShell.RegRead
·
WshShell.RegWrite
·
WshShell.Run
·
WshNetwork Object
·
WshNetwork.ComputerName
·
WshNetwork.UserDomain
·
WshNetwork.UserName
·
WshNetwork.AddPrinterConnection
·
WshNetwork.EnumNetworkDrives
·
WshNetwork.EnumPrinterConnections
·
WshNetwork.MapNetworkDrive
·
WshNetwork.RemoveNetworkDrive
·
WshNetwork.RemovePrinterConnection
·
WshNetwork.SetDefaultPrinter
·
WshCollection Object
·
WshCollection.Item
·
WshCollection.Count
·
WshCollection.length
·
WshEnvironment Object
·
WshEnvironment.Item
·
WshEnvironment.Count
·
WshEnvironment.length
·
WshEnvironment.Remove
·
WshShortcut Object
·
WshShortcut.Arguments
·
WshShortcut.Description
·
WshShortcut.FullName
·
WshShortcut.Hotkey
·
WshShortcut.IconLocation
·
WshShortcut.TargetPath
·
WshShortcut.WindowStyle
·
WshShortcut.WorkingDirectory
·
WshShortcut.Save
·
WshSpecialFolders Object
·
WshSpecialFolders.Item
·
WshSpecialFolders.Count
·
WshSpecialFolders.length
·
WshUrlShortcut Object
·
WshUrlShortcut.FullName
·
WshUrlShortcut.TargetPath
·
WshUrlShortcut.Save
The
Microsoft® Windows® operating system Scripting Host is a language-independent
scripting host for ActiveX™ scripting engines on 32-bit Windows platforms.
Windows Scripting Host will be integrated into Windows 98,
Windows NT® Workstation operating system version 5.0, and Windows NT
Server version 5.0.
Both
Microsoft Visual Basic® development system Scripting Edition (VBScript)
and Microsoft JScript™ development system scripting engines are provided with
Windows Scripting Host. Other software companies will provide ActiveX scripting
engines for languages such as Perl, TCL, REXX, Python, and others. Windows
Scripting Host can be run from either the Windows-based host (Wscript.exe), or
the command-shell-based host (Cscript.exe).
ActiveX scripting architecture
supports powerful scripting, using languages such as Visual Basic
Scripting Edition, JScript, Perl, and others. Microsoft currently provides
three hosts for running these scripting languages across the Windows platform:
·
Microsoft Internet Explorer. Internet Explorer can execute
scripts on client computers from within HTML pages.
·
Internet Information Server (IIS). IIS supports Active
Server Pages, so scripts can run on Web servers. In other words, IIS supports
server-side scripting over the Internet or an intranet.
·
Windows Scripting Host. Windows Scripting Host provides a
low-memory scripting host so scripts can execute directly on the Windows
desktop or Command Prompt window; the scripts do not need to be embedded in an
HTML document. Windows Scripting Host is an ideal host for noninteractive
scripts that perform logon and administrative tasks.
In addition to having a smaller
footprint than the other two scripting hosts, the Windows Scripting Host does
not rely on an HTML SCRIPT tag or LANGUAGE attribute to identify a script
engine. Instead, it uses the extension of the script file to determine what
script engine to use. As a result, the scriptwriter need not obtain a script
engine ProgID. The scripting host itself maintains a mapping of script
extensions to ProgIDs and uses the Windows association model to launch the
appropriate engine for a given script.
For more information about how
Windows Scripting Host works, see: http://www.microsoft.com/management/wsh.htm.
OVERVIEW OF THE WINDOWS SCRIPTING HOST
OBJECT MODEL
The Windows Scripting Host object
model provides two main categories of ActiveX interfaces:
1.
Script execution and troubleshooting: Properties and
methods that are directly related to script execution. This set of interfaces
allows scripts to manipulate Windows Scripting Host, display messages on the
screen, and perform basic functions such as CreateObject and GetObject.
2.
Helper functions: Properties and methods that map network
drives, connect to printers, retrieve and modify environment variables, and
manipulate registry keys. These functions are provided so administrators can
use Windows Scripting Host to create simple logon scripts.
In
addition to the object interfaces provided by Windows Scripting Host,
administrators can use any ActiveX controls that expose Automation interfaces
to perform various tasks on the Windows platform. For example, administrators
can write scripts that use the Active Directory to manage the Windows NT
Directory Service.
The
following section describes how you can use Windows Scripting Host.
Writing a Scripting Engine for
Windows Scripting Host
The principal requirement for a third-party scripting engine is that it support
the ActiveX IActiveScriptParse COM interface.
The
Windows Scripting Host reads and passes the contents of a specified script file
to a registered script engine using the script engine's
IActiveScriptParse::ParseScriptText method.
A
scripting engine can also call Wshom.ocx, an ActiveX control that supports the
IDispatch COM interface. If the scripting engine supports ActiveX control
creation in a script, Wshom.ocx can be called from within the script.
If the
scripting engine itself calls Wshom.ocx, you should obtain Iwshom.idl, Iwshom.h
and Iwshom.iid from the Platform SDK. With these files, you can call methods in
Wshom.ocx using the normal COM calling sequence. Wshom.ocx supports a dual
interface, aggregation, and the IErrorInfo COM interface.
Example
#include <IWSHom.h>
HRESULT
Use_WSHShell() {
HRESULT hr;
IWSHShell* pShell;
hr = ::CoCreateInstance(CLSID_IWSHShell,
NULL,
CTX_INPROCSERVER,
IID_IWSHShell,
(LPVOID*) &pShell );
if (FAILED(hr)) return hr;
hr = pShell-Run(bstrCommand,
&varWindowStyle,
&varWaitOnReturn,
&nExitCode );
pShell-Release();
return hr;
}
How Windows Scripting Host Uses
the Registry
An ActiveX scripting engine is registered for use with Windows Scripting Host
by adding registry entries under the HKEY_CURRENT_USER (HKCU) key. Windows
Scripting Host determines which scripting engine to use to execute a script by
examining the ScriptEngine key. For example, if a user types the following
command in a Command Prompt window:
cscript
chart.vbs
To look
up the scripting engine for the Chart.vbs file, Windows Scripting Host:
·
Searches HKCU\.vbs to obtain a script identifier, such as
VBSfile.
·
Searches HKCU\VBSFile\ScriptEngine to get a scripting
engine identifier, such as VBScript.
·
Finds the CLSID from the scripting engine identifier; in
this example, the CLSID is located in HKCU\VBScript\CLSID.
·
Calls CoCreateInstance with the CLSID and IUnknown.
·
Calls QueryInterface to get the IActiveScriptParse COM
interface.
Registering a Scripting Engine for
Windows Scripting Host
If you have written an ActiveX scripting engine with the following
characteristics:
·
Script engine identifier is FooScript
·
File extension for script is .FOO
·
Script identifier is FooFile
The
following table shows the registry entries that are necessary to register this
engine (none of these has a value name).
Key |
Value
Name |
Type |
Value |
.FOO |
none |
REG_SZ |
FooFile |
FooFile |
none |
REG_SZ |
FooScript Script File |
FooFile\ScriptEngine |
none |
REG_SZ |
FooFile |
FooFile\Shell\Open |
none |
REG_SZ |
&Open |
FooFile\Shell\Open\Command |
none |
REG_EXPAND_SZ |
%systemroot%\system32\wscript
"%1" %* |
FooFile\Shell\Open2 |
none |
REG_EXPAND_SZ |
Open &with command console |
FooFile\Shell\Open2\Command |
none |
REG_SZ |
%systemroot%\system32\wscript
"%1" %* |
FooFile\ShellEx\ |
none |
REG_SZ |
{60254CA5-953B-11CF-8C96-00AA00B8708C} |
For
Windows 98, use REG_SZ instead of REG_EXPAND_SZ and change the path of
Wscript.exe and Cscript.exe as shown in the following table.
Windows NT |
|
Windows 98 |
Wscript |
%SystemRoot%\System32\Wscript.exe |
C:\Windows\Wscript.exe |
Cscript |
%SystemRoot%\System32\Cscript.exe |
C:\Windows\Command\Cscript.exe |
Running Scripts Using Wscript.Exe
Using Wscript.exe, you can run scripts under Windows in three ways:
·
Double-clicking files or icons. These can be files or
icons listed in My Computer, Windows Explorer, the Find window, the Start menu,
or on the Desktop.
·
Entering a script name at the Run command on the Start
Menu. Press the Start button, select Run, and enter the full name of the script
you want to run, including file extension and any necessary path information.
·
Entering Wscript.exe followed by a script name at the Run
command. Press the Start button, select Run, and enter Wscript, followed by the
full name and path of the script you want to run.
If you
double-click a script file whose extension has not yet been associated with
Wscript.exe, an Open With dialog box appears asking your what program you would
like to use to open the file you double-clicked. After choosing Wscript, if you
check the Always use this program to open this file check box, Wscript is
registered as the default application for all files having the same extension
as the one you double-clicked. For example, if you check this check box when
you run Chart.vbs, Wscript.exe becomes the default application for all files
having the .vbs extension.
Wscript.exe
has a properties page associated with it that provides the following options:
Property |
Function |
CSCRIPT
equivalent |
Stop script after nn seconds. |
Specifies a maximum number of
seconds that a script can run (the default is no limit). |
//T:nn |
Display logo when scripts
executed in a command console. |
Display a banner before running
the script (this is the default the opposite is //nologo). |
//logo or |
By using
the Wscript.exe Properties page, you can set global scripting options for all
scripts that Wscript runs on the local machine. It is also possible to set
options for individual scripts, using a .wsh file, as described in the next
section.
Creating .WSH Files to Record
Script Options
You can record specific settings for each individual script you run by creating
a control file for that script with a .wsh file extension.
A .wsh
file is a text file that uses a format similar to that of .ini files. It is
created automatically when you set the properties for a supported script file.
To
create a .wsh file for a given script
1.
Right-click the given script file in Windows Explorer.
2.
Select Properties on the context menu that appears.
3.
Choose the settings you want for the script on the
property page.
4.
Choose OK or Apply.
A .wsh
file is automatically created using the same name as the script file that you
right-clicked. A sample .wsh file might contain the following text:
[ScriptFile]
Path=C:\WINNT\Samples\WSH\showprop.vbs
[Options]
Timeout=0
DisplayLogo=1
BatchMode=0
The Path
setting in the [ScriptFile] section identifies the script file that this .wsh
file is associated with. The keys in the [Options] section correspond to
settings in the Script tab within the Properties dialog box.
Using .WSH Files to Run Scripts
A .wsh file is analagous to the .pif files used to run older 16-bit
applications. It can be treated as if it were an executable or batch file.
For
example, suppose you have a script named Myscript.vbs for which you have
created a .wsh file named Myscript.wsh. To run Myscript.vbs with the options
recorded in Myscript.wsh, you can either double-click Myscript.wsh in Windows
Explorer, or pass Myscript.wsh as a script argument to CScript.exe or
WScript.exe. For example, you could enter the following command at the command
prompt:
cscript
Myscript.wsh
Administrators
in particular will find .wsh files useful. By creating multiple .wsh files for
a given script, an administrator can tailor the way that script runs to the
needs of specific groups or even individuals within an organization.
The same
logon script, for example, might serve two very different groups if invoked by
two different .wsh files containing different settings and parameters.
Running Scripts Using Cscript.exe
To use Cscript.exe, open a Command Prompt window and type a Cscript command
line. CScript uses the following syntax:
cscript
[script name] [host options...] [script options]
·
Script name is the name of the script file, complete with
extension and any necessary path information, such as:
d:\admin\vbscripts\chart.vbs.
·
Host options enable or disable various Windows Scripting
Host features. Host options are always preceeded by two slashes (//).
·
Script options are passed to the script. Script parameters
are always preceeded by only one slash (/).
Each
parameter is optional; however, you cannot specify script options without
specifying a script name. If you do not specify parameters, Cscript displays
the Cscript syntax and the valid host parameters.
Cscript.exe
supports the host parameters shown in the following table.\
Parameter |
Description |
//I |
Interactive Mode: allows display
of user prompts and script errors (this is the default, and the opposite of
//B). |
//B |
Batch Mode: suppresses
command-line display of user prompts and script errors. |
//T:nn |
Enables time-out: the maximum
number of seconds the script can run. The default is no limit. (See the text
following this table for more information on this parameter.) |
//logo |
Displays a banner (default;
opposite of //nologo). |
//nologo |
Prevents display of an execution
banner at run time. |
//H:Cscript or |
Registers Cscript.exe or
Wscript.exe as the default application for running scripts. If neither is
specified, Wscript.exe is assumed as the default. |
//S |
Saves the current command-line
options for this user. |
//? |
Shows command usage (same as
with parameters). |
The //T
parameter prevents excessive execution of scripts; it does this by setting a timer.
When execution time exceeds the specified value, Cscript interrupts the
scripting engine using the IActiveScript::InterruptThread method and terminates
the process.
A Cscript Example
Several sample scripts are installed when you install the final release of the
Windows Scripting Host. These are also available for download at: http://www.microsoft.com/management/wsh.htm
Suppose,
for the purposes of this example, that you have copied the Chart.vbs sample
script to the following folder on your computer:
c:\sample
scripts\chart.vbs
You can
run the script using with and without a logo, as follows:
1.
Choose the MS-DOS® operating system Command Prompt from
Programs on the Start menu.
2.
Enter the following commands at the command prompt (if
your sample scripts are located in a different folder, these lines should be
modified accordingly):
cscript
//logo c:\"sample scripts"\chart.vbs
cscript //nologo c:\"sample scripts"\chart.vbs
When
Windows Scripting Host ships with Windows NT 5.0, you will no longer need
to provide the script file's extension. Instead, you can type the script name
alone, or double-click the script in Windows Explorer.
Document Conventions
Variable prefixes in parameter listings and code examples have the following
meanings.
Prefix |
Description |
any |
Any type |
b |
Boolean |
int |
Integer |
nat |
Natural number or nonnegative
integer |
obj |
Object (Idispatch interface) |
str |
String |
Scripting
examples are written in the Microsoft Visual Basic Scripting Edition
(VBScript).
Methods
written in Microsoft Jscript are case-sensitive. In general, you should use the
same case as the syntax examples shown in this document.
Parameters
in brackets (for example, [anyValue]) are optional.
WINDOWS
SCRIPTING HOST OBJECT REFERENCE
Objects provided by Wscript.exe
Wscript |
Exposed to scripting engine as
"Wscript." |
WshArguments |
Not exposed; accessed through
the Wscript.Arguments property. |
Objects provided by WSHom.Ocx
WshShell |
Automation object, |
WshNetwork |
Automation object, ProgID
"Wscript.WshNetwork." |
WshShortcut |
Not exposed; accessed through
WshShell.CreateShortcut method. |
WshUrlShortcut |
Not exposed; accessed through
WshShell.CreateShortcut method. |
WshCollection |
Not exposed; accessed through |
WshEnvironment |
Not exposed; accessed through
WshShell.Environment property. |
WshSpecialFolders |
Not exposed; accessed through
WshShell.Folder property. |
Wscript Object
ProgID |
N/A |
Filename |
Wscript.exe or Cscript.exe |
CLSID |
60254CA2-953b-11CF-8C96-00AA00B8708C |
IID |
60254CA1-953b-11CF-8C96-00AA00B8708C |
The
following table describes the properties associated with the Wscript object.
Property |
Description |
Application |
The IDispatch interface for
Wscript. |
Arguments |
A parameters collection object. |
FullName |
Full path to the host
executable. |
Name |
Friendly name of Wscript (the
default property). |
Path |
Name of the directory where Wscript.exe
or Cscript.exe resides. |
ScriptFullName |
Full path to the script being
run by the Windows Scripting Host. |
ScriptName |
File name of the script being
run by the Windows Scripting Host. |
Version |
A version string for the Windows
Scripting Host. |
The following
table describes the methods associated with the Wscript object.
Method |
Description |
CreateObject |
Creates an object and
establishes its event handling. |
DisconnectObject |
Disconnects a previously
connected object from Windows Scripting Host. |
Echo |
Displays parameters in a window
or at a command prompt in a Command Prompt window. |
GetObject |
Retrieves an Automation object
from a file. |
Quit |
Quits execution with a specified
error code. |
Wscript.Application
The Application property provides the IDispatch interface on the Wscript
object.
Syntax
Wscript.Application
= objWscript
Wscript.Arguments
The Arguments property provides a WshArguments collection object.
Syntax
Wscript.Arguments
= objArguments
Example
'
Display all command-line parameters
Set objArgs = Wscript.Arguments
For I = 0 to objArgs.Count - 1
Wscript.Echo objArgs(I)
Next
Wscript.FullName
The FullName property provides a string containing the full path to the host
executable.
Syntax
Wscript.FullName
= strFullName
Example
Wscript.FullName
= C:\WinNT\System32\wscript.exe
See Also
Wscript.Path
property.
Wscript.Name
The Name property provides a string containing the friendly name of the Wscript
object. This is the default property.
Syntax
Wscript.Name
= strName
Example
Wscript.Name
= Windows Scripting Host
Wscript = Windows Scripting Host
Wscript.Path
The Wscript.Path property provides a string containing the name of the
directory where Wscript.Exe or Cscript.Exe resides.
Syntax
Wscript.Path
= strPath
Example
Wscript.Path
= C:\WinNT\System32
See Also
Wscript.FullName
property
Wscript.ScriptFullName
The ScriptFullName property provides the full path to the script being run by
the Windows Scripting Host.
Syntax
Wscript.ScriptFullName
= strScriptFullName
Example
Wscript.ScriptFullName
= C:\Users\Default\WSH\Sample.VBS
See Also
Wscript.ScriptName
property
Wscript.ScriptName
The ScriptName property provides the file name of the script being run by the
Windows Scripting Host.
Syntax
Wscript.ScriptName
= strScriptName
Example
Wscript.ScriptName
= Sample.VBS
See Also
Wscript.ScriptFullName
property
Wscript.Version
The Version property provides a version string for the Windows Scripting Host.
Syntax
Wscript.Version
= strVersion
Example
Wscript.Version
= 5.0
Wscript.CreateObject
The CreateObject method creates an object specified by the strProgID parameter.
If the parameter strPrefix is specified, Windows Scripting Host connects the
object's outgoing interface to the script file after creating the object. When
the object fires an event, Windows Scripting Host calls a subroutine named
strPrefix and the event name.
For
example, if strPrefix is "MYOBJ_" and the object fires an event named
"OnBegin," Windows Scripting Host calls the "MYOBJ_OnBegin"
subroutine located in the script.
Syntax
Wscript.CreateObject(strProgID,
[strPrefix]) = objObject
See Also
Wscript.GetObject
method, Wscript.DisconnectObject method
Wscript.DisconnectObject
The DisconnectObject method disconnects a previously connected object (obj)
from Windows Scripting Host. If the specified object is not already connected
to Windows Scripting Host, this method does nothing.
Syntax
Wscript.DisconnectObject
obj
Example
' This
code fragment instantiates a fictitious object and
' connects it to the script file. The script then calls the
' "SomeMethod" method on the object.
' If an error called "Event" occurs in the object, then the
' MyEvent_Event subroutine is called.
Set MyObject = Wscript.CreateObject("SomeObject",
"MyEvent")
MyObject.SomeMethod
Sub MyEvent_Event(strName)
Wscript.Echo strName
End Sub
' When done with the object, disconnect it from the script
' and then set it to Nothing
Wscript.DisconnectObject MyObject
Set MyObject = Nothing
See Also
Wscript.CreateObject
method, Wscript.GetObject method
Wscript.Echo
The Echo method displays parameters in a window (in Wscript.exe) or at the
command prompt in a Command Prompt window (in Cscript.exe).
Parameters
are delimited by one space. Under Cscript.exe, this method outputs a carriage-return/line
feed pair (CR LF) after the last parameter displayed.
Syntax
Wscript.Echo
[anyArg...]
Example
Wscript.Echo
Wscript.Echo 1, 2, 3
Wscript.Echo "Windows Scripting Host is cool."
Wscript.GetObject
The GetObject method retrieves an Automation object from a file, or an object
specified by strProgID parameter. Use the GetObject method when there is a
current instance of the object, or if you want to create the object from a file
that is already loaded. If there is no current instance and you don't want the
object started from a file that is already loaded, use the CreateObject method.
Syntax
Wscript.GetObject(strPathname
[,strProgID] ], [strPrefix]) = objObject
Parameters strPathname
The full
path and the name of the file containing the object to retrieve. The parameter
strPathname is required.
strProgID
A string
representing the program identifier (ProgID) of the object.
strPrefix
If the
parameter strPrefix is specified, Windows Scripting Host connects the object's
outgoing interface to the script file after creating the object. When the
object fires an event, Windows Scripting Host calls a subroutine named
strPrefix and the event name.
For
example, if strPrefix is "MYOBJ_" and the object fires an event named
"OnBegin," Windows Scripting Host calls the "MYOBJ_OnBegin"
subroutine located in the script.
Return
objObject
The
Automation object retrieved.
Remarks
If an object has registered itself as a single-instance object (for example,
the Word.Basic object in Microsoft Word 7.0), only one instance of the object
is created, no matter how many times CreateObject is executed. In addition,
with a single-instance object, GetObject always returns the same instance when
called with the zero-length string syntax (""), and it causes an error
if the path parameter is omitted. You can't use GetObject to obtain a reference
to a Visual Basic class created with Visual Basic 4.0 or earlier.
GetObject
works with all COM classes, independent of the language used to create the
object.
Examples
Dim
MyObject As Object
Set MyObject = GetObject(""C:\CAD\SCHEMA.CAD"")
= MyCAD.Application
When
this code is executed, the application associated with the specified
strPathname is started, and the object in the specified file is activated.
If
strPathname is a zero-length string (""), GetObject returns a new
object instance of the specified type. If the strPathname parameter is omitted
entirely, GetObject returns a currently active object of the specified type. If
no object of the specified type exists, an error occurs.
Some
applications allow you to activate part of a file. To do this, add an
exclamation point (!) to the end of the file name and follow it with a string
that identifies the part of the file you want to activate. For information on
how to create this string, see the documentation for the application that
created the object. For example, in a drawing application you might have
multiple layers to a drawing stored in a file. You could use the following code
to activate a layer within a drawing file called schema.cad:
Set
LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
If you
do not specify the object's class, COM determines the application to start and
the object to activate according to the file name you provide. Some files,
however, may support more than one class of object. For example, a drawing
might support three different types of objects: an application object, a
drawing object, and a toolbar object, all of which are part of the same file.
To specify which object in a file you want to activate, use the optional class
parameter. For example:
Dim
MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW",
"FIGMENT.DRAWING")
In the
above example, FIGMENT is the name of a drawing application and DRAWING is one
of the object types it supports.
Once an
object is activated, you reference it in code using the object variable you
defined. In the above example, you access properties and methods of the new
object using the object variable MyObject. For example:
MyObject.Line
9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
See Also
Wscript.CreateObject
method, Wscript.DisconnectObject method
Wscript.Quit
The Quit method quits execution with a specified error code.
Syntax
Wscript.Quit
[intErrorCode]
Parameters
intErrorCode
If this
parameter is included, Wscript returns it as the process exit code. Otherwise,
if intErrorCode is omitted, Wscript returns zero (0) as the process exit code.
Example
Wscript.Quit(1)
WshArguments Object
This object is not exposed directly; access it using the Wscript.Arguments
property.
ProgID |
N/A |
Filename |
Wscript.Exe or Cscript.Exe |
CLSID |
60254CA4-953b-11CF-8C96-00AA00B8708C |
IID |
60254CA3-953b-11CF-8C96-00AA00B8708C |
The
following table describes the properties associated with the WshArguments
object.
Property |
Description |
Item |
The nth command-line parameter
(the default property). |
Count |
The number of command-line
parameters. |
length |
The number of command-line
parameters (JScript). |
WshArguments.Item
The Item property contains the natIndexth command-line parameter as a string.
It is the default property.
Syntax
Arguments(natIndex)
Arguments.Item(natIndex) = strArgument
Example Set oArgs = Wscript.Arguments.
Wscript.Echo oArgs(0)
Wscript.Echo oArgs.Item(0)
See Also
Wscript.Arguments
property
WshArguments.Count The Count property provides the number of command-line
parameters.
Syntax
Arguments.Count
= natNumberOfArguments
See Also
Wscript.Arguments
property, WshArguments.length property
WshArguments.length
The length property provides the number of command-line parameters. This
property provides the same functionality as the Count property and is provided
for Microsoft JScript compatibility.
Syntax
Arguments.length
= natNumberOfArguments
See Also
Wscript.Arguments
property, WshArguments.Count property
WshShell Object
ProgID |
Wscript.WshShell |
Filename |
WSHom.Ocx |
CLSID |
F935DC22-1CF0-11d0-ADB9-00C04FD58A0B |
IID |
F935DC21-1CF0-11d0-ADB9-00C04FD58A0B |
The
following table describes the properties associated with the WshShell object.
Property |
Description |
Environment |
Returns the WshEnvironment
collection object. |
SpecialFolders |
Provides access to Windows shell
folders such as the desktop folder, start menu folder, and personal document
folder, using the WshSpecialFolders object. |
The
following table describes the methods associated with the WshShell object.
Method |
Description |
CreateShortcut |
Creates a WshShortcut object and
returns it. |
ExpandEnvironmentStrings |
Expands a PROCESS environment
variable and returns the result string. |
Popup |
Pops up a message box window
containing a specified message. |
RegDelete |
Deletes, from the registry, a
specified key or value. |
RegRead |
Returns a specified key or value
from the registry. |
RegWrite |
Sets a specified key or value in
the registry. |
Run |
Creates a new process that
executes a specified command with a specified window style. |
WshShell.Environment
The Environment property returns the WshEnvironment object.
Syntax
WshShell.Environment
( [strType]) = objWshEnvironment
Remarks
If strType specifies where the environment variable resides, possible values
are "System," "User," "Volatile," and
"Process." If strType is not supplied, this method retrieves the
system environment variables in Windows NT or the process environment
variables in Windows 95. For Windows 95, only "Process" is
supported in the strType parameter. The following variables are provided with
the Windows operating system. Scripts can also get environment variables that
were set by other applications.
Name |
Description |
NUMBER_OF_PROCESSORS |
Number of processors running on
the machine |
PROCESSOR_ARCHITECTURE |
Processor type of the user's
workstation |
PROCESSOR_IDENTIFIER |
Processor ID of the user's
workstation |
PROCESSOR_LEVEL |
Processor level of the user's
workstation |
PROCESSOR_REVISION |
Processor version of the user's
workstation |
OS |
Operating system on the user's
workstation |
COMSPEC |
Executable for command Command
Prompt (typically cmd.exe) |
HOMEDRIVE |
Primary local drive (typically
the C drive) |
HOMEPATH |
Default directory for users (on
Windows NT this is typically \users\default |
PATH |
PATH environment variable |
PATHEXT |
Extensions for executable files
(typically .com, .exe, .bat, or .cmd) |
PROMPT |
Command prompt (typically $P$G) |
SYSTEMDRIVE |
Local drive on which system
directory resides (e.g., c:\) |
SYSTEMROOT |
System directory (e.g.,
c:\winnt). This is the same as WINDIR |
WINDIR |
System directory (e.g.,
c:\winnt). This is the same as SYSTEMROOT |
TEMP |
Directory for storing temporary
files (e.g., c:\temp). User, Volatile |
TMP |
Directory for storing temporary
files (e.g., c:\temp). User, Volatile |
Example
'
Retrieve the NUMBER_OF_PROCESSORS system environment variable
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
See Also
WshEnvironment
object
WshShell.SpecialFolders
The SpecialFolders property provides the WshSpecialFolders object for accessing
Windows shell folders such as the desktop folder, start menu folder, and
personal document folder.
Syntax
WshShell.SpecialFolders
= objWshSpecialFolders
Example
' This
code fragment shows how to access the desktop folder
Set WshShell = Wscript.CreateObject("Wscript.Shell")
MsgBox "Your desktop is " &
WshShell.SpecialFolders("Desktop")
See Also
WshSpecialFolders
object
WshShell.CreateShortcut
The CreateShortcut method creates a WshShortcut object and returns it. If the
shortcut title ends with ".URL," a WshURLShortcut object is created.
Syntax
WshShell.CreateShortcut(strPathname)
= objShortcut
Example
' This
code fragment creates a shortcut
' to the currently executing script
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")
oShellLink.TargetPath = Wscript.ScriptFullName
oShellLink.Save
Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")
oUrlLink.TargetPath = "http://www.microsoft.com"
oUrlLink.Save
See Also
WshShortcut
object, WshUrlShortcut object
WshShell.ExpandEnvironmentStrings
The ExpandEnvironmentStrings method expands the PROCESS environment variable in
strString and returns the result string. Variables are enclosed by the
"%" character.
The
environment variable name is not case-sensitive.
Syntax
WshShell.ExpandEnvironmentStrings(strString)
= strExpandedString
Example
MsgBox
"Prompt is " &
WshShell.ExpandEnviromentStrings("%PROMPT%")
WshShell.Popup
The Popup method displays a popup message box window that contains the message
contained in strText. The window title of this message box is specified by
strTitle. If strTitle is omitted, the window title is "Windows Scripting
Host."
Syntax
WshShell.Popup(strText,
[natSecondsToWait], [strTitle], [natType]) = intButton
Remarks
If natSecondsToWait is supplied and its value is greater than zero, the message
box window will be closed after natSecondsToWait seconds.
The
meaning of natType is the same as in the Microsoft Win32® application
programming interface MessageBox function. The following table shows the value
and its meaning in natType. You can combine values in the following tables.
Button Types
Value |
Description |
0 |
Show [OK] button |
1 |
Show [OK] and [Cancel] buttons |
2 |
Show [Abort], [Retry] and
[Ignore] buttons |
3 |
Show [Yes], [No] and [Cancel]
buttons |
4 |
Show [Yes] and [No] buttons |
5 |
Show [Retry] and [Cancel]
buttons |
Icon Types
Value |
Description |
16 |
Show "Stop Mark" icon |
32 |
Show "Question Mark"
icon |
48 |
Show "Exclamation
Mark" icon |
64 |
Show "Information Mark"
icon |
The
preceding two tables do not cover all values for natType. For a complete list,
see the Win32 documentation.
The
return value intButton denotes the number of the button that the user clicked.
If the user does not click a button before natSecondsToWait seconds, intButton
is set to -1.
Value |
Description |
1 |
[OK] button |
2 |
[Cancel] button |
3 |
[Abort] button |
4 |
[Retry] button |
5 |
[Ignore] button |
6 |
[Yes] button |
7 |
[No] button |
Example
Set
WshShell = Wscript.CreateObject("Wscript.Shell") WshShell.Popup
"Where do you want to go today?"
See Also
Wscript.Echo
method
WshShell.RegDelete
The RegDelete method deletes from the registry the key or value named strName.
Syntax
WshShell.RegDelete
strName
Parameters
strName
If
strName ends with a backslash character (\), this method deletes the key
instead of the value. The strName parameter must begin with one of following
root key names:
Short |
Long |
HKCU |
HKEY_CURRENT_USER |
HKLM |
HKEY_LOCAL_MACHINE |
HKCR |
HKEY_CLASSES_ROOT |
|
HKEY_USERS |
|
HKEY_CURRENT_CONFIG |
Example
Set
WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegDelete "HKCU\ScriptEngine\Value" ' Delete value
"Value"
WshShell.RegDelete "HKCU\ScriptEngine\Key\" ' Delete key
"Key"
See Also
WshShell.RegRead
method, WshShell.RegWrite method
WshShell.RegRead
The RegRead method returns the registry key or value named by strName.
Syntax
WshShell.RegRead(strName)
= strValue
Parameters
strName
If
strName ends with the backslash character (\), this method returns the key
instead of the value. StrName must begin with one of following root key names:
Short |
Long |
HKCU |
HKEY_CURRENT_USER |
HKLM |
HKEY_LOCAL_MACHINE |
HKCR |
HKEY_CLASSES_ROOT |
|
HKEY_USERS |
|
HKEY_CURRENT_CONFIG |
Remarks
The RegRead method supports only REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BINARY,
and REG_MULTI_SZ data types. If the registry has other data types, RegRead
returns DISP_E_TYPEMISMATCH.
Example
Set
WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegRead("HKCU\ScriptEngine\Val") ' Read from value
"Val"
WshShell.RegRead("HKCU\ScriptEngine\Key\") ' Read from key
"Key"
See Also
WshShell.RegDelete
method, WshShell.RegWrite method
WshShell.RegWrite
The RegWrite method sets the registry key or value named by strName.
Syntax
WshShell.RegWrite
strName, anyValue, [strType]
Parameters
strName
If
strName ends with a backslash character (\), this method sets the key instead
of the value. StrName must begin with one of following root key names:
Short |
Long |
HKCU |
HKEY_CURRENT_USER |
HKLM |
HKEY_LOCAL_MACHINE |
HKCR |
HKEY_CLASSES_ROOT |
|
HKEY_USERS |
|
HKEY_CURRENT_CONFIG |
Remarks
RegWrite supports strType as REG_SZ, REG_EXPAND_SZ, REG_DWORD and REG_BINARY.
If another data type is passed as strType, RegWrite returns E_INVALIDARG.
RegWrite
automatically converts anyValue to a string when strType is REG_SZ or
REG_EXPAND_SZ. If strType is REG_DWORD, anyValue is converted to an integer. If
strType is REG_BINARY, anyValue must be an integer.
Example
Set
WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\ScriptEngine\Value", "Some string
value"
WshShell.RegWrite "HKCU\ScriptEngine\Key\", 1 "REG_DWORD"
See Also
WshShell.RegDelete
method, WshShell.RegWrite method
WshShell.Run
The Run method creates a new process that executes strCommand with window style
intWindowStyle.
Syntax
WshShell.Run
(strCommand, [intWindowStype], [bWaitOnReturn])
Parameters
strCommand
Environment
variables within the strCommand parameter are automatically expanded.
bWaitOnReturn
If
bWaitOnReturn is not specified or FALSE, this method immediately returns to
script execution rather than waiting on the process termination.
If
bWaitOnReturn is set to TRUE, the Run method returns any error code returned by
the application.
If
bWaitOnReturn is not specified or is FALSE, Run returns an error code of 0
(zero).
Example
' This
fragment launches Notepad with the current executed script
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Run ("notepad " & Wscript.ScriptFullName)
WshShell.Run ("%windir%\notepad" & Wscript.ScriptFullName)
' This fragment returns the error code from the executed application
Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1,
TRUE)
WshNetwork Object
ProgID |
Wscript.WshNetwork |
Filename |
WSHom.Ocx |
CLSID |
F935DC26-1CF0-11d0-ADB9-00C04FD58A0B |
IID |
F935DC25-1CF0-11d0-ADB9-00C04FD58A0B |
The
following table describes the properties associated with the WshNetwork object.
Property |
Description |
ComputerName |
A string representation of the
computer name. |
UserDomain |
A string representation of the
user's domain name. |
UserName |
A string representation of the
user's name. |
The
following table describes the methods associated with the WshNetwork object.
Method |
Description |
AddPrinterConnection |
Maps a remote printer to a local
resource name. |
EnumNetworkDrives |
Returns the current network
drive mappings. |
EnumPrinterConnections |
Returns the current network
drive mappings. |
MapNetworkDrive |
Maps a share point to a local
resource name. |
RemoveNetworkDrive |
Removes the current resource
connection. |
RemovePrinterConnection |
Removes a current resource
connection. |
SetDefaultPrinter |
Sets the default printer. |
WshNetwork.ComputerName
The ComputerName property provides a string representation of the computer
name.
Syntax
WshNetwork.ComputerName
= strComputerName
WshNetwork.UserDomain
The UserDomain property provides a string representation of the user domain
name.
Syntax
WshNetwork.UserDomain
= strDomain
WshNetwork.UserName
The UserName property provides a string representation of the user name.
Syntax
WshNetwork.UserName
= strName
WshNetwork.AddPrinterConnection
The AddPrinterConnection method maps the remote printer specified by
strRemoteName to the local resource name strLocalName.
Syntax
WshNetwork.AddPrinterConnection
strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Parameters
strLocalName
Local
resource to map to.
strRemoteName
Remote printer to map.
bUpdateProfile
If
bUpdateProfile is supplied and its value is TRUE, this mapping is stored in the
user profile. strUser, strPassword.
If you
are mapping a remote printer using the credentials of someone other than
current user, you can specify strUser and strPassword.
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
WshNetwork.AddPrinterConnection "LPT1", "\\Server\Print1"
WshNetwork.EnumNetworkDrives
The EnumNetworkDrives method returns the current network drive mappings as a
WshCollection object. Items in this collection are local names and remote names.
Syntax
WshNetwork.EnumNetworkDrive
= objWshCollection
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Wscript.Echo oDrives.Item(0) = "Z:"
Wscript.Echo oDrives.Item(1) = "\\Server\Share"
See Also WshNetwork.MapNetworkDrive method,
WshNetwork.RemoveNetworkDrive method, WshCollection object
WshNetwork.EnumPrinterConnections
The EnumPrinterConnections method returns the current network drive mappings as
a WshCollection object. Items in this collection are local names and remote
names.
Syntax
WshNetwork.EnumPrinterConnections
= objWshCollection
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
Wscript.Echo oPrinters.Item(0) = "LPT1:"
Wscript.Echo oPrinters.Item(1) \\Server\Printer1"
See Also
WshNetwork.AddPrinterConnection
method, WshNetwork.RemovePrinterConnection method, WshCollection object.
WshNetwork.MapNetworkDrive
The MapNetworkDrive method maps the share point specified by strRemoteName to
the local resource name strLocalName.
Syntax
WshNetwork.MapNetworkDrive
strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword]
Parameters
strLocalName
Local
resource name to map to.
strRemoteName
Remote
share to map.
bUpdateProfile
If
bUpdateProfile is supplied and its value is TRUE, this mapping is stored in the
user profile.
strUser,
strPassword
If you
are mapping the share point using the credentials of someone other than current
user, you can specify strUser and strPassword.
Example Set WshNetwork =
Wscript.CreateObject("Wscript.Network")
WshNetwork.MapNetworkDrive "Z:", "\\Server\Share"
WshNetwork.RemoveNetworkDrive
The RemoveNetworkDrive method removes the current resource connection denoted
by strName.
Syntax
WshNetwork.RemoveNetworkDrive
strName, [bForce], [bUpdateProfile]
Parameters
strName
The
strName parameter can be either a local name or a remote name, depending on how
the drive is mapped. If the drive has a mapping between a local name (drive
letter) and a remote name, then strName must be set to the local name. If the
network path does not have a local name (drive letter) mapping, then strName
must be set to the remote name.
bForce
If
bForce is supplied and its value is TRUE, this method removes the connections
whether the resource is used or not.
bUpdateProfile
If
bUpdateProfile is supplied and its value is TRUE, this mapping is stored in the
user profile.
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
' Local name mapped to remote share
WshNetwork.MapNetworkDrive "Z:", "\\Server\Share"
WshNetwork.RemoveNetworkDrive "Z:"
' No local name mapping, such as:
' NET USE \\Server\ShareWshNetwork.RemoveNetworkDrive
"\\Server\Share"
WshNetwork.MapNetworkDrive "\\Server\Share"
WshNetwork.RemoveNetworkDrive "\\Server\Share"
WshNetwork.RemovePrinterConnection
The RemovePrinterConnection method removes the current resource connection
denoted by strName.
Syntax
WshNetwork.RemovePrinterConnection
strName, [bForce], [bUpdateProfile]
Parameters
strName
The
strName parameter can be either a local name or a remote name, depending on how
the printer is connected. If the printer has a mapping between a local name
(for examle, LPT1) and a remote name, then strName must be set to the local
name. If the network path does not have a local name mapping, then strName must
be set to the remote name.
bForce
If
bForce is supplied and its value is TRUE, this method removes the connection
whether the resource is used or not.
bUpdateProfile
If
bUpdateProfile is supplied and its value is TRUE, this mapping is stored in the
user profile.
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
' Local name mapped to remote share
WshNetwork.RemovePrinterConnection "LPT1:"
' No local name mapping. e.g. NET USE "\\Server\Printer1"
WshNetwork.RemovePrinterConnection "\\Server\Printer1"
WshNetwork.SetDefaultPrinter
The SetDefaultPrinter method sets default print to the remote printer specified
by strPrinterName.
Syntax
WshNetwork.SetDefaultPrinter
strPrinterName
Parameters
strPrinterName
Remote
printer name to set as default, such as "\\Server\Printer1". Note
that strPrinterName cannot be a local name such as "LPT1:".
WshCollection Object
The WshCollection object is not exposed directly. For access to it, use
WshNetwork.EnumNetworkDrives or WshNetwork.EnumPrinterConnections.
ProgID |
N/A |
Filename |
WSHom.Ocx |
CLSID |
F935DC24-1CF0-11d0-ADB9-00C04FD58A0B |
IID |
F935DC23-1CF0-11d0-ADB9-00C04FD58A0B |
The
following table describes the properties associated with the WshCollection
object.
Property |
Description |
Item |
Provides the nth enumerated item
as a string. |
Count |
The number of enumerated items. |
length |
The number of enumerated items
(JScript). |
WshCollection.Item
The Item property provides the natIndexth enumerated item as a string. It is
the default property.
Syntax
WshCollection(natIndex)
= strEnumeratedItem
WshCollection.Item(natIndex) = strEnumeratedItem
Example
Set
WshNetwork = Wscript.CreateObject("Wscript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Wscript.Echo oDrives.Item(0) = " "Z:"
Wscript.Echo oDrives.Item(1) = "\\Server\Share"
WshCollection.Count
The Count property provides the number of enumerated items.
Syntax
WshCollection.Count
= natNumberOfItemsl
See Also
WshCollection.length
property
WshCollection.length
The length property provides the number of enumerated items. This property
provides the same functionality as the Count property and is provided for
compatibility with JScript.
Syntax
WshCollection.length
= natNumberOfItems
See Also
WshCollection.Count
property
WshEnvironment Object
The WshEnvironment object is not exposed directly. For access to it, use the
WshShell.Environment property.
ProgID |
N/A |
Filename |
WSHom.Ocx |
CLSID |
|
IID |
|
The
following table describes the properties associated with the WshEnvironment
object.
Property |
Description |
Item |
Gets or sets the value of a
specified environment variable. |
Count |
The number of enumerated items. |
length |
The number of enumerated items
(JScript). |
The
following table describes the method associated with the WshEnvironment object.
Method |
Description |
Remove |
Deletes a specified environment
variable. |
WshEnvironment.Item
The Item property sets or returns the value for the strName environment
variable. It is the default property.
Syntax
WshEnvironment.Item("strName")
= strValue
WshEnvironment("strName") = strValue
Example
' Get
the value of NUMBER_OF_PROCESSORS environment variable
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
' Set the value of EXAMPLE volatile environment variable to A_VALUE
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshEnv = WshShell.Environment("VOLATILE")
WshEnv("EXAMPLE")= "A_VALUE"
' List all system environment variables
Set WshShell = Wscript.CreateObject("Wscript.Shell")
For Each strVarName In WshShell.Environment("SYSTEM")
MsgBox strVarName
Next
See Also
WshShell.Environment
property
WshEnvironment.Count
The Count property provides the number of enumerated items.
Syntax
WshEnvironment.Count
= natNumberOfItems
See Also
WshEnvironment.length
property
WshEnvironment.length
The length property provides the number of enumerated items. This property
provides the same functionality as the Count property and is provided for
compatibility with JScript.
Syntax
WshEnvironment.length
= natNumberOfItems
See Also
WshEnvironment.Count
property
WshEnvironment.Remove
The Remove method deletes the environment variable specified by strName.
Syntax
WshEnvironment.Remove(strName)
Example
' Delete
the EXAMPLE volatile environment variable
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.Environment("VOLATILE").Remove("EXAMPLE")
' Delete
multiple variables
Set WshUsrEnv = Wscript.Environment("User")
WshUsrEnv.Remove("EXAMPLE_1")
WshUsrEnv.Remove("EXAMPLE_2")
WshUsrEnv.Remove("EXAMPLE_3")
WshUsrEnv.Remove("EXAMPLE_4")
See Also
WshShell.Environment
property
WshShortcut Object This object is not exposed directly. To get the
WshShortcut object, use the WshShell.CreateShortcut method.
ProgID |
N/A |
Filename |
WSHom.Ocx |
CLSID |
F935DC28-1CF0-11d0-ADB9-00C04FD58A0B |
IID |
F935DC27-1CF0-11d0-ADB9-00C04FD58A0B |
The following
table describes the properties associated with the WshShortcut object.
Property |
Description |
Arguments |
Parameters to a shortcut object. |
Description |
A description of a shortcut
object. |
Hotkey |
The hotkey of a shortcut object. |
IconLocation |
The icon location of a shortcut
object. |
TargetPath |
The target path of a shortcut
object. |
WindowStyle |
The window style of a shortcut
object. |
WorkingDirectory |
The working directory of a
shortcut object. |
The
following table describes the method associated with the WshShortcut object.
Method |
Description |
Save |
Saves a shortcut into a
specified file system. |
WshShortcut.Arguments
The Arguments property provides parameters to a shortcut object.
Syntax
WshShortcut.Arguments
= strArguments
WshShortcut.Description
The Description property provides a description of a shortcut object.
Syntax
WshShortcut.Description
= strDescription
WshShortcut.FullName
The FullName property provides the full path of a shortcut object.
Syntax
WshShortcut.FullName
= strFullName
WshShortcut.Hotkey
The HotKey property provides the hotkey of a shortcut object. A hotkey is a
keyboard shortcut to start or switch to a program.
Syntax
WshShortcut.HotKey
= strHotKey
Remarks
BNF syntax of strHotKey is as follows:
Hotkey ::= modifier* keyname
modifier ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"
keyname ::= "A" .. "Z" |
"0".. "9" |
"Back" | "Tab" | "Clear" | "Return" |
"Escape" | "Space" | "Prior" | ...
Complete
key names are found in WINUSER.H. Hotkey is case-insensitive.
Hotkeys
can only activate shortcuts located on the Windows-based desktop or the Windows
Start menu. The Windows Explorer does not accept ESC, ENTER, TAB, SPACE, PRINT
SCREEN or BACKSPACE, even though WshShortcut.Hotkey supports these in compliance
with the Win32 API. It is therefore recommended that you not use these keys in
your shortcut.
Example
Set
WshShell = Wscript.CreateObject("Wscript.WshShell")
strDesktop = WshShell.SpecialFolders("Desktop")
Set oMyShortcut = WshShell.CreateShortcut(strDesktop &
"\a_key.lnk")
OMyShortcut.TargetPath = "%windir%\notepad.exe"
oMyShortCut.Hotkey = "ALT+CTRL+F"
oMyShortCut.Save
Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F"
See Also
WshSpecialFolders
object
WshShortcut.IconLocation
The IconLocation property provides the icon location of a shortcut object. The
format of the icon location should be "Path,index".
Syntax
WshShortcut.IconLocation
= strIconLocation
WshShortcut.TargetPath
The TargetPath property provides the target path of a shortcut object.
Syntax
WshShortcut.TargetPath
= strTargetPath
WshShortcut.WindowStyle
The WindowStyle property provides the window style of a shortcut object.
Syntax
WshShortcut.WindowStyle
= natWindowStyle
WshShortcut.WorkingDirectory
The WorkingDirectory property provides the working directory of a shortcut
object.
Syntax
WshShortcut.WorkingDirectory
= strWorkingDirectory
WshShortcut.Save
The Save method saves the shortcut object to the location specified by the
FullName property.
Syntax
WshShortcut.Save
WshSpecialFolders Object
This object is not exposed directly. To get the WshSpecialFolders object, use
the WshShell.SpecialFolders property.
ProgID |
N/A |
Filename |
WSHom.Ocx |
CLSID |
|
IID |
|
The
following table describes the properties associated with the WshSpecialFolders
object.
Property |
Description |
Item |
The full path of the specified
special folder (default) |
Count |
The number of enumerated items. |
length |
The number of enumerated items
(JScript). |
WshSpecialFolders.Item
The Item property returns the full path for the special folder specified by
strFolderName. It is the default property.
Syntax
WshShell.SpecialFolders.Item("strFolderName")
= strFolderPath
WshShell.SpecialFolders("strFolderName") = strFolderPath
Remarks
WshShell.SpecialFolders("strFolderName") returns NULL if the
requested folder (strFolderName) is not available. For example, Windows 95 does
not have an AllUsersDesktop folder and returns NULL if strFolderName =
AllUsersDesktop
The
following special folders are provided with the Windows 95 and Windows NT
4.0 operating systems:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
StartupB
Templates
Example
' This
fragment returns the full path for the Windows Desktop folder
Set WshShell = Wscript.CreateObject("Wscript.Shell")
StrMyDesktop = WshShell.SpecialFolders("Desktop")
' List all special folders
For Each strFolder In WshShell.SpecialFolders
MsgBox strFolder
Next
See Also
WshShell.SpecialFolders
property
WshSpecialFolders.Count
The Count property provides the number of enumerated items.
Syntax
WshSpecialFolders.Count
= natNumberOfItems
See Also
WshSpecialFolders.length
property
WshSpecialFolders.length
The length property provides the number of enumerated items. This property
provides the same functionality as the Count property and is provided for
compatibility with Microsoft JScript.
Syntax
WshSpecialFolders.length
= natNumberOfItems
See Also
WshSpecialFolders.Count
property
WshUrlShortcut Object
This object is not exposed directly. To get the WshUrlShortcut object, use the
WshShell.CreateShortcut method.
ProgID |
N/A |
Filename |
WSHom.Ocx |
CLSID |
|
IID |
|
The
following table describes the properties associated with the WshUrlShortcut
object.
Property |
Description |
FullName |
The full path of a URL shortcut
object. |
TargetPath |
The target path of a URL
shortcut object. |
The
following table describes the method associated with the WshUrlShortcut object.
Property |
Description |
Save |
Saves a shortcut into a
specified file system. |
WshUrlShortcut.FullName
The FullName property provides the full path of a shortcut object.
Syntax
WshUrlShortcut.FullName
= strFullName
WshUrlShortcut.TargetPath
The TargetPath property provides the target path of a shortcut object.
Syntax
WshUrlShortcut.TargetPath
= strTargetPath
WshUrlShortcut.Save
The Save method saves a shortcut to the location specified by the FullName
property.
Syntax
WshUrlShortcut.Save
For the
latest information on Windows NT Server, check out our World Wide Web site
at http://www.microsoft.com/ntserver or the Windows NT
Server Forum on the Microsoft Network (GO WORD: MSNTS).
<!-- end content -->