Macros
From Sputnik Wiki
Contents |
Macros
For Functions
@ARGS // Stores all arguments passed to a function allowing for unlimited arguments.
Directory/Path
@COMMONFILESDIR // Common Files folder @WINDIR // The directory of windows @SYSDIR // The directory of windows system directory @CURDIR // The current working directory @TEMPDIR // The current system's temporary folder
Strings
@CRLF // @CR . @LF ;Occasionally used for line breaks. @LFCR // @LF . @CR ;Stupidly used for line breaks. @CR // Carriage return, Chr(13); sometimes used for line breaks. @LF // Line feed, Chr(10); typically used for line breaks. @TAB // Tab character, Chr(9). @NL // The newline that the current windows likes best. @VT // Vertical Tab, Chr(11); This character is rarely used. @FF // Form Feed, Chr(12); This character is also known as "New Page". @NBSP // No-Break Space, Chr(160) @SPACE // Normal Space, Chr(32) // The No-Break Space character is used to represent a space where // a line break is not allowed. It is often used in source code for // indentation.
Character Sets
@NUMBER // 0123456789 @DIGIT // 0123456789 @LETTER // abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ @LETTEREXT // This set includes all the letters which are part of the extended characters in the first 256 characters (ANSI) @ALPHANUMERIC // This set includes all the characters in @Letter and @Number @PRINTABLE // This set includes all standard characters that can be printed onscreen. This includes the characters from Chr(32) to Chr(127) and Chr(160) (No-Break Space). The No-Break Space character was included since it is often used in source code. @PRINTABLEEXT // This set includes all the printable characters above Chr(127). Although rarely used in programming languages, they could be used, for instance, as valid characters in a string literal. @WHITESPACE // This set includes all characters that are normally considered whitespace and ignored by the parser. The set consists of the Space, Horizontal Tab, Line Feed, Vertical Tab, Form Feed, Carriage Return and No-Break Space. @CONTROLS // This set includes the characters from Chr(1) to Chr(31) and from Chr(127) to Chr(159). @ANSIMAPPED // This set contains the characters between Chr(128) and Chr(159) that have different values in Unicode. @ANSIPRINTABLE // This set contains all printable characters available in ANSI. Essentially, this is a union of @Printable@, @PrintableExt and @ANSIMapped.
Math
@PI // Mathematical constant that is the ratio of any circle's circumference to its diameter @E // Represents the natural logarithmic base, specified by the constant, e.
Variable Limits etc
@CHAR_MIN // Represents the smallest possible value of a unicode character @CHAR_MAX // Represents the largest possible value of a unicode character @BYTE_MIN // Represents the smallest possible value of a unsigned 8-bit integer @BYTE_MAX // Represents the largest possible value of a unsigned 8-bit integer @SBYTE_MIN // Represents the smallest possible value of a signed 8-bit integer @SBYTE_MAX // Represents the largest possible value of a signed 8-bit integer @USHORT_MIN // Represents the smallest possible value of a unsigned 16-bit integer @USHORT_MAX // Represents the largest possible value of a unsigned 16-bit integer @UINT16_MIN // Represents the smallest possible value of a unsigned 16-bit integer @UINT16_MAX // Represents the largest possible value of a unsigned 16-bit integer @UINT_MIN // Represents the smallest possible value of a unsigned 32-bit integer @UINT_MAX // Represents the largest possible value of a unsigned 32-bit integer @UINT32_MIN // Represents the smallest possible value of a unsigned 32-bit integer @UINT32_MAX // Represents the largest possible value of a unsigned 32-bit integer @ULONG_MIN // Represents the smallest possible value of a unsigned 64-bit integer @ULONG_MAX // Represents the largest possible value of a unsigned 64-bit integer @UINT64_MIN // Represents the smallest possible value of a unsigned 64-bit integer @UINT64_MAX // Represents the largest possible value of a unsigned 64-bit integer @SHORT_MIN // Represents the smallest possible value of a signed 16-bit integer @SHORT_MAX // Represents the largest possible value of a signed 16-bit integer @INT16_MIN // Represents the smallest possible value of a signed 16-bit integer @INT16_MAX // Represents the largest possible value of a signed 16-bit integer @INT_MIN // Represents the smallest possible value of a signed 32-bit integer @INT_MAX // Represents the largest possible value of a signed 32-bit integer @INT32_MIN // Represents the smallest possible value of a signed 32-bit integer @INT32_MAX // Represents the largest possible value of a signed 32-bit integer @LONG_MIN // Represents the smallest possible value of a signed 64-bit integer @LONG_MAX // Represents the largest possible value of a signed 64-bit integer @INT64_MIN // Represents the smallest possible value of a signed 64-bit integer @INT64_MAX // Represents the largest possible value of a signed 64-bit integer @DOUBLE_POSINF // Represents positive infinity @DOUBLE_NEGINF // Represents negative infinity @DOUBLE_NAN // Represents (Not a number) NaN @DOUBLE_MIN // Represents the smallest possible value of a float @DOUBLE_MAX // Represents the largest possible value of a float @DOUBLE_EPSILON // Represents the smallest positive double value greater than zero @FLOAT_POSINF // Represents positive infinity @FLOAT_NEGINF // Represents negative infinity @FLOAT_NAN // Represents (Not a number) NaN @FLOAT_MIN // Represents the smallest possible value of a float @FLOAT_MAX // Represents the largest possible value of a float @FLOAT_EPSILON // Represents the smallest positive float value greater than zero
Date & Time
@DATETIMENOW // Stores the current date and time as a string @MSEC // Milliseconds value of clock. Range is 00 to 999 @SEC // Seconds value of clock. Range is 00 to 59 @MIN // Minutes value of clock. Range is 00 to 59 @HOUR // Hours value of clock in 24-hour format. Range is 00 to 23 @WDAY // Numeric day of week. Range is 1 to 7 which corresponds to Sunday through Saturday @MDAY // Current day of month. Range is 01 to 31 @MON // Current month. Range is 01 to 12 @YDAY // Current day of year. Range is 1 to 366 (or 365 if not a leap year) @YEAR // Current four-digit year. @TICKS // The number of ticks that represent the current date and time (A single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond.) @TIME // Get a 10 element array containing in this order; @MSEC, @SEC, @MIN, @HOUR, @WDAY, @MDAY, @MON, @YDAY, @YEAR, @TICKS // Heres an example of how to use @Time to create a useable list : List ($MSec, $Sec, $Min, $Hour, $WDay, $MDay, $Mon, $YDay, $Year, $Ticks) = @TIME; println("MSec: " . $MSec); println("Sec: " . $Sec); println("Min: " . $Min); println("Hour: " . $Hour); println("WDay: " . $WDay); println("MDay: " . $MDay); println("Mon: " . $Mon); println("YDay: " . $YDay); println("Year: " . $Year); println("Ticks: " . $Ticks);
Misc
@GUI // True or False if SputnikW is being run instead of Sputnik @CONSOLEVISIBLE // True or False if Console window is visible @COMPILED // True or False if the script is being run from a compiled exe instead of as a source file @ERROR // Stores the state of the last error which can be useful to find out exactly what happened. @CURRENCY // Stores the local currency symbol that the computer is using such as $ or £ etc. @GROUP // Stores the amount of groups captured in the last regex match operation. @DESKTOPWIDTH // Current width of the desktop the program is running on. @DESKTOPHEIGHT // Current height of the desktop the program is running on. @DOMAIN // The computers currently network domain name associated with current user. @USER // The name of the user currently logged in to windows. @MACHINENAME // Get NetBIOS name of this computer. @TICKCOUNT // The number of miliseconds elapsed since the system started. @INVALIDPATHCHARS // String of characters that are not allowed in path names. @INVALIDFILENAMECHARS // String of characters that are not allowed in file names. @VOLUMESEPARATORCHAR // Provides a platform-specific volume separator character. @PATHSEPARATOR // A platform-specific separator character used to separate path strings in environment variables. @DIRECTORYSEPARATORCHAR // Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. @ALTDIRECTORYSEPARATORCHAR // Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.
Links for use with GUILink()
@lLOAD @lACTIVATED @lCLICK @lTEXTCHANGED @lMOUSECLICK @lMOUSEDOUBLECLICK @lMOUSEDOWN @lMOUSEMOVE @lMOUSEUP @lMOUSEWHEEL @lMOUSEENTER @lMOUSEHOVER @lMOUSELEAVE @lLOSTFOCUS @lLEAVE @lKEYUP @lKEYDOWN @lKEYPRESS @lGOTFOCUS @lDISPOSED @lTICKS @lDELETEDROW @lDELETINGROW @lCELLENDEDIT @lCELLBEGINEDIT @lCHECKED
Mouse Key Constants for use with GUILink etc
@MouseNone @MouseLeft @MouseMiddle @MouseRight @MouseXButton1 @MouseXButton2
Key Constants for use with many things (Bascially equal to VirtualKey Codes)
This are often used to check the $arg on GUI key pressing events however it could also be used with APIs such as GetKeyState()
@KeyNone @KeyLButton @KeyRButton @KeyCancel @KeyMButton @KeyXButton1 @KeyXButton2 @KeyLButton @KeyXButton2 @KeyBack @KeyTab @KeyLineFeed @KeyLButton @KeyLineFeed @KeyClear @KeyReturn @KeyRButton @KeyClear @KeyRButton @KeyReturn @KeyShiftKey @KeyControlKey @KeyMenu @KeyPause @KeyCapital @KeyKanaMode @KeyRButton @KeyCapital @KeyJunjaMode @KeyFinalMode @KeyHanjaMode @KeyRButton @KeyFinalMode @KeyEscape @KeyIMEConvert @KeyIMENonconvert @KeyIMEAceept @KeyIMEModeChange @KeySpace @KeyPageUp @KeyNext @KeyEnd @KeyHome @KeyLeft @KeyUp @KeyRight @KeyDown @KeySelect @KeyPrint @KeyExecute @KeyPrintScreen @KeyInsert @KeyDelete @KeyHelp @KeyD0 @KeyD1 @KeyD2 @KeyD3 @KeyD4 @KeyD5 @KeyD6 @KeyD7 @KeyD8 @KeyD9 @KeyRButton @KeyD8 @KeyRButton @KeyD9 @KeyMButton @KeyD8 @KeyMButton @KeyD9 @KeyXButton2 @KeyD8 @KeyXButton2 @KeyD9 @Key64 @KeyA @KeyB @KeyC @KeyD @KeyE @KeyF @KeyG @KeyH @KeyI @KeyJ @KeyK @KeyL @KeyM @KeyN @KeyO @KeyP @KeyQ @KeyR @KeyS @KeyT @KeyU @KeyV @KeyW @KeyX @KeyY @KeyZ @KeyLWin @KeyRWin @KeyApps @KeyRButton @KeyRWin @KeySleep @KeyNumPad0 @KeyNumPad1 @KeyNumPad2 @KeyNumPad3 @KeyNumPad4 @KeyNumPad5 @KeyNumPad6 @KeyNumPad7 @KeyNumPad8 @KeyNumPad9 @KeyMultiply @KeyAdd @KeySeparator @KeySubtract @KeyDecimal @KeyDivide @KeyF1 @KeyF2 @KeyF3 @KeyF4 @KeyF5 @KeyF6 @KeyF7 @KeyF8 @KeyF9 @KeyF10 @KeyF11 @KeyF12 @KeyF13 @KeyF14 @KeyF15 @KeyF16 @KeyF17 @KeyF18 @KeyF19 @KeyF20 @KeyF21 @KeyF22 @KeyF23 @KeyF24 @KeyBack @KeyF17 @KeyBack @KeyF18 @KeyBack @KeyF19 @KeyBack @KeyF20 @KeyBack @KeyF21 @KeyBack @KeyF22 @KeyBack @KeyF23 @KeyBack @KeyF24 @KeyNumLock @KeyScroll @KeyRButton @KeyNumLock @KeyRButton @KeyScroll @KeyMButton @KeyNumLock @KeyMButton @KeyScroll @KeyXButton2 @KeyNumLock @KeyXButton2 @KeyScroll @KeyBack @KeyNumLock @KeyBack @KeyScroll @KeyLineFeed @KeyNumLock @KeyLineFeed @KeyScroll @KeyClear @KeyNumLock @KeyClear @KeyScroll @KeyRButton @KeyClear @KeyNumLock @KeyRButton @KeyClear @KeyScroll @KeyLShiftKey @KeyRShiftKey @KeyLControlKey @KeyRControlKey @KeyLMenu @KeyRMenu @KeyBrowserBack @KeyBrowserForward @KeyBrowserRefresh @KeyBrowserStop @KeyBrowserSearch @KeyBrowserFavorites @KeyBrowserHome @KeyVolumeMute @KeyVolumeDown @KeyVolumeUp @KeyMediaNextTrack @KeyMediaPreviousTrack @KeyMediaStop @KeyMediaPlayPause @KeyLaunchMail @KeySelectMedia @KeyLaunchApplication1 @KeyLaunchApplication2 @KeyBack @KeyMediaNextTrack @KeyBack @KeyMediaPreviousTrack @KeyOem1 @KeyOemplus @KeyOemcomma @KeyOemMinus @KeyOemPeriod @KeyOemQuestion @KeyOemtilde @KeyLButton @KeyOemtilde @KeyRButton @KeyOemtilde @KeyCancel @KeyOemtilde @KeyMButton @KeyOemtilde @KeyXButton1 @KeyOemtilde @KeyXButton2 @KeyOemtilde @KeyLButton @KeyXButton2 @KeyOemtilde @KeyBack @KeyOemtilde @KeyTab @KeyOemtilde @KeyLineFeed @KeyOemtilde @KeyLButton @KeyLineFeed @KeyOemtilde @KeyClear @KeyOemtilde @KeyReturn @KeyOemtilde @KeyRButton @KeyClear @KeyOemtilde @KeyRButton @KeyReturn @KeyOemtilde @KeyShiftKey @KeyOemtilde @KeyControlKey @KeyOemtilde @KeyMenu @KeyOemtilde @KeyPause @KeyOemtilde @KeyCapital @KeyOemtilde @KeyKanaMode @KeyOemtilde @KeyRButton @KeyCapital @KeyOemtilde @KeyJunjaMode @KeyOemtilde @KeyFinalMode @KeyOemtilde @KeyHanjaMode @KeyOemtilde @KeyRButton @KeyFinalMode @KeyOemtilde @KeyOemOpenBrackets @KeyOem5 @KeyOem6 @KeyOem7 @KeyOem8 @KeySpace @KeyOemtilde @KeyPageUp @KeyOemtilde @KeyOemBackslash @KeyLButton @KeyOemBackslash @KeyHome @KeyOemtilde @KeyProcessKey @KeyMButton @KeyOemBackslash @KeyPacket @KeyDown @KeyOemtilde @KeySelect @KeyOemtilde @KeyBack @KeyOemBackslash @KeyTab @KeyOemBackslash @KeyPrintScreen @KeyOemtilde @KeyBack @KeyProcessKey @KeyClear @KeyOemBackslash @KeyBack @KeyPacket @KeyD0 @KeyOemtilde @KeyD1 @KeyOemtilde @KeyShiftKey @KeyOemBackslash @KeyControlKey @KeyOemBackslash @KeyD4 @KeyOemtilde @KeyShiftKey @KeyProcessKey @KeyAttn @KeyCrsel @KeyExsel @KeyEraseEof @KeyPlay @KeyZoom @KeyNoName @KeyPa1