For a list of new functions added to Winbatch 98/99, see: New Winbatch 98/99 Functions
For a list of new WIL networking functions added to Winbatch 98/99, see: New WIL Extender Functions 98/99
Winbatch now comes with a GUI front-end editor for working with your Winbatch script files. The Winbatch Studio editor is customized specifically for the needs of Winbatch users. Now create scripts (with color coding to help distinguish between functions, constants and variables), debug (using breakpoints and watch windows), and compile your code from one easy-to-use integrated interface.
If you're already familiar with Winbatch, you know that Winbatch has over 400 core functions, and then hundreds of additional special-purpose functions available in the WIL Extender DLLs. These DLLs are free add-ons to Winbatch but are not automatically included in the main WIL library, so as to save disk space and file sizes. They are included on your CD and/or are available for download.So if you are looking for additional functionality that is not included in the main Windows Interface Language.HLP file (or the corresponding manual), then take a look at the WIL extenders. They are powerful free addons.
Several new extenders are available from the WIL Extenders area of the "Download our Software" page Download, including the HTML Dialog extender (for creating dialogs with bitmaps and animated gifs in them), the Control Manager extender (gives you behind-the-scenes control over windows), the Zipper extender (for zipping and unzipping files), the Postie extender (for sending uuencoded and mime attachments, posting to newsgroups, SMTP/IMAP4 protocol posting and retrieving), and the WinInet extender (for FTP and HTTP functions).
Unlimited Script Size
WinBatch can now run scripts larger than 64K.More Memory for Strings
In 32-bit version, changed memory allocation for strings to be dynamic.This means that you should no longer receive an error 3096 ("Out of memory for strings"), unless Windows itself is completely out of memory (highly unlikely).
Expanded List Capacity
In 32-bit version, increased limit for FileItemize and DirItemize lists from 32K to 1MB.New String Sorting Algorithm
In 32-bit version, changed the way the following string sorting andcomparison functions operate:
BinarySortItemSort
ItemSortNc
StrCmp
StriCmp
>, >=, <, and <= (operators)
Previously, they were sorting (or comparing) strings on a character-by-character basis. They now perform a "word sort", which sorts strings based on their collation sequence. Hyphens and apostrophes are ignored, and all other non-alphanumeric characters are sorted before any alphanumeric character.
Changed ItemSortNc so that, if the strings being sorted are the same on a case-insensitive basis, they will then be sorted on a case-sensitive basis.
OLE
OLE functions now support in-process servers.Fixed an intermittent OLE crash problem.
OLE now supports properties with parameters.
New Mouse Control Functions
MouseCoords(s:win-name, s:child-win)
Returns coordinates of the mouse within a window.
This function returns the x and y coordinates of the mouse cursor, relative to the window specified by "win-name" and "child-win". These coordinates can be used by the MouseMove function. See MouseMove for information on these parameters. The coordinates are returned as a space-delimited string, in the form: "x y"
New request # for MouseInfo:
Req# Return value7 returns mouse coordinates relative to the bounding rectangle of the window under the cursor, in virtual (1000x1000) screen units.
Fixed a problem with MouseClick not sending the correct types of clicks.
New Error Message when Script is Terminated by User
When a WIL script is manually terminated by the user (eg, by pressingCtrl-Break), it now displays the line that was being processed.UNC File Name Problem Fixed
Fixed a problem with several file functions, which occured if the currentdirectory was a UNC of the form "\\SERVER\SHARE\DIR[\...]" (not just
"\\SERVER\SHARE"), and the specified file name or wildcard did not contain
path information. This could cause a "File not found" type of error.
Binary Functions Fixed
Fixed problem with some of the Binary[..] functions crashing (instead of returning an error) if an offset < 0 was specified.Dialogs
Added additional option to IntControl(62) for setting general purpose dialog properties:P1 -2 Don't activate WIL dialog windows at all.
In the Dialog function, ampersands ("&") are now once again being converted to underscores in static text and varying text fields.
New Behavior of WinBatch Script located in the Windows Taskbar Tray
Added additional option for IntControl(1007):
p1 of 3 Suspends script until user clicks on the tray icon.
This can be used at any point after a WinBatch script has already been
placed in the tray (with p1 == 1). When the user clicks on the tray
icon, it will return one of the click values as listed for p1 == 0.
File Extraction from EXE Behavior
The compiler will now unconditionally extract embedded files (in the "Otherfiles" category), whether or not they already exist. They will be extracted
to the directory where the large EXE is located, or to the Windows directory
if the EXE is being run from a floppy disk or CD-ROM. As before, extender
DLL's will not be extracted if they already exist in the EXE directory or on
the path.
Maximum size of scripts that can be compiled
Compiler can now compile scripts larger than 64K.
User and Group Management
wntUserExist(s:server-name, s:user-name)
Determines whether a user exists. "server-name" is the UNC name of the server on which the function will execute (eg, "\\MYSERVER"), or a blank string ("") to indicate the current machine. "user-name" is the name of a user who may have an account on "server-name".Returns @TRUE if the specified user exists, @FALSE otherwise.
wntCurrUsers(s:server-name, s:flags)
Lists users currently logged into a server. "server-name" is the UNC name of the server on which the function will execute (eg, "\\MYSERVER"), or a blank string ("") to indicate the current machine. Returns a tab-delimited list. "flags" specifies the format of the returned names, and can be one of the following:0 account (eg, "johndoe")
1 domain\account (eg, "OFFICE\johndoe")
wntFileUsers(s:server-name, s:file-pathname)
Lists network users who have a file open. "server-name" is the UNC name of the server on which the function will execute (eg, "\\MYSERVER"), or a blank string ("") to indicate the current machine. Returns a tab-delimited list of user names. "file-pathname" is a fully-qualified file name (eg, "C:\DOC\MYFILE.TXT"). NOTE: The file name MUST be fully-qualified.
wntAcctInfo(s:server-name, s:account-name, i:request)
Returns information about a user account. Returns a string. "server-name" is the UNC name of the server on which the function will execute (eg, "\\MYSERVER"), or a blank string ("") to indicate the current machine. "account-name" is the name of a user who has an account on "server-name". "request" specifies the information to be returned, and can be one of the following:0 Domain where the specified account name is found1 SID (security identifier), in standard text form
wntGroupAdd(s:server-name, s:group-name, i:group-type, s:comment)
Creates a user group. "server-name" is the UNC name of the server on which the function will execute (eg,"\\MYSERVER"), or a blank string ("") to indicate the current machine. "group-name" is the name of the group to be created. "group-type" can be @LOCALGROUP or @GLOBALGROUP. "comment" is an optional description of the group, or "" for none. Returns 1.wntGetDrive(s:net-resource)
Lists local drives mapped to a UNC. "net-resource" specifies a UNC, in the form "\\SERVER\SHARE". It is not case-sensitive, but must otherwise EXACTLY match the UNC name to which the drive(s) are mapped (eg, must not have a trailing backslash). Returns a tab-delimited list of drives (eg, "H: W:").wntSvcCfgGet(s:server, s:service-name, i:flags, i:request)
Gets a configuration parameter for a service. "request" specifies the parameter to be returned, and can be one of the following:
wntSvcCfgSet(s:server, s:service-name, i:flags, i:request, s/i:value)
Changes a configuration parameter for a service.
wntEventWrite(s:server-name, s:source-name, i:type/category, i:event-id, s:description)
Writes an entry to an NT event log.
wntAuditAdd(server-name, resource/share-name, user/group name, object-type, access-string)
Adds audit records for a resource.
wntAuditDel(server-name, resource/share-name, user/group name, object-type)
Removes audit records from a resource.
wntAuditGet(server-name, resource/share-name, user/group name, object-type)
Returns audit records for a resource.
wntAuditList(s:server-name, s:resource/share-name, i:object-type, i:flag)
Returns list of users who have audit records for a resource.
w95FileUsers(s:server-name, s:file-pathname)
Lists network computers who have a file open.
w95GetDrive(s:net-resource)
Lists local drives mapped to a UNC.
w95FileClose
now closes all connections to a file, instead of just the first one. It also now returns the number of connections which existed (and were closed) for the specified file.
Fix: Functions which return a tab-delimited list no longer include a tab at
the end of the list.
w9xOwnerGet(s:server-name, i:reg-key, s:resource-name, i:object-type, i:flag)
Returns the owner of an object.
n4GetUserName(s:context)
Returns the name of the currently logged-in user. "context" is a Directory Services context, or "" for the default context.This function returns the name of the currently logged-in user, relative to "context". This function uses Directory Services (unlike n4GetUser).
n4ObjGetVal(s:context, s:object, s:attribute)
Returns values for an object attribute.This function is similar to n4ObjectProps, but returns more detail for
value types which are structures. For example, a FAX number type is
a structure which contains a phone number field and an optional
parameter field. n4ObjGetVal returns both fields, whereas n4ObjectProps
only returns the phone number.
n4ObjOptions(s:value-delim, s:field-delim, s:null-sub, i:flags, s:reserved)
Specifies options for n4ObjGetVal.
Fixed xMessageBox so the message box will come the foreground in Windows
98 and NT 5.0.