Chapter 11
Corel® PerfectScript® 8 Programming Commands
Three new macro commands have been added: MacroCompile, MacroIsCompiled, and MacroPlay. See online Help for information about these commands. Also, the following commands have been changed: DialogAddControl, DialogDelete, FileFind, FileNameDialog, GetFileAttributes, MacroInfo, OLEAutomation, and SetFileAttributes. See online Help for information about these commands.
RadiansToDegrees
Purpose
Convert an angle in radians to degrees.
Return Value
Angel in radians converted to degrees.
Syntax
numeric := RadiansToDegrees (Radians: numeric)
Parameters
Radians
numeric The angle in radians
Randomize
Purpose
Randomize a random number seed.
Return Value
Randomized number.
Syntax
numeric := Randomize ([Seed: numeric])
Parameters
Seed
numeric (optional) The seed value that starts the random number generator. If missing, the current system clock is used to pick a starting seed.
RandomNumber
Purpose
Get a random number in a range.
If only a Minimum or Maximum value is given (see Parameters below), a number between 0.0 and that value is returned. The range includes 0.0; it does not include the value. If no values are given, a number between 0.0 and 1.0 is returned. The range includes 0.0; it does not include 1.0.
Return Value
Random number in a range.
Syntax
numeric := RandomNumber ([Minimum: numeric]; [Maximum: numeric])
Parameters
Minimum
numeric (optional) Minimum number to generate. Default: 0.0
Maximum
numeric (optional) Maximum number to generate. Default: 1.0
RandomSeed
Purpose
Get the current seed of the random number generator.
Return Value
Value of the random seed. This seed is used to generate the next random number, after which the random seed is updated to a new value.
Syntax
numeric := RandomSeed ()
Real
Purpose
Pass a value as an 8-byte float (DLL call in- line parameter function). See DLLCall.
Return Value
numeric
Syntax
numeric := Real (<Value> numeric)
RegionAddListItem
Purpose
Add an item to a list box, combination box, popup button, or custom control.
The only way to add a list item to a custom control is with RegionAddListItem, or by sending the custom control a message. DialogAddListItem does not work on custom controls.
Controls added with DialogAddControl are considered custom controls. The user is responsible for the use of these controls.
Example
Appendix A: 8065
Return Value
Index (position) of the added item, or the index of the last item in a repeating group if successful, or -1 if not.
Syntax
numeric := RegionAddListItem (NamedRgn: string; {Item: string})
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
Item
string (repeating parameter) One or more list items separated by a semicolon.
RegionAddListItemByIndex
Purpose
Add an item to a list box, combination box, popup button, or custom control, at a specified index. Indexes are 1 based.
The only way to add a list item to a custom control is with RegionAddListItem or RegionAddListItemByIndex, or by sending the custom control a message. DialogAddListItem does not work on custom controls.
Controls added with DialogAddControl are considered custom controls. The user is responsible for the use of these controls.
Return Value
The index (position) of the added item. Indexes are 1 based.
Syntax
numeric := RegionAddListItemByIndex (NamedRgn: string; Item: string; Index: numeric)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Item
string The item to add.
Index
numeric The index (position) where to add an item. Indexes are 1 based.
RegionEnableWindow
Purpose
Enable or disable mouse and keyboard input to a dialog box or control.
Example
Appendix A: 8066
Return Value
If State is specified, return the previous state of the named region.
Enabled!
Named region was enabled.
Disabled!
Named region was disabled.
If State is left off, return the current state of the named region.
Syntax
enumeration := RegionEnableWindow (NamedRgn: string; [State: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period. If a control ID is not specified, State affects the entire dialog box.
State
enumeration (optional) Set mouse and keyboard input state. If left off, the current state of the named region is returned.
Disable!
Disable named region.
Enable!
Enable named region.
RegionGetCheck
Purpose
Report the state of a check box control.
Example
Appendix A: 8067
Return Value
Up!
Down!
Checked!
Unchecked!
Indeterminate!
Gray!
Same as Indeterminate!.
Syntax
enumeration := RegionGetCheck (NamedRgn: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionGetClass
Purpose
Return the class name (Windows) of a named region.
Example
Appendix A: 8105
Return Value
Windows class name.
Syntax
string := RegionGetClass (NamedRgn: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
RegionGetHandle
Purpose
Return the window handle of a named region.
Example
Appendix A: 8095
Return Value
If the named region does not exist, use OnError to handle error message.
Syntax
numeric := RegionGetHandle (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
If the control ID is not specified, the Window handle of the dialog box is returned.
RegionGetListContents
Purpose
Retrieve all the items in a specified list control.
Return Value
Text of items separated by the item separator.
Syntax
string := RegionGetListContents (NamedRgn: string; [ItemSeparator: string])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region (list control). Enclose IDs in double quotation marks, separated by a period.
ItemSeparator
string (optional) String used to separate items in the return value. If missing, ";" is used.
RegionGetListCount
Purpose
Return the number of items in a list or combo box, or pop-up button.
Example
Appendix A: 8100
Return Value
numeric
Syntax
numeric := RegionGetListCount (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionGetListItem
Purpose
Return the index of an item in a list control.
Return Value
Index (position) of a list item, or -1 on error.
Syntax
numeric := RegionGetListItem (NamedRgn: string; Item: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Item
string The list item.
RegionGetListItemByIndex
Purpose
Return an item from a list control by its index.
Return Value
List item text.
Syntax
string := RegionGetListItemByIndex (NamedRgn: string; Index: numeric)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Index
numeric The index (position) of a list item.
RegionGetListSelectedCount
Purpose
Return count of the selected items in a list box, combination box, or custom control.
Return Value
The number of selected items.
Syntax
numeric := RegionGetListSelectedCount (NamedRgn: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
RegionGetModified
Purpose
Determine whether an edit control’s contents have been modified (DialogAddCounter, DialogAddDate, DialogAddEditBox, DialogAddFilenameBox). See RegionSetModified.
Example
Appendix A: 8101
Return Value
True if an edit control has been modified, False if not.
Syntax
boolean := RegionGetModified (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionGetPosition
Purpose
Returns size and position information about a named region. Missing optional parameters are not returned.
Return Value
True if the specified region exists, False if not.
Syntax
boolean := RegionGetPosition (NamedRgn: string; [LeftVar: variable]; [TopVar: variable]; [WidthVar: variable]; [HeightVar: variable]; [Units: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
LeftVar
variable (optional) Variable to receive the coordinate of the left edge of the region.
TopVar
variable (optional) Variable to receive the coordinate of thp edge of the region.
WidthVar
variable (optional) Variable to receive the width of the region.
HeightVar
variable (optional) Variable to receive the height of the region. Units: enumeration (optional)
Type of units to return the measurements in. If missing, and the region is a region on a macro dialog, DialogUnits! is used. Otherwise, if missing, ScreenUnits! is used.
ScreenUnits!
Values are returned in screen units (pixels) relative to the region’s parent.
DialogUnits!
Values are returned in dialog units relative to the region’s parent.
RegionGetSelectedText
Purpose
Returns selected text in a control such as a list box, combination box, or counter. To return a control’s full text use RegionGetWindowText.
Example
Appendix A: 8068
Return Value
Selected text. If no text is selected, an empty string ("") is returned.
Syntax
string := RegionGetSelectedText (NamedRgn: string; [ItemSeparator: string])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
ItemSeparator
string (optional) A string to insert between sub-string items. If missing, a semicolon is used.
RegionGetWindowText
Purpose
Get caption bar, static text, or edit box text.
Example
Appendix A: 8069
Return Value
Specified text.
Syntax
string := RegionGetWindowText (NamedRgn: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period. To get the caption bar text, leave off the Control ID or named region. For example, vText := RegionGetWindowText ("Dialog1").
RegionIsEnabled
Purpose
Indicates whether a specified region is enabled.
Return Value
True if the named region is enabled, False if not.
Syntax
boolean := RegionIsEnabled (NamedRgn: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region (list control). Enclose IDs in double quotation marks, separated by a period.
RegionIsVisible
Purpose
Determine the visibility state of a region or window.
Example
Appendix A: 8094
Return Value
True if visible, False if not. Window’s WS_VISIBLE flag determines the return value, which can be nonzero even if the window is hidden by other windows. See your Windows 95 documentation for more information.
Syntax
boolean := RegionIsVisible (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionMoveWindow
Purpose
Move and/or resize a dialog box or control.
Example
Appendix A: 8070
Syntax
RegionMoveWindow (NamedRgn: string; [Left: numeric]; [Top: numeric]; [Width: numeric]; [Height: numeric]; [Units: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period. To move or resize the dialog box, leave off the Control ID or named region. For example, RegionMoveWindow ("Dialog1"; ...)
Left
numeric (optional) The number of dialog units from the left side of the screen to the left side of the dialog box, or the number of dialog units from the left side of the dialog box to the left side of the control. If missing, no change is made.
Top
numeric (optional) The number of dialog units from the top of the screen to the top of the dialog box, or the number of dialog units from the top of the dialog box to the top of the control. If missing, no change is made.
Width
numeric (optional) The width of the dialog box or control in dialog units. If missing, no change is made.
Height
numeric (optional) The height of the dialog box or control in dialog units. If missing, no change is made.
Units
enumeration (optional) Specifies the type of units used by Left, Top, Width, and Height parameters. If missing, AbsolutePosition! is used with units appropriate to the windows type. If the window is a named region on a user-defined dialog, DialogUnits! is used. Otherwise, if missing, ScreenUnits! is used. AppropriateUnits!
ScreenUnits!
DialogUnits!
Left, Top, Width, and Height are specified in dialog units (the same units used to create the user dialog).
AbsolutePosition!
Left, Top, Width, and Height are absolute positions and sizes. (Window position is always relative to its parent.)
RelativePosition!
Left, Top, Width, and Height are relative to the current position and size of the window.
RegionRemoveListItem
Purpose
Remove a list item from a list box, combination box, or pop-up button. Exact match items are removed before partial match items.
Example
Appendix A: 8071
Syntax
RegionRemoveListItem (NamedRgn: string; Item: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
Item
string A list item.
RegionRemoveListItemByIndex
Purpose
Remove an item from a list control by its index.
Syntax
RegionRemoveListItemByIndex (NamedRgn: string; Index: numeric)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Index
numeric The index (position) of a list item.
RegionResetList
Purpose
Clear the contents of a list box, combination box, or pop-up button.
Example
Appendix A: 8072
Syntax
RegionResetList (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionSelectListItem
Purpose
Select an item in a list box, combination box, or pop-up button.
Example
Appendix A: 8073
Return Value
Return the index (1-based) of the selected item.
Syntax
numeric := RegionSelectListItem (NamedRgn: string; Item: string; [Selection: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
Item
string A list item.
Selection
enumeration (optional) Selection options. If missing, Extend! is used. For single selection lists, Extend! works the same as Select!.
Select!
Unselect all selected items, and select this item.
Unselect!
Unselect this item from the current selection.
Extend!
Extend the current selection to include this item.
RegionSelectListItemByIndex
Purpose
Select an item in a list control by its index.
Return Value
The selected item.
Syntax
string := RegionSelectListItemByIndex (NamedRgn: string; Index: numeric; [Selection: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Index
numeric The index (position) of a list item.
Selection
enumeration (optional) The type of selection action to perform. Default: Select!
Select!
Select this item after deselecting all other items.
UnSelect!
Deselect this item from the current selection.
Extend!
Extend the current selection to include this item.
RegionSetBitmap
Purpose
Set a bitmap file in a bitmap control.
This token replaces RegionSetBitmapFilename, and adds the ability to use a bitmap in a DLL or EXE.
Example
Appendix A: 8104
Syntax
RegionSetBitmap (NamedRgn: string; Filename: string; [Name: string])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Filename
string The filename of a bitmap, or the filename of a DLL or EXE containing a bitmap.
Name
string (optional) The Resource ID, or name of a bitmap in a DLL or EXE (see the Filename parameter). IDs must begin with #.
RegionSetCheck
Purpose
Select/deselect a check box.
Example
Appendix A: 8074
Syntax
RegionSetCheck (NamedRgn: string; State: enumeration)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
State
enumeration Sets the state of a check box control.
Checked!
(Named Check! in version 7.)
Unchecked!
(Named Uncheck in version 7.)
Gray!
Check box control must be Three-state or Auto three-state. See DialogAddCheckBox.
Indeterminate!
Same as Gray!.
Up!
Same as Checked!.
Down!
Same as Unchecked!.
RegionSetEditSelection
Purpose
Select the text or a portion of text in a text edit control.
Syntax
RegionSetEditSelection (NamedRgn: string; [Start: numeric]; [End: numeric])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Start
numeric (optional) The start index (position) of the text to select. If missing, all the text is selected.
End
numeric (optional) The end index (position) of the text to select. If missing, all the text is selected.
RegionSetFocus
Purpose
Give input focus to a specified control.
Example
Appendix A: 8075
Return Value
Window handle of the region that used to have focus, or NULL if not successful.
Syntax
numeric := RegionSetFocus (NamedRgn: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
RegionSetModified
Purpose
Set the modified state of an edit control (DialogAddCounter, DialogAddDate, DialogAddEditBox, DialogAddFilenameBox). See RegionGetModified.
Example
Appendix A: 8103
Syntax
RegionSetModified (NamedRgn: string; [State: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
State
enumeration (optional) If missing, Modified! is used.
Modified!
NotModified!
RegionSetProgressPercent
Purpose
Set the percentage to display in a progress control. See DialogAddProgress.
Example
Appendix A: 8098
Syntax
RegionSetProgressPercent (NamedRgn: string; Percent: numeric)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period.
Percent
numeric The percentage to set.
RegionSetSelectedText
Purpose
Set the selected text of a named region.
Syntax
RegionSetSelectedText (NamedRgn: string; Item: string)
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region. Enclose IDs in double quotation marks, separated by a period.
Item
string The item to select.
RegionSetWindowText
Purpose
Replace caption bar, static text, or edit box text.
Example
Appendix A: 8076
Syntax
RegionSetWindowText (NamedRgn: string; Item: string)
Parameters
NamedRgn
string The Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period. To replace the caption bar text, leave off the Control ID or named region. For example, RegionSetWindowText ("Dialog1").
Item
string The replacement text.
RegionShowWindow
Purpose
Show/hide a dialog box or control.
Example
Appendix A: 8077
Syntax
RegionShowWindow (NamedRgn: string; [State: enumeration])
Parameters
NamedRgn
string Dialog ID and control ID, or Dialog ID and name of a named region, or window handle of the named region. Enclose IDs in double quotation marks, separated by a period. If you do not use the control ID, the command works on the dialog box.
State
enumeration (optional) The display state. If missing, Show! is used.
Hide!
Show!
ShowMinimized!
ShowMaximized!
Maximize!
ShowNoActivate!
Normal!
ShowNormal!
Minimize!
ShowMinNoActive!
ShowNA!
ShowRestore!
ShowDefault!
RegistryCloseKey
Purpose
Close an open key in the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\Applications")
RegistryCloseKey(RegKey)
Return Value
Return 0 if successful, an error code if not.
Syntax
numeric := RegistryCloseKey (Hkey: numeric)
Parameters
Hkey
numeric Handle of a key to close.
RegistryCreateKey
Purpose
Create or open a key in the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8")
CreateKey:= RegistryCreateKey(RegKey; "MyKey")
Prompt("RegistryCreateKey"; CreateKey;)
Pause
Return Value
Window handle of a created key.
Syntax
numeric := RegistryCreateKey (Hkey: enumeration; SubKey: string)
Parameters
Hkey
Enumeration
ClassesRoot!
Access HKEY_CLASSES_ROOT.
CurrentUser!
Access HKEY_CURRENT_USER.
LocalMachine!
Access HKEY_LOCAL_MACHINE.
Users!
Access HKEY_USERS.
PerformanceData!
Access HKEY_PERFORMANCE_DATA.
CurrentConfig!
Access HKEY_CURRENT_CONFIG.
DynData!
Access HKEY_DYN_DATA.
SubKey
string Name of a key to create.
RegistryDeleteKey
Purpose
Delete a key from the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8")
DeleteKey:= RegistryDeleteKey(RegKey; "MyKey")
Prompt("RegistryDeleteKey"; DeleteKey;)
Pause
Return Value
Return 0 if successful, an error code if not.
Syntax
numeric := RegistryDeleteKey (Hkey: numeric; SubKey: string)
Parameters
Hkey
numeric Handle of an opened key.
SubKey
string Key to delete.
RegistryDeleteValue
Purpose
Delete a value from the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\MyKey\My Other SubKey")
DeleteValue:=RegistryDeleteValue(RegKey; )
Prompt("RegistryDeleteValue"; DeleteValue;)
Pause
Return Value
Return 0 if successful, an error code if not.
Syntax
numeric := RegistryDeleteValue (Hkey: numeric; [Value: string])
Parameters
Hkey
numeric Handle of key to delete.
Value
string (optional) Value to delete.
RegistryEnumKey
Purpose
Enumerate a key from the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8")
EnumString:=RegistryEnumKey(RegKey; 100)
RegError = RegistryQueryLastError()
Prompt("RegistryEnumKey"; "RegistryEnumKey was "+EnumString+". RegistryQueryLastError was "+RegError+".")
Pause
Return Value
Subkey number.
Syntax
string := RegistryEnumKey (Hkey: numeric; SubKeyNumber: numeric)
Parameters
Hkey
numeric Handle of an opened key.
SubKeyNumber
Numeric
RegistryEnumValue
Purpose
Enumerate a value from the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\Applications")
EnumString:=RegistryEnumValue(RegKey; 1)
Prompt("RegistryEnumValue"; EnumString)
Pause
//Test RegistryEnumValue with errors
RegKey = RegistryOpenKey(CurrentUser!; "Software\Corel\PerfectScript\8\Macro Help Files")
EnumString:=RegistryEnumValue(RegKey; 25)
RegKey:= RegistryQueryLastError()
Prompt("RegistryEnumValue Failure"; EnumString; Pause!)
Prompt("RegistryQueryLastError"; RegKey)
Pause
Return Value
string
Syntax
string := RegistryEnumValue (Hkey: numeric; ValueNumber: numeric)
Parameters
Hkey
Numeric
ValueNumber
Numeric
RegistryOpenKey
Purpose
Open a key in the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\Applications")
Return Value
Handle of the opened key if successful, an error code if not.
Syntax
numeric := RegistryOpenKey (Hkey: enumeration; SubKey: string)
Parameters
Hkey
Enumeration
ClassesRoot!
Access HKEY_CLASSES_ROOT.
CurrentUser!
Access HKEY_CURRENT_USER.
LocalMachine!
Access HKEY_LOCAL_MACHINE.
Users!
Access HKEY_USERS.
PerformanceData!
Access HKEY_PERFORMANCE_DATA.
CurrentConfig!
Access HKEY_CURRENT_CONFIG.
DynData!
Access HKEY_DYN_DATA.
SubKey
String
RegistryQueryKeyCount
Purpose
Get the count of subkeys under a key in the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8")
KeyCount:=RegistryQueryKeyCount(RegKey)
Prompt("RegistryQueryKeyCount"; KeyCount)
Pause
Return Valuecount.
Syntax
numeric := RegistryQueryKeyCount (Hkey: numeric)
Parameters
Hkey
numeric Key for which to return a count of the subkeys.
RegistryQueryLastError
Purpose
Return the last error code.
Example
RegKey:= RegistryQueryLastError()
Prompt("RegistryQueryLastError"; RegKey)
Pause
Return Value
Error code, or 0 if none available.
Syntax
numeric := RegistryQueryLastError ()
RegistryQueryValue
Purpose
Obtain a value from the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8")
QueryString:=RegistryQueryValue(RegKey; "PerfectScript")
Prompt("RegistryQueryValue"; QueryString)
Pause
Return Value
Windows Registry value.
Syntax
any := RegistryQueryValue (Hkey: numeric; Value: string; [Type: variable])
Parameters
Hkey
Numeric
Value
String
Type
variable (optional) The type of value is returned to this variable.
RegistryQueryValueCount
Purpose
Return the count of values under a key in the Windows Registry.
Example
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\Location of Help Files")
QueryKey=RegistryQueryValueCount(RegKey)
Prompt("RegistryQueryValueCount"; QueryKey)
Pause
Return Value
Count of values under a Windows Registry key.
Syntax
numeric := RegistryQueryValueCount (Hkey: numeric)
Parameters
Hkey
Numeric
RegistrySetValue
Purpose
Save a value in the Windows Registry.
Examples
RegKey = RegistryOpenKey(LocalMachine!; "Software\Corel\PerfectScript\8\MyKey")
//CreateKey:= RegistryCreateKey(RegKey; "My SubKey")
SetKey := RegistrySetValue(RegKey; "My SubKey"; "Working"; PFString!)
Prompt("RegistrySetValue - PFString!"; "If RegistrySetValue was successful this should be a zero: "+SetKey;)
Pause
CreateKey:= RegistryCreateKey(RegKey; "My Other SubKey")
SetKey:=RegistrySetValue(RegKey; "My Other SubKey"; "Really Working"; PFDWord!)
Prompt("RegistrySetValue - PFDWord!"; "If RegistrySetValue was successful this should be a zero: "+SetKey;)
Pause
CreateKey:= RegistryCreateKey(RegKey; "My Other Other SubKey")
SetKey:=RegistrySetValue(RegKey; "My Other Other Key"; "It’s Working"; DWord!)
Prompt("RegistrySetValue - DWord!"; "If RegistrySetValue was successful this should be a zero: "+SetKey;)
Pause
Return Value
numeric
Syntax
numeric := RegistrySetValue (Hkey: numeric; Value: string; Data: any; Type: enumeration)
Parameters
Hkey
Numeric
Value
String
Data
Any
Type
Enumeration
Binary!
Free-form binary.
DWord!
32-bit number.
String!
Null-terminated string.
ExpandableString!
Null-terminated string with environment variable references.
PFBinary!
Free-form binary.
PFDWord!
32-bit number.
PFString!
Null-terminated string.
PFExpandableString!
PFWPString!
Corel WordPerfect word string.
PFByte!
8-bit number.
PFWord!
16-bit number.
PFBool!
Boolean.
PFLogical!
RenameDirectory
Purpose
Rename a directory.
Example
Appendix A: 8081
Return Value
Return True if successful, False if not.
Syntax
boolean := RenameDirectory (OldDirectoryName: string; NewDirectoryName: string; [Prompts: enumeration])
Parameters
OldDirectoryName
string Include the full path.
NewDirectoryName
string Include the full path.
Prompts
enumeration (optional) Default: NoPrompts!
NoPrompts!
Prompts!
Prompt if the directory does not exist.
RenameFile
Purpose
Rename and/or move a file.
Example
Appendix A: 8087
Return Value
Return True if successful, False if not.
Syntax
boolean := RenameFile (OldFilename: string; NewFilename: string; [Prompts: enumeration])
Parameters
OldFilename
string Include the full path.
NewFilename
string Include the full path.
Prompts
enumeration (optional) Default: NoPrompts!
NoPrompts!
Prompts!
Prompt if the old file does not exist, or the path is incorrect.
Repeat
Purpose
A loop statement that executes until the expression at the bottom of the loop is true (see Loop Statements in Chapter 5: Conditional, Loop, and Calling Statements).
The loop executes at least once, because it is not tested until the bottom of the loop. When <Test> is true, the first statement after Until is executed.
Example
Appendix A: 8004
Example
The general form of a Repeat statement is:
Repeat
...statement block...
Until (<Test> boolean)
Syntax
Repeat
Parameters
<Test>
boolean Evaluate to true or false. See Until command.
Return
Purpose
End Label, Function, and Procedure subroutines, or a macro (see Run), and then directs macro execution to the statement that follows the subroutine or macro’s caller.
Return generally ends a Label statement called by statements such as Call or Case Call.
Call(StartMacro)
Call(QuitMacro)
Label(StartMacro)
... statement block...
Return // directs macro execution to Call(QuitMacro)
Label(QuitMacro)
Quit
If there is no caller to return to, and the macro containing Return is nested (called by another macro), Return directs macro execution to the statement that follows the macro’s caller (see Run). Return ends a macro if there is no caller to return to, and the macro containing the Return statement is not nested.
Example
Appendix A: 8007
Syntax
Return ([<Value> any])
Parameters
<Value>
any (optional) Return the result of a function operation (see Function).
Return
Purpose
End Label, Function, and Procedure subroutines, or a macro (see Run), and then directs macro execution to the statement that follows the subroutine or macro’s caller, or creates a Cancel, Error, or Not Found condition.
Return generally ends a Label statement called by statements such as Call or Case Call.
Call(StartMacro)
Call(QuitMacro)
Label(StartMacro)
... statement block...
Return // directs macro execution to Call(QuitMacro)
Label(QuitMacro)
Quit
If there is no caller to return to, and the macro containing Return is nested (called by another macro), Return directs macro execution to the statement that follows the macro’s caller (see Run). Return ends a macro if there is no caller to return to, and the macro containing the Return statement is not nested.
Syntax
Return (<Condition> enumeration; [<Value> any])
Parameters
<Condition>
enumeration (optional) Create a Cancel, Error, or Not Found condition (see Assert). <Condition> stops a macro unless preceded by OnCancel, OnError, or OnNotFound, which direct macro execution to a specified Label. <Condition> has no effect when preceded by Cancel(Off!), Error(Off!), or NotFound(Off!). The enumerations (return types) are:
CancelCondition!
Stop a macro unless preceded by OnCancel.
ErrorCondition!
Stop a macro unless preceded by OnError.
NotFoundCondition!
Stop a macro unless preceded by OnNotFound.
<Value>
any (optional) Return the result of a function operation (see Function).
RoundOff
Purpose
Get a value rounded to a value.
vResult := RoundOff(12.63; 0.75)
Result: vResult equals 12.75
Return Value
Rounded value.
Syntax
numeric or measurement := RoundOff (Value: numeric or measurement; [RoundTo: numeric or measurement])
Parameters
Value
numeric or measurement The value to round off.
RoundTo
numeric or measurement (optional) The round value to the nearest multiple of this number. Default: 1.0
Run
Purpose
Call (start) a nested macro.
A nested macro starts immediately when it is called. When a nested macro ends, control returns to the calling macro. If Quit ends a nested macro, control does not return to the calling macro.
PerfectScript automatically compiles uncompiled Run macros. Macro execution stops if the macro will not compile.
Example
Appendix A: 8010
Syntax
Run (MacroFile: string; {[Parameter: any]})
Parameters
MacroFile
string The path and filename of a compiled macro.
{Parameter}
any (optional) Enclose multiple parameters in braces ({}), separated by a semicolon. For example: Run ("macro"; {"a"; "b"; "c"}) For example: Run ("macro"; {"a"; "b"; "c"}). Parameter values are passed to a special array variable named MacroArgs. If missing, MacroArgs[ ] is not defined in the new macro.