Macros
From Sputnik Wiki
(Difference between revisions)
(→Macros) |
|||
(81 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | = | + | === For Functions === |
− | + | <pre> | |
+ | @Args // Stores all arguments passed to a function allowing for unlimited arguments. | ||
+ | // This only works happens if you have [Args("true")] adove the function | ||
+ | </pre> | ||
− | @ERROR | + | === For Variables=== |
− | @ | + | |
− | @ | + | Base type |
+ | |||
+ | <pre> | ||
+ | [TYPE] [@MACRO] | ||
+ | NULL @typeNULL | ||
+ | BOOL @typeBOOL | ||
+ | CHAR @typeCHAR | ||
+ | BYTE @typeBYTE | ||
+ | SBYTE @typeSBYTE | ||
+ | INT16 @typeINT16 | ||
+ | INT32 @typeINT32 | ||
+ | INT64 @typeINT64 | ||
+ | UINT16 @typeUINT16 | ||
+ | UINT32 @typeUINT32 | ||
+ | UINT64 @typeUINT64 | ||
+ | FLOAT @typeFLOAT | ||
+ | DOUBLE @typeDOUBLE | ||
+ | STRING @typeSTRING | ||
+ | BINARY @typeBINARY | ||
+ | INTPTR @typeINTPTR | ||
+ | UINTPTR @typeUINTPTR | ||
+ | REFERENCE @typeREFERENCE | ||
+ | ARRAY @typeARRAY | ||
+ | OBJECT @typeOBJECT | ||
+ | ERROR @typeERROR | ||
+ | </pre> | ||
+ | |||
+ | Object Type | ||
+ | |||
+ | <pre> | ||
+ | [TYPE] [@MACRO] | ||
+ | CLASS @typeCLASS | ||
+ | FILE @typeFILE | ||
+ | MYSQL @typeMYSQL | ||
+ | MYSQLDATA @typeMYSQLDATA | ||
+ | DLLSTRUCT @typeDLLSTRUCT | ||
+ | OBJECT @typeOBJ | ||
+ | SERVER @typeSERVER | ||
+ | CLIENT @typeCLIENT | ||
+ | GUIObject @typeGUIObject | ||
+ | SOCKET @typeSOCKET | ||
+ | FUNCTION @typeFUNC | ||
+ | LINQ @typeLINQ | ||
+ | ERROR @typeERR | ||
+ | </pre> | ||
+ | |||
+ | Variable Scope | ||
+ | |||
+ | <pre> | ||
+ | [TYPE] [@MACRO] | ||
+ | ANY @scopeANY | ||
+ | GLOBAL @scopeGLOBAL | ||
+ | LOCAL @scopeLOCAL | ||
+ | </pre> | ||
+ | |||
+ | Scope | ||
+ | |||
+ | <pre> | ||
+ | [TYPE] [@MACRO] | ||
+ | NONE @scopeNONE | ||
+ | INTERP_INIT @scopeINTERPINIT | ||
+ | STACK_INIT @scopeSTACKINIT | ||
+ | BLOCK @scopeBLOCK | ||
+ | FUNCTION @scopeFUNCTION | ||
+ | MAX @scopeMAX | ||
+ | </pre> | ||
+ | |||
+ | === Language Detection === | ||
+ | |||
+ | <pre> | ||
+ | @Lang // Return an array containing language information on the current OS | ||
+ | // Example: | ||
+ | // my List ($Name, $DisplayName, $EnglishName, $TwoLetterISO, $ThreeLetterISO, $LCID) = @Lang; | ||
+ | </pre> | ||
+ | |||
+ | === Directory/Path === | ||
+ | |||
+ | <pre> | ||
+ | @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 | ||
+ | @ExeDir // The directory of the Sputnik exe | ||
+ | @ScriptDir // The directory where the current script is at runtime | ||
+ | @FileCase // Returns TRUE if the file system is case insensitive | ||
+ | @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. | ||
+ | </pre> | ||
+ | |||
+ | === Strings === | ||
+ | |||
+ | <pre> | ||
+ | @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. | ||
+ | @NL // The newline that the current windows likes best. | ||
+ | @N // The newline or <BR> depending if Sputnik is #cgi or not | ||
+ | @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) | ||
+ | // 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. | ||
+ | @Space // Normal Space, Chr(32) | ||
+ | @Tab // Tab character, Chr(9). | ||
+ | </pre> | ||
+ | |||
+ | === Character Sets === | ||
+ | |||
+ | These are returned as a string if you wish to get an array you will need to split the string into an array of each character. | ||
+ | |||
+ | <pre> | ||
+ | @Euro // The Euro Currency Sign; ChrW(8364) | ||
+ | @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. | ||
+ | @AllValid // The {All Valid} character set contains every valid character | ||
+ | // in the Basic Multilingual Plane of the Unicode Character Set. | ||
+ | // This includes the characters from ChrW(1) to ChrW(55295) and | ||
+ | // ChrW(56320) to ChrW(65519). | ||
+ | </pre> | ||
+ | |||
+ | ==== Language Sets ==== | ||
+ | |||
+ | <pre> | ||
+ | @LatinExt // Latin Extended; ChrW(256) to ChrW(687) | ||
+ | @LatinExtAdd // Latin Extended Additional; ChrW(7680) to ChrW(7935) | ||
+ | @Greek // ChrW(880) to ChrW(1023) | ||
+ | @GreekExt // Greek Extended; ChrW(7936) to ChrW(8191) | ||
+ | @Cyrillic // ChrW(1024) to ChrW(1279) | ||
+ | @CyrillicSup // Cyrillic Supplementary; ChrW(1280) to ChrW(1327) | ||
+ | @Armenian // ChrW(1328) to ChrW(1423) | ||
+ | @Hebrew // ChrW(1424) to ChrW(1535) | ||
+ | @Arabic // ChrW(1536) to ChrW(1791) | ||
+ | @Syriac // ChrW(1792) to ChrW(1871) | ||
+ | @Thaana // ChrW(1920) to ChrW(1983) | ||
+ | @Devanagari // ChrW(2304) to ChrW(2431) | ||
+ | @Bengali // ChrW(2432) to ChrW(2559) | ||
+ | @Gurmukhi // ChrW(2560) to ChrW(2687) | ||
+ | @Gujarati // ChrW(2688) to ChrW(2815) | ||
+ | @Oriya // ChrW(2816) to ChrW(2943) | ||
+ | @Tamil // ChrW(2944) to ChrW(3071) | ||
+ | @Telugu // ChrW(3072) to ChrW(3199) | ||
+ | @Kannada // ChrW(3200) to ChrW(3327) | ||
+ | @Malayalam // ChrW(3328) to ChrW(3455) | ||
+ | @Sinhala // ChrW(3456) to ChrW(3583) | ||
+ | @Thai // ChrW(3584) to ChrW(3711) | ||
+ | @Lao // ChrW(3712) to ChrW(3839) | ||
+ | @Tibetan // ChrW(3840) to ChrW(4095) | ||
+ | @Myanmar // ChrW(4096) to ChrW(4255) | ||
+ | @Georgian // ChrW(4256) to ChrW(4351) | ||
+ | @Hangul Jamo // ChrW(4352) to ChrW(4607) | ||
+ | @Ethiopic // ChrW(4608) to ChrW(4991) | ||
+ | @Cherokee // ChrW(5024) to ChrW(5119) | ||
+ | @Ogham // ChrW(5760) to ChrW(5791) | ||
+ | @Runic // ChrW(5792) to ChrW(5887) | ||
+ | @Tagalog // ChrW(5888) to ChrW(5919) | ||
+ | @Hanunoo // ChrW(5920) to ChrW(5951) | ||
+ | @Buhid // ChrW(5952) to ChrW(5983) | ||
+ | @Tagbanwa // ChrW(5984) to ChrW(6015) | ||
+ | @Khmer // ChrW(6016) to ChrW(6143) | ||
+ | @Mongolian // ChrW(6144) to ChrW(6319) | ||
+ | @Kanbun // ChrW(12688) to ChrW(12703) | ||
+ | @Bopomofo // ChrW(12544) to ChrW(12591) | ||
+ | @BopomofoExt // Bopomofo Extended; ChrW(12704) to ChrW(12735) | ||
+ | @JapPunct // Japanese-style punctuation; ChrW(12288) to ChrW(12351) | ||
+ | @JapRomKat // Full-width Roman characters and half-width Katakana; ChrW(65280) to ChrW(65519) | ||
+ | @Hiragana // ChrW(12352) to ChrW(12447) | ||
+ | @Katakana // ChrW(12448) to ChrW(12543) | ||
+ | @Kanji // CJK unifed ideographs - Common and uncommon Kanji; ChrW(19968) to ChrW(40879) | ||
+ | </pre> | ||
=== Math === | === Math === | ||
− | @PI | + | <pre> |
− | @E | + | @PI // Mathematical constant that is the ratio of any circle's circumference to its diameter |
+ | @TwoPI // A value specifying the approximation of 2π which is 360 degrees | ||
+ | @E // Represents the natural logarithmic base, specified by the constant, e. | ||
+ | @LOG2E // Log(@E, 2) = 1.4426950408889634074 | ||
+ | @LOG10E // Log10(@E) = 0.43429448190325182765 | ||
+ | @LN2 // Log(2) = 0.69314718055994530942 | ||
+ | @LN10 // Log(10) = 2.30258509299404568402 | ||
+ | @PI2 // @PI/2 = 1.57079632679489661923 | ||
+ | @PI4 // @PI/4 = 0.78539816339744830962 | ||
+ | @1PI // 1/@PI = 0.31830988618379067154 | ||
+ | @2PI // 2/@PI = 0.63661977236758134308 | ||
+ | @SQRTPI // Sqrt(@PI) = 1.77245385090551602729 | ||
+ | @2SQRTPI // 2/Sqrt(@PI) = 1.12837916709551257390 | ||
+ | @SQRT2 // Sqrt(2) = 1.4142135623731 | ||
+ | @SQRT3 // Sqrt(3) = 1.73205080756887729352 | ||
+ | @1SQRT2 // 1/Sqrt(2) = 0.70710678118654752440 | ||
+ | @LNPI // Log(@PI) = 1.14472988584940017414 | ||
+ | @Euler // Euler constant = 0.57721566490153286061 | ||
+ | @ZeroTolerance // The value for which all absolute numbers smaller than are considered equal to zero | ||
+ | </pre> | ||
+ | |||
+ | === Variable Limits etc === | ||
+ | |||
+ | <pre> | ||
+ | @CharMin // Represents the smallest possible value of a unicode character | ||
+ | @CharMax // Represents the largest possible value of a unicode character | ||
+ | @ByteMin // Represents the smallest possible value of a unsigned 8-bit integer | ||
+ | @ByteMax // Represents the largest possible value of a unsigned 8-bit integer | ||
+ | @SByteMin // Represents the smallest possible value of a signed 8-bit integer | ||
+ | @SByteMax // Represents the largest possible value of a signed 8-bit integer | ||
+ | @UshortMin // Represents the smallest possible value of a unsigned 16-bit integer | ||
+ | @UshortMax // Represents the largest possible value of a unsigned 16-bit integer | ||
+ | @Uint16Min // Represents the smallest possible value of a unsigned 16-bit integer | ||
+ | @Uint16Max // Represents the largest possible value of a unsigned 16-bit integer | ||
+ | @UintMin // Represents the smallest possible value of a unsigned 32-bit integer | ||
+ | @UintMax // Represents the largest possible value of a unsigned 32-bit integer | ||
+ | @Uint32Min // Represents the smallest possible value of a unsigned 32-bit integer | ||
+ | @Uint32Max // Represents the largest possible value of a unsigned 32-bit integer | ||
+ | @UlongMin // Represents the smallest possible value of a unsigned 64-bit integer | ||
+ | @UlongMax // Represents the largest possible value of a unsigned 64-bit integer | ||
+ | @Uint64Min // Represents the smallest possible value of a unsigned 64-bit integer | ||
+ | @Uint64Max // Represents the largest possible value of a unsigned 64-bit integer | ||
+ | @ShortMin // Represents the smallest possible value of a signed 16-bit integer | ||
+ | @ShortMax // Represents the largest possible value of a signed 16-bit integer | ||
+ | @Int16Min // Represents the smallest possible value of a signed 16-bit integer | ||
+ | @Int16Max // Represents the largest possible value of a signed 16-bit integer | ||
+ | @IntMin // Represents the smallest possible value of a signed 32-bit integer | ||
+ | @IntMax // Represents the largest possible value of a signed 32-bit integer | ||
+ | @Int32Min // Represents the smallest possible value of a signed 32-bit integer | ||
+ | @Int32Max // Represents the largest possible value of a signed 32-bit integer | ||
+ | @LongMin // Represents the smallest possible value of a signed 64-bit integer | ||
+ | @LongMax // Represents the largest possible value of a signed 64-bit integer | ||
+ | @Int64Min // Represents the smallest possible value of a signed 64-bit integer | ||
+ | @Int64Max // Represents the largest possible value of a signed 64-bit integer | ||
+ | @DoublePosinf // Represents positive infinity | ||
+ | @DoubleNeginf // Represents negative infinity | ||
+ | @DoubleNan // Represents (Not a number) NaN | ||
+ | @DoubleMin // Represents the smallest possible value of a float | ||
+ | @DoubleMax // Represents the largest possible value of a float | ||
+ | @Double_epsilon // Represents the smallest positive double value greater than zero | ||
+ | @FloatPosinf // Represents positive infinity | ||
+ | @FloatNeginf // Represents negative infinity | ||
+ | @FloatNan // Represents (Not a number) NaN | ||
+ | @FloatMin // Represents the smallest possible value of a float | ||
+ | @FloatMax // Represents the largest possible value of a float | ||
+ | @FloatEpsilon // Represents the smallest positive float value greater than zero | ||
+ | </pre> | ||
+ | |||
+ | === Variable size etc === | ||
+ | |||
+ | Useful for use with memory functions | ||
+ | |||
+ | <pre> | ||
+ | // Pointers (Pointers will either be 32-bit or 64-bit | ||
+ | // depending on which Sputnik is using however as long as | ||
+ | // these macros are used your functions will continue to work | ||
+ | // regardless if using 32 or 64 bit Sputnik. | ||
+ | @PTRSize // Represents the size in bytes of pointers | ||
+ | @PTRZero // Represents a pointer or handle that has been initialized to zero | ||
+ | @UPTRSize // Represents the size in bytes of unsigned pointers | ||
+ | @UPTRZero // Represents an unsigned pointer or handle that has been initialized to zero | ||
+ | // Others | ||
+ | @CharSize // Represents the size in bytes of a char | ||
+ | @BoolSize // Represents the size in bytes of a boolean | ||
+ | @ByteSize // Represents the size in bytes of a byte | ||
+ | @SByteSize // Represents the size in bytes of a sbyte (signed byte) | ||
+ | @Int16Size // Represents the size in bytes of an int16 | ||
+ | @Int32Size // Represents the size in bytes of an int32 | ||
+ | @Int64Size // Represents the size in bytes of an int64 | ||
+ | @UInt16Size // Represents the size in bytes of an uint16 | ||
+ | @UInt32Size // Represents the size in bytes of an uint32 | ||
+ | @UInt64Size // Represents the size in bytes of an uint64 | ||
+ | @FloatSize // Represents the size in bytes of an float | ||
+ | @DoubleSize // Represents the size in bytes of an double | ||
+ | // Characters | ||
+ | @ACSize // Represents the size in bytes an ASCII string character | ||
+ | @UCSize // Represents the size in bytes a Sputnik string character (UTF8) | ||
+ | </pre> | ||
+ | |||
+ | === Date & Time === | ||
+ | |||
+ | <pre> | ||
+ | @Epoch // Returns the current time measured in the number of seconds since the Unix Epoch | ||
+ | // (January 1 1970 00:00:00 GMT). | ||
+ | @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); | ||
+ | // A simple easy to use formatted date/time | ||
+ | my List ($MSec, $Sec, $Min, $Hour, $WDay, $MDay, $Mon, $YDay, $Year, $Ticks) = @Time; | ||
+ | if ($Sec < 10) { $Sec = "0$sec"; } | ||
+ | if ($Min < 10) { $Min = "0$min"; } | ||
+ | if ($Hour < 10) { $Hour = "0$hour"; } | ||
+ | if ($MDay < 10) { $MDay = "0$mday"; } | ||
+ | if ($Mon < 10) { $Mon = "0$Mon"; } | ||
+ | my $Date = "$MDay-$Mon-$Year $Hour:$Min"; | ||
+ | echo $Date; // Prints 13-09-2013 20:44 | ||
+ | </pre> | ||
+ | |||
+ | === Screen === | ||
+ | |||
+ | <pre> | ||
+ | @DesktopWidth // Current width of the desktop the program is running on. | ||
+ | @DesktopHeight // Current height of the desktop the program is running on. | ||
+ | </pre> | ||
+ | |||
+ | === System === | ||
+ | |||
+ | <pre> | ||
+ | @IsLittleEndian // Indicates the byte order ("endianness") in which data is stored in this computer architecture | ||
+ | @IsBigEndian // Indicates the byte order ("endianness") in which data is stored in this computer architecture | ||
+ | @X86 // True Sputnik process is 32Bit | ||
+ | @X64 // True Sputnik process is 64Bit | ||
+ | @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. | ||
+ | </pre> | ||
+ | |||
+ | === Misc === | ||
+ | |||
+ | <pre> | ||
+ | @ARGV // Stores commandline arguments | ||
+ | @GUI // True or False if SputnikW is being run instead of Sputnik (No console available) | ||
+ | @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 | ||
+ | @GUID // Generate a new globally unique identifier (GUID) (as a string) | ||
+ | @GUIDZero // A GUID with all its values zeroed to compare a new or existing @GUID with) (as a string) | ||
+ | @GUIDBin // Generate a new globally unique identifier (GUID) (as binary) | ||
+ | @GUIDZeroBin // A GUID with all its values zeroed to compare a new or existing @GUID with) (as binary) | ||
+ | @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. | ||
+ | @Groups // Stores the amount of groups captured in the last regex match operation. | ||
+ | @TickCount // The number of miliseconds elapsed since the current Sputnik started. | ||
+ | </pre> | ||
+ | |||
+ | === Mouse Key Constants for use with GUILink etc === | ||
+ | |||
+ | <pre> | ||
+ | @MouseNone | ||
+ | @MouseLeft | ||
+ | @MouseMiddle | ||
+ | @MouseRight | ||
+ | @MouseXButton1 | ||
+ | @MouseXButton2 | ||
+ | </pre> | ||
+ | |||
+ | === 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() | ||
− | + | <pre> | |
+ | @KeyNone -----> Hex code of the key: 0x00000000 | ||
+ | @KeyLButton -----> Hex code of the key: 0x00000001 | ||
+ | @KeyRButton -----> Hex code of the key: 0x00000002 | ||
+ | @KeyCancel -----> Hex code of the key: 0x00000003 | ||
+ | @KeyMButton -----> Hex code of the key: 0x00000004 | ||
+ | @KeyXButton1 -----> Hex code of the key: 0x00000005 | ||
+ | @KeyXButton2 -----> Hex code of the key: 0x00000006 | ||
+ | @KeyBack -----> Hex code of the key: 0x00000008 | ||
+ | @KeyTab -----> Hex code of the key: 0x00000009 | ||
+ | @KeyLineFeed -----> Hex code of the key: 0x0000000A | ||
+ | @KeyClear -----> Hex code of the key: 0x0000000C | ||
+ | @KeyReturn -----> Hex code of the key: 0x0000000D | ||
+ | @KeyEnter -----> Hex code of the key: 0x0000000D | ||
+ | @KeyShiftKey -----> Hex code of the key: 0x00000010 | ||
+ | @KeyControlKey -----> Hex code of the key: 0x00000011 | ||
+ | @KeyMenu -----> Hex code of the key: 0x00000012 | ||
+ | @KeyPause -----> Hex code of the key: 0x00000013 | ||
+ | @KeyCapsLock -----> Hex code of the key: 0x00000014 | ||
+ | @KeyCapital -----> Hex code of the key: 0x00000014 | ||
+ | @KeyKanaMode -----> Hex code of the key: 0x00000015 | ||
+ | @KeyHanguelMode -----> Hex code of the key: 0x00000015 | ||
+ | @KeyHangulMode -----> Hex code of the key: 0x00000015 | ||
+ | @KeyJunjaMode -----> Hex code of the key: 0x00000017 | ||
+ | @KeyFinalMode -----> Hex code of the key: 0x00000018 | ||
+ | @KeyKanjiMode -----> Hex code of the key: 0x00000019 | ||
+ | @KeyHanjaMode -----> Hex code of the key: 0x00000019 | ||
+ | @KeyEscape -----> Hex code of the key: 0x0000001B | ||
+ | @KeyIMEConvert -----> Hex code of the key: 0x0000001C | ||
+ | @KeyIMENonconvert -----> Hex code of the key: 0x0000001D | ||
+ | @KeyIMEAceept -----> Hex code of the key: 0x0000001E | ||
+ | @KeyIMEModeChange -----> Hex code of the key: 0x0000001F | ||
+ | @KeySpace -----> Hex code of the key: 0x00000020 | ||
+ | @KeyPageUp -----> Hex code of the key: 0x00000021 | ||
+ | @KeyPrior -----> Hex code of the key: 0x00000021 | ||
+ | @KeyPageDown -----> Hex code of the key: 0x00000022 | ||
+ | @KeyNext -----> Hex code of the key: 0x00000022 | ||
+ | @KeyEnd -----> Hex code of the key: 0x00000023 | ||
+ | @KeyHome -----> Hex code of the key: 0x00000024 | ||
+ | @KeyLeft -----> Hex code of the key: 0x00000025 | ||
+ | @KeyUp -----> Hex code of the key: 0x00000026 | ||
+ | @KeyRight -----> Hex code of the key: 0x00000027 | ||
+ | @KeyDown -----> Hex code of the key: 0x00000028 | ||
+ | @KeySelect -----> Hex code of the key: 0x00000029 | ||
+ | @KeyPrint -----> Hex code of the key: 0x0000002A | ||
+ | @KeyExecute -----> Hex code of the key: 0x0000002B | ||
+ | @KeyPrintScreen -----> Hex code of the key: 0x0000002C | ||
+ | @KeySnapshot -----> Hex code of the key: 0x0000002C | ||
+ | @KeyInsert -----> Hex code of the key: 0x0000002D | ||
+ | @KeyDelete -----> Hex code of the key: 0x0000002E | ||
+ | @KeyHelp -----> Hex code of the key: 0x0000002F | ||
+ | @KeyD0 -----> Hex code of the key: 0x00000030 | ||
+ | @KeyD1 -----> Hex code of the key: 0x00000031 | ||
+ | @KeyD2 -----> Hex code of the key: 0x00000032 | ||
+ | @KeyD3 -----> Hex code of the key: 0x00000033 | ||
+ | @KeyD4 -----> Hex code of the key: 0x00000034 | ||
+ | @KeyD5 -----> Hex code of the key: 0x00000035 | ||
+ | @KeyD6 -----> Hex code of the key: 0x00000036 | ||
+ | @KeyD7 -----> Hex code of the key: 0x00000037 | ||
+ | @KeyD8 -----> Hex code of the key: 0x00000038 | ||
+ | @KeyD9 -----> Hex code of the key: 0x00000039 | ||
+ | @KeyA -----> Hex code of the key: 0x00000041 | ||
+ | @KeyB -----> Hex code of the key: 0x00000042 | ||
+ | @KeyC -----> Hex code of the key: 0x00000043 | ||
+ | @KeyD -----> Hex code of the key: 0x00000044 | ||
+ | @KeyE -----> Hex code of the key: 0x00000045 | ||
+ | @KeyF -----> Hex code of the key: 0x00000046 | ||
+ | @KeyG -----> Hex code of the key: 0x00000047 | ||
+ | @KeyH -----> Hex code of the key: 0x00000048 | ||
+ | @KeyI -----> Hex code of the key: 0x00000049 | ||
+ | @KeyJ -----> Hex code of the key: 0x0000004A | ||
+ | @KeyK -----> Hex code of the key: 0x0000004B | ||
+ | @KeyL -----> Hex code of the key: 0x0000004C | ||
+ | @KeyM -----> Hex code of the key: 0x0000004D | ||
+ | @KeyN -----> Hex code of the key: 0x0000004E | ||
+ | @KeyO -----> Hex code of the key: 0x0000004F | ||
+ | @KeyP -----> Hex code of the key: 0x00000050 | ||
+ | @KeyQ -----> Hex code of the key: 0x00000051 | ||
+ | @KeyR -----> Hex code of the key: 0x00000052 | ||
+ | @KeyS -----> Hex code of the key: 0x00000053 | ||
+ | @KeyT -----> Hex code of the key: 0x00000054 | ||
+ | @KeyU -----> Hex code of the key: 0x00000055 | ||
+ | @KeyV -----> Hex code of the key: 0x00000056 | ||
+ | @KeyW -----> Hex code of the key: 0x00000057 | ||
+ | @KeyX -----> Hex code of the key: 0x00000058 | ||
+ | @KeyY -----> Hex code of the key: 0x00000059 | ||
+ | @KeyZ -----> Hex code of the key: 0x0000005A | ||
+ | @KeyLWin -----> Hex code of the key: 0x0000005B | ||
+ | @KeyRWin -----> Hex code of the key: 0x0000005C | ||
+ | @KeyApps -----> Hex code of the key: 0x0000005D | ||
+ | @KeyNumPad0 -----> Hex code of the key: 0x00000060 | ||
+ | @KeyNumPad1 -----> Hex code of the key: 0x00000061 | ||
+ | @KeyNumPad2 -----> Hex code of the key: 0x00000062 | ||
+ | @KeyNumPad3 -----> Hex code of the key: 0x00000063 | ||
+ | @KeyNumPad4 -----> Hex code of the key: 0x00000064 | ||
+ | @KeyNumPad5 -----> Hex code of the key: 0x00000065 | ||
+ | @KeyNumPad6 -----> Hex code of the key: 0x00000066 | ||
+ | @KeyNumPad7 -----> Hex code of the key: 0x00000067 | ||
+ | @KeyNumPad8 -----> Hex code of the key: 0x00000068 | ||
+ | @KeyNumPad9 -----> Hex code of the key: 0x00000069 | ||
+ | @KeyMultiply -----> Hex code of the key: 0x0000006A | ||
+ | @KeyAdd -----> Hex code of the key: 0x0000006B | ||
+ | @KeySeparator -----> Hex code of the key: 0x0000006C | ||
+ | @KeySubtract -----> Hex code of the key: 0x0000006D | ||
+ | @KeyDecimal -----> Hex code of the key: 0x0000006E | ||
+ | @KeyDivide -----> Hex code of the key: 0x0000006F | ||
+ | @KeyF1 -----> Hex code of the key: 0x00000070 | ||
+ | @KeyF2 -----> Hex code of the key: 0x00000071 | ||
+ | @KeyF3 -----> Hex code of the key: 0x00000072 | ||
+ | @KeyF4 -----> Hex code of the key: 0x00000073 | ||
+ | @KeyF5 -----> Hex code of the key: 0x00000074 | ||
+ | @KeyF6 -----> Hex code of the key: 0x00000075 | ||
+ | @KeyF7 -----> Hex code of the key: 0x00000076 | ||
+ | @KeyF8 -----> Hex code of the key: 0x00000077 | ||
+ | @KeyF9 -----> Hex code of the key: 0x00000078 | ||
+ | @KeyF10 -----> Hex code of the key: 0x00000079 | ||
+ | @KeyF11 -----> Hex code of the key: 0x0000007A | ||
+ | @KeyF12 -----> Hex code of the key: 0x0000007B | ||
+ | @KeyF13 -----> Hex code of the key: 0x0000007C | ||
+ | @KeyF14 -----> Hex code of the key: 0x0000007D | ||
+ | @KeyF15 -----> Hex code of the key: 0x0000007E | ||
+ | @KeyF16 -----> Hex code of the key: 0x0000007F | ||
+ | @KeyF17 -----> Hex code of the key: 0x00000080 | ||
+ | @KeyF18 -----> Hex code of the key: 0x00000081 | ||
+ | @KeyF19 -----> Hex code of the key: 0x00000082 | ||
+ | @KeyF20 -----> Hex code of the key: 0x00000083 | ||
+ | @KeyF21 -----> Hex code of the key: 0x00000084 | ||
+ | @KeyF22 -----> Hex code of the key: 0x00000085 | ||
+ | @KeyF23 -----> Hex code of the key: 0x00000086 | ||
+ | @KeyF24 -----> Hex code of the key: 0x00000087 | ||
+ | @KeyNumLock -----> Hex code of the key: 0x00000090 | ||
+ | @KeyScroll -----> Hex code of the key: 0x00000091 | ||
+ | @KeyLShiftKey -----> Hex code of the key: 0x000000A0 | ||
+ | @KeyRShiftKey -----> Hex code of the key: 0x000000A1 | ||
+ | @KeyLControlKey -----> Hex code of the key: 0x000000A2 | ||
+ | @KeyRControlKey -----> Hex code of the key: 0x000000A3 | ||
+ | @KeyLMenu -----> Hex code of the key: 0x000000A4 | ||
+ | @KeyRMenu -----> Hex code of the key: 0x000000A5 | ||
+ | @KeyBrowserBack -----> Hex code of the key: 0x000000A6 | ||
+ | @KeyBrowserForward -----> Hex code of the key: 0x000000A7 | ||
+ | @KeyBrowserRefresh -----> Hex code of the key: 0x000000A8 | ||
+ | @KeyBrowserStop -----> Hex code of the key: 0x000000A9 | ||
+ | @KeyBrowserSearch -----> Hex code of the key: 0x000000AA | ||
+ | @KeyBrowserFavorites -----> Hex code of the key: 0x000000AB | ||
+ | @KeyBrowserHome -----> Hex code of the key: 0x000000AC | ||
+ | @KeyVolumeMute -----> Hex code of the key: 0x000000AD | ||
+ | @KeyVolumeDown -----> Hex code of the key: 0x000000AE | ||
+ | @KeyVolumeUp -----> Hex code of the key: 0x000000AF | ||
+ | @KeyMediaNextTrack -----> Hex code of the key: 0x000000B0 | ||
+ | @KeyMediaPreviousTrack -----> Hex code of the key: 0x000000B1 | ||
+ | @KeyMediaStop -----> Hex code of the key: 0x000000B2 | ||
+ | @KeyMediaPlayPause -----> Hex code of the key: 0x000000B3 | ||
+ | @KeyLaunchMail -----> Hex code of the key: 0x000000B4 | ||
+ | @KeySelectMedia -----> Hex code of the key: 0x000000B5 | ||
+ | @KeyLaunchApplication1 -----> Hex code of the key: 0x000000B6 | ||
+ | @KeyLaunchApplication2 -----> Hex code of the key: 0x000000B7 | ||
+ | @KeyOemSemicolon -----> Hex code of the key: 0x000000BA | ||
+ | @KeyOemplus -----> Hex code of the key: 0x000000BB | ||
+ | @KeyOemcomma -----> Hex code of the key: 0x000000BC | ||
+ | @KeyOemMinus -----> Hex code of the key: 0x000000BD | ||
+ | @KeyOemPeriod -----> Hex code of the key: 0x000000BE | ||
+ | @KeyOemQuestion -----> Hex code of the key: 0x000000BF | ||
+ | @KeyOemtilde -----> Hex code of the key: 0x000000C0 | ||
+ | @KeyOemOpenBrackets -----> Hex code of the key: 0x000000DB | ||
+ | @KeyOemPipe -----> Hex code of the key: 0x000000DC | ||
+ | @KeyOemCloseBrackets -----> Hex code of the key: 0x000000DD | ||
+ | @KeyOemQuotes -----> Hex code of the key: 0x000000DE | ||
+ | @KeyOem8 -----> Hex code of the key: 0x000000DF | ||
+ | @KeyOemBackslash -----> Hex code of the key: 0x000000E2 | ||
+ | @KeyProcessKey -----> Hex code of the key: 0x000000E5 | ||
+ | @KeyAttn -----> Hex code of the key: 0x000000F6 | ||
+ | @KeyCrsel -----> Hex code of the key: 0x000000F7 | ||
+ | @KeyExsel -----> Hex code of the key: 0x000000F8 | ||
+ | @KeyEraseEof -----> Hex code of the key: 0x000000F9 | ||
+ | @KeyPlay -----> Hex code of the key: 0x000000FA | ||
+ | @KeyZoom -----> Hex code of the key: 0x000000FB | ||
+ | @KeyNoName -----> Hex code of the key: 0x000000FC | ||
+ | @KeyPa1 -----> Hex code of the key: 0x000000FD | ||
+ | @KeyOemClear -----> Hex code of the key: 0x000000FE | ||
+ | @KeyKeyCode -----> Hex code of the key: 0x0000FFFF | ||
+ | @KeyShift -----> Hex code of the key: 0x00010000 | ||
+ | @KeyControl -----> Hex code of the key: 0x00020000 | ||
+ | @KeyAlt -----> Hex code of the key: 0x00040000 | ||
+ | @KeyModifiers -----> Hex code of the key: 0xFFFF0000 | ||
+ | @KeyIMEAccept -----> Hex code of the key: 0x0000001E | ||
+ | @KeyOem1 -----> Hex code of the key: 0x000000BA | ||
+ | @KeyOem102 -----> Hex code of the key: 0x000000E2 | ||
+ | @KeyOem2 -----> Hex code of the key: 0x000000BF | ||
+ | @KeyOem3 -----> Hex code of the key: 0x000000C0 | ||
+ | @KeyOem4 -----> Hex code of the key: 0x000000DB | ||
+ | @KeyOem5 -----> Hex code of the key: 0x000000DC | ||
+ | @KeyOem6 -----> Hex code of the key: 0x000000DD | ||
+ | @KeyOem7 -----> Hex code of the key: 0x000000DE | ||
+ | @KeyPacket -----> Hex code of the key: 0x000000E7 | ||
+ | @KeySleep -----> Hex code of the key: 0x0000005F | ||
+ | </pre> |
Latest revision as of 19:17, 18 September 2015
For Functions
@Args // Stores all arguments passed to a function allowing for unlimited arguments. // This only works happens if you have [Args("true")] adove the function
For Variables
Base type
[TYPE] [@MACRO] NULL @typeNULL BOOL @typeBOOL CHAR @typeCHAR BYTE @typeBYTE SBYTE @typeSBYTE INT16 @typeINT16 INT32 @typeINT32 INT64 @typeINT64 UINT16 @typeUINT16 UINT32 @typeUINT32 UINT64 @typeUINT64 FLOAT @typeFLOAT DOUBLE @typeDOUBLE STRING @typeSTRING BINARY @typeBINARY INTPTR @typeINTPTR UINTPTR @typeUINTPTR REFERENCE @typeREFERENCE ARRAY @typeARRAY OBJECT @typeOBJECT ERROR @typeERROR
Object Type
[TYPE] [@MACRO] CLASS @typeCLASS FILE @typeFILE MYSQL @typeMYSQL MYSQLDATA @typeMYSQLDATA DLLSTRUCT @typeDLLSTRUCT OBJECT @typeOBJ SERVER @typeSERVER CLIENT @typeCLIENT GUIObject @typeGUIObject SOCKET @typeSOCKET FUNCTION @typeFUNC LINQ @typeLINQ ERROR @typeERR
Variable Scope
[TYPE] [@MACRO] ANY @scopeANY GLOBAL @scopeGLOBAL LOCAL @scopeLOCAL
Scope
[TYPE] [@MACRO] NONE @scopeNONE INTERP_INIT @scopeINTERPINIT STACK_INIT @scopeSTACKINIT BLOCK @scopeBLOCK FUNCTION @scopeFUNCTION MAX @scopeMAX
Language Detection
@Lang // Return an array containing language information on the current OS // Example: // my List ($Name, $DisplayName, $EnglishName, $TwoLetterISO, $ThreeLetterISO, $LCID) = @Lang;
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 @ExeDir // The directory of the Sputnik exe @ScriptDir // The directory where the current script is at runtime @FileCase // Returns TRUE if the file system is case insensitive @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.
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. @NL // The newline that the current windows likes best. @N // The newline or <BR> depending if Sputnik is #cgi or not @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) // 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. @Space // Normal Space, Chr(32) @Tab // Tab character, Chr(9).
Character Sets
These are returned as a string if you wish to get an array you will need to split the string into an array of each character.
@Euro // The Euro Currency Sign; ChrW(8364) @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. @AllValid // The {All Valid} character set contains every valid character // in the Basic Multilingual Plane of the Unicode Character Set. // This includes the characters from ChrW(1) to ChrW(55295) and // ChrW(56320) to ChrW(65519).
Language Sets
@LatinExt // Latin Extended; ChrW(256) to ChrW(687) @LatinExtAdd // Latin Extended Additional; ChrW(7680) to ChrW(7935) @Greek // ChrW(880) to ChrW(1023) @GreekExt // Greek Extended; ChrW(7936) to ChrW(8191) @Cyrillic // ChrW(1024) to ChrW(1279) @CyrillicSup // Cyrillic Supplementary; ChrW(1280) to ChrW(1327) @Armenian // ChrW(1328) to ChrW(1423) @Hebrew // ChrW(1424) to ChrW(1535) @Arabic // ChrW(1536) to ChrW(1791) @Syriac // ChrW(1792) to ChrW(1871) @Thaana // ChrW(1920) to ChrW(1983) @Devanagari // ChrW(2304) to ChrW(2431) @Bengali // ChrW(2432) to ChrW(2559) @Gurmukhi // ChrW(2560) to ChrW(2687) @Gujarati // ChrW(2688) to ChrW(2815) @Oriya // ChrW(2816) to ChrW(2943) @Tamil // ChrW(2944) to ChrW(3071) @Telugu // ChrW(3072) to ChrW(3199) @Kannada // ChrW(3200) to ChrW(3327) @Malayalam // ChrW(3328) to ChrW(3455) @Sinhala // ChrW(3456) to ChrW(3583) @Thai // ChrW(3584) to ChrW(3711) @Lao // ChrW(3712) to ChrW(3839) @Tibetan // ChrW(3840) to ChrW(4095) @Myanmar // ChrW(4096) to ChrW(4255) @Georgian // ChrW(4256) to ChrW(4351) @Hangul Jamo // ChrW(4352) to ChrW(4607) @Ethiopic // ChrW(4608) to ChrW(4991) @Cherokee // ChrW(5024) to ChrW(5119) @Ogham // ChrW(5760) to ChrW(5791) @Runic // ChrW(5792) to ChrW(5887) @Tagalog // ChrW(5888) to ChrW(5919) @Hanunoo // ChrW(5920) to ChrW(5951) @Buhid // ChrW(5952) to ChrW(5983) @Tagbanwa // ChrW(5984) to ChrW(6015) @Khmer // ChrW(6016) to ChrW(6143) @Mongolian // ChrW(6144) to ChrW(6319) @Kanbun // ChrW(12688) to ChrW(12703) @Bopomofo // ChrW(12544) to ChrW(12591) @BopomofoExt // Bopomofo Extended; ChrW(12704) to ChrW(12735) @JapPunct // Japanese-style punctuation; ChrW(12288) to ChrW(12351) @JapRomKat // Full-width Roman characters and half-width Katakana; ChrW(65280) to ChrW(65519) @Hiragana // ChrW(12352) to ChrW(12447) @Katakana // ChrW(12448) to ChrW(12543) @Kanji // CJK unifed ideographs - Common and uncommon Kanji; ChrW(19968) to ChrW(40879)
Math
@PI // Mathematical constant that is the ratio of any circle's circumference to its diameter @TwoPI // A value specifying the approximation of 2π which is 360 degrees @E // Represents the natural logarithmic base, specified by the constant, e. @LOG2E // Log(@E, 2) = 1.4426950408889634074 @LOG10E // Log10(@E) = 0.43429448190325182765 @LN2 // Log(2) = 0.69314718055994530942 @LN10 // Log(10) = 2.30258509299404568402 @PI2 // @PI/2 = 1.57079632679489661923 @PI4 // @PI/4 = 0.78539816339744830962 @1PI // 1/@PI = 0.31830988618379067154 @2PI // 2/@PI = 0.63661977236758134308 @SQRTPI // Sqrt(@PI) = 1.77245385090551602729 @2SQRTPI // 2/Sqrt(@PI) = 1.12837916709551257390 @SQRT2 // Sqrt(2) = 1.4142135623731 @SQRT3 // Sqrt(3) = 1.73205080756887729352 @1SQRT2 // 1/Sqrt(2) = 0.70710678118654752440 @LNPI // Log(@PI) = 1.14472988584940017414 @Euler // Euler constant = 0.57721566490153286061 @ZeroTolerance // The value for which all absolute numbers smaller than are considered equal to zero
Variable Limits etc
@CharMin // Represents the smallest possible value of a unicode character @CharMax // Represents the largest possible value of a unicode character @ByteMin // Represents the smallest possible value of a unsigned 8-bit integer @ByteMax // Represents the largest possible value of a unsigned 8-bit integer @SByteMin // Represents the smallest possible value of a signed 8-bit integer @SByteMax // Represents the largest possible value of a signed 8-bit integer @UshortMin // Represents the smallest possible value of a unsigned 16-bit integer @UshortMax // Represents the largest possible value of a unsigned 16-bit integer @Uint16Min // Represents the smallest possible value of a unsigned 16-bit integer @Uint16Max // Represents the largest possible value of a unsigned 16-bit integer @UintMin // Represents the smallest possible value of a unsigned 32-bit integer @UintMax // Represents the largest possible value of a unsigned 32-bit integer @Uint32Min // Represents the smallest possible value of a unsigned 32-bit integer @Uint32Max // Represents the largest possible value of a unsigned 32-bit integer @UlongMin // Represents the smallest possible value of a unsigned 64-bit integer @UlongMax // Represents the largest possible value of a unsigned 64-bit integer @Uint64Min // Represents the smallest possible value of a unsigned 64-bit integer @Uint64Max // Represents the largest possible value of a unsigned 64-bit integer @ShortMin // Represents the smallest possible value of a signed 16-bit integer @ShortMax // Represents the largest possible value of a signed 16-bit integer @Int16Min // Represents the smallest possible value of a signed 16-bit integer @Int16Max // Represents the largest possible value of a signed 16-bit integer @IntMin // Represents the smallest possible value of a signed 32-bit integer @IntMax // Represents the largest possible value of a signed 32-bit integer @Int32Min // Represents the smallest possible value of a signed 32-bit integer @Int32Max // Represents the largest possible value of a signed 32-bit integer @LongMin // Represents the smallest possible value of a signed 64-bit integer @LongMax // Represents the largest possible value of a signed 64-bit integer @Int64Min // Represents the smallest possible value of a signed 64-bit integer @Int64Max // Represents the largest possible value of a signed 64-bit integer @DoublePosinf // Represents positive infinity @DoubleNeginf // Represents negative infinity @DoubleNan // Represents (Not a number) NaN @DoubleMin // Represents the smallest possible value of a float @DoubleMax // Represents the largest possible value of a float @Double_epsilon // Represents the smallest positive double value greater than zero @FloatPosinf // Represents positive infinity @FloatNeginf // Represents negative infinity @FloatNan // Represents (Not a number) NaN @FloatMin // Represents the smallest possible value of a float @FloatMax // Represents the largest possible value of a float @FloatEpsilon // Represents the smallest positive float value greater than zero
Variable size etc
Useful for use with memory functions
// Pointers (Pointers will either be 32-bit or 64-bit // depending on which Sputnik is using however as long as // these macros are used your functions will continue to work // regardless if using 32 or 64 bit Sputnik. @PTRSize // Represents the size in bytes of pointers @PTRZero // Represents a pointer or handle that has been initialized to zero @UPTRSize // Represents the size in bytes of unsigned pointers @UPTRZero // Represents an unsigned pointer or handle that has been initialized to zero // Others @CharSize // Represents the size in bytes of a char @BoolSize // Represents the size in bytes of a boolean @ByteSize // Represents the size in bytes of a byte @SByteSize // Represents the size in bytes of a sbyte (signed byte) @Int16Size // Represents the size in bytes of an int16 @Int32Size // Represents the size in bytes of an int32 @Int64Size // Represents the size in bytes of an int64 @UInt16Size // Represents the size in bytes of an uint16 @UInt32Size // Represents the size in bytes of an uint32 @UInt64Size // Represents the size in bytes of an uint64 @FloatSize // Represents the size in bytes of an float @DoubleSize // Represents the size in bytes of an double // Characters @ACSize // Represents the size in bytes an ASCII string character @UCSize // Represents the size in bytes a Sputnik string character (UTF8)
Date & Time
@Epoch // Returns the current time measured in the number of seconds since the Unix Epoch // (January 1 1970 00:00:00 GMT). @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); // A simple easy to use formatted date/time my List ($MSec, $Sec, $Min, $Hour, $WDay, $MDay, $Mon, $YDay, $Year, $Ticks) = @Time; if ($Sec < 10) { $Sec = "0$sec"; } if ($Min < 10) { $Min = "0$min"; } if ($Hour < 10) { $Hour = "0$hour"; } if ($MDay < 10) { $MDay = "0$mday"; } if ($Mon < 10) { $Mon = "0$Mon"; } my $Date = "$MDay-$Mon-$Year $Hour:$Min"; echo $Date; // Prints 13-09-2013 20:44
Screen
@DesktopWidth // Current width of the desktop the program is running on. @DesktopHeight // Current height of the desktop the program is running on.
System
@IsLittleEndian // Indicates the byte order ("endianness") in which data is stored in this computer architecture @IsBigEndian // Indicates the byte order ("endianness") in which data is stored in this computer architecture @X86 // True Sputnik process is 32Bit @X64 // True Sputnik process is 64Bit @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.
Misc
@ARGV // Stores commandline arguments @GUI // True or False if SputnikW is being run instead of Sputnik (No console available) @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 @GUID // Generate a new globally unique identifier (GUID) (as a string) @GUIDZero // A GUID with all its values zeroed to compare a new or existing @GUID with) (as a string) @GUIDBin // Generate a new globally unique identifier (GUID) (as binary) @GUIDZeroBin // A GUID with all its values zeroed to compare a new or existing @GUID with) (as binary) @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. @Groups // Stores the amount of groups captured in the last regex match operation. @TickCount // The number of miliseconds elapsed since the current Sputnik started.
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 -----> Hex code of the key: 0x00000000 @KeyLButton -----> Hex code of the key: 0x00000001 @KeyRButton -----> Hex code of the key: 0x00000002 @KeyCancel -----> Hex code of the key: 0x00000003 @KeyMButton -----> Hex code of the key: 0x00000004 @KeyXButton1 -----> Hex code of the key: 0x00000005 @KeyXButton2 -----> Hex code of the key: 0x00000006 @KeyBack -----> Hex code of the key: 0x00000008 @KeyTab -----> Hex code of the key: 0x00000009 @KeyLineFeed -----> Hex code of the key: 0x0000000A @KeyClear -----> Hex code of the key: 0x0000000C @KeyReturn -----> Hex code of the key: 0x0000000D @KeyEnter -----> Hex code of the key: 0x0000000D @KeyShiftKey -----> Hex code of the key: 0x00000010 @KeyControlKey -----> Hex code of the key: 0x00000011 @KeyMenu -----> Hex code of the key: 0x00000012 @KeyPause -----> Hex code of the key: 0x00000013 @KeyCapsLock -----> Hex code of the key: 0x00000014 @KeyCapital -----> Hex code of the key: 0x00000014 @KeyKanaMode -----> Hex code of the key: 0x00000015 @KeyHanguelMode -----> Hex code of the key: 0x00000015 @KeyHangulMode -----> Hex code of the key: 0x00000015 @KeyJunjaMode -----> Hex code of the key: 0x00000017 @KeyFinalMode -----> Hex code of the key: 0x00000018 @KeyKanjiMode -----> Hex code of the key: 0x00000019 @KeyHanjaMode -----> Hex code of the key: 0x00000019 @KeyEscape -----> Hex code of the key: 0x0000001B @KeyIMEConvert -----> Hex code of the key: 0x0000001C @KeyIMENonconvert -----> Hex code of the key: 0x0000001D @KeyIMEAceept -----> Hex code of the key: 0x0000001E @KeyIMEModeChange -----> Hex code of the key: 0x0000001F @KeySpace -----> Hex code of the key: 0x00000020 @KeyPageUp -----> Hex code of the key: 0x00000021 @KeyPrior -----> Hex code of the key: 0x00000021 @KeyPageDown -----> Hex code of the key: 0x00000022 @KeyNext -----> Hex code of the key: 0x00000022 @KeyEnd -----> Hex code of the key: 0x00000023 @KeyHome -----> Hex code of the key: 0x00000024 @KeyLeft -----> Hex code of the key: 0x00000025 @KeyUp -----> Hex code of the key: 0x00000026 @KeyRight -----> Hex code of the key: 0x00000027 @KeyDown -----> Hex code of the key: 0x00000028 @KeySelect -----> Hex code of the key: 0x00000029 @KeyPrint -----> Hex code of the key: 0x0000002A @KeyExecute -----> Hex code of the key: 0x0000002B @KeyPrintScreen -----> Hex code of the key: 0x0000002C @KeySnapshot -----> Hex code of the key: 0x0000002C @KeyInsert -----> Hex code of the key: 0x0000002D @KeyDelete -----> Hex code of the key: 0x0000002E @KeyHelp -----> Hex code of the key: 0x0000002F @KeyD0 -----> Hex code of the key: 0x00000030 @KeyD1 -----> Hex code of the key: 0x00000031 @KeyD2 -----> Hex code of the key: 0x00000032 @KeyD3 -----> Hex code of the key: 0x00000033 @KeyD4 -----> Hex code of the key: 0x00000034 @KeyD5 -----> Hex code of the key: 0x00000035 @KeyD6 -----> Hex code of the key: 0x00000036 @KeyD7 -----> Hex code of the key: 0x00000037 @KeyD8 -----> Hex code of the key: 0x00000038 @KeyD9 -----> Hex code of the key: 0x00000039 @KeyA -----> Hex code of the key: 0x00000041 @KeyB -----> Hex code of the key: 0x00000042 @KeyC -----> Hex code of the key: 0x00000043 @KeyD -----> Hex code of the key: 0x00000044 @KeyE -----> Hex code of the key: 0x00000045 @KeyF -----> Hex code of the key: 0x00000046 @KeyG -----> Hex code of the key: 0x00000047 @KeyH -----> Hex code of the key: 0x00000048 @KeyI -----> Hex code of the key: 0x00000049 @KeyJ -----> Hex code of the key: 0x0000004A @KeyK -----> Hex code of the key: 0x0000004B @KeyL -----> Hex code of the key: 0x0000004C @KeyM -----> Hex code of the key: 0x0000004D @KeyN -----> Hex code of the key: 0x0000004E @KeyO -----> Hex code of the key: 0x0000004F @KeyP -----> Hex code of the key: 0x00000050 @KeyQ -----> Hex code of the key: 0x00000051 @KeyR -----> Hex code of the key: 0x00000052 @KeyS -----> Hex code of the key: 0x00000053 @KeyT -----> Hex code of the key: 0x00000054 @KeyU -----> Hex code of the key: 0x00000055 @KeyV -----> Hex code of the key: 0x00000056 @KeyW -----> Hex code of the key: 0x00000057 @KeyX -----> Hex code of the key: 0x00000058 @KeyY -----> Hex code of the key: 0x00000059 @KeyZ -----> Hex code of the key: 0x0000005A @KeyLWin -----> Hex code of the key: 0x0000005B @KeyRWin -----> Hex code of the key: 0x0000005C @KeyApps -----> Hex code of the key: 0x0000005D @KeyNumPad0 -----> Hex code of the key: 0x00000060 @KeyNumPad1 -----> Hex code of the key: 0x00000061 @KeyNumPad2 -----> Hex code of the key: 0x00000062 @KeyNumPad3 -----> Hex code of the key: 0x00000063 @KeyNumPad4 -----> Hex code of the key: 0x00000064 @KeyNumPad5 -----> Hex code of the key: 0x00000065 @KeyNumPad6 -----> Hex code of the key: 0x00000066 @KeyNumPad7 -----> Hex code of the key: 0x00000067 @KeyNumPad8 -----> Hex code of the key: 0x00000068 @KeyNumPad9 -----> Hex code of the key: 0x00000069 @KeyMultiply -----> Hex code of the key: 0x0000006A @KeyAdd -----> Hex code of the key: 0x0000006B @KeySeparator -----> Hex code of the key: 0x0000006C @KeySubtract -----> Hex code of the key: 0x0000006D @KeyDecimal -----> Hex code of the key: 0x0000006E @KeyDivide -----> Hex code of the key: 0x0000006F @KeyF1 -----> Hex code of the key: 0x00000070 @KeyF2 -----> Hex code of the key: 0x00000071 @KeyF3 -----> Hex code of the key: 0x00000072 @KeyF4 -----> Hex code of the key: 0x00000073 @KeyF5 -----> Hex code of the key: 0x00000074 @KeyF6 -----> Hex code of the key: 0x00000075 @KeyF7 -----> Hex code of the key: 0x00000076 @KeyF8 -----> Hex code of the key: 0x00000077 @KeyF9 -----> Hex code of the key: 0x00000078 @KeyF10 -----> Hex code of the key: 0x00000079 @KeyF11 -----> Hex code of the key: 0x0000007A @KeyF12 -----> Hex code of the key: 0x0000007B @KeyF13 -----> Hex code of the key: 0x0000007C @KeyF14 -----> Hex code of the key: 0x0000007D @KeyF15 -----> Hex code of the key: 0x0000007E @KeyF16 -----> Hex code of the key: 0x0000007F @KeyF17 -----> Hex code of the key: 0x00000080 @KeyF18 -----> Hex code of the key: 0x00000081 @KeyF19 -----> Hex code of the key: 0x00000082 @KeyF20 -----> Hex code of the key: 0x00000083 @KeyF21 -----> Hex code of the key: 0x00000084 @KeyF22 -----> Hex code of the key: 0x00000085 @KeyF23 -----> Hex code of the key: 0x00000086 @KeyF24 -----> Hex code of the key: 0x00000087 @KeyNumLock -----> Hex code of the key: 0x00000090 @KeyScroll -----> Hex code of the key: 0x00000091 @KeyLShiftKey -----> Hex code of the key: 0x000000A0 @KeyRShiftKey -----> Hex code of the key: 0x000000A1 @KeyLControlKey -----> Hex code of the key: 0x000000A2 @KeyRControlKey -----> Hex code of the key: 0x000000A3 @KeyLMenu -----> Hex code of the key: 0x000000A4 @KeyRMenu -----> Hex code of the key: 0x000000A5 @KeyBrowserBack -----> Hex code of the key: 0x000000A6 @KeyBrowserForward -----> Hex code of the key: 0x000000A7 @KeyBrowserRefresh -----> Hex code of the key: 0x000000A8 @KeyBrowserStop -----> Hex code of the key: 0x000000A9 @KeyBrowserSearch -----> Hex code of the key: 0x000000AA @KeyBrowserFavorites -----> Hex code of the key: 0x000000AB @KeyBrowserHome -----> Hex code of the key: 0x000000AC @KeyVolumeMute -----> Hex code of the key: 0x000000AD @KeyVolumeDown -----> Hex code of the key: 0x000000AE @KeyVolumeUp -----> Hex code of the key: 0x000000AF @KeyMediaNextTrack -----> Hex code of the key: 0x000000B0 @KeyMediaPreviousTrack -----> Hex code of the key: 0x000000B1 @KeyMediaStop -----> Hex code of the key: 0x000000B2 @KeyMediaPlayPause -----> Hex code of the key: 0x000000B3 @KeyLaunchMail -----> Hex code of the key: 0x000000B4 @KeySelectMedia -----> Hex code of the key: 0x000000B5 @KeyLaunchApplication1 -----> Hex code of the key: 0x000000B6 @KeyLaunchApplication2 -----> Hex code of the key: 0x000000B7 @KeyOemSemicolon -----> Hex code of the key: 0x000000BA @KeyOemplus -----> Hex code of the key: 0x000000BB @KeyOemcomma -----> Hex code of the key: 0x000000BC @KeyOemMinus -----> Hex code of the key: 0x000000BD @KeyOemPeriod -----> Hex code of the key: 0x000000BE @KeyOemQuestion -----> Hex code of the key: 0x000000BF @KeyOemtilde -----> Hex code of the key: 0x000000C0 @KeyOemOpenBrackets -----> Hex code of the key: 0x000000DB @KeyOemPipe -----> Hex code of the key: 0x000000DC @KeyOemCloseBrackets -----> Hex code of the key: 0x000000DD @KeyOemQuotes -----> Hex code of the key: 0x000000DE @KeyOem8 -----> Hex code of the key: 0x000000DF @KeyOemBackslash -----> Hex code of the key: 0x000000E2 @KeyProcessKey -----> Hex code of the key: 0x000000E5 @KeyAttn -----> Hex code of the key: 0x000000F6 @KeyCrsel -----> Hex code of the key: 0x000000F7 @KeyExsel -----> Hex code of the key: 0x000000F8 @KeyEraseEof -----> Hex code of the key: 0x000000F9 @KeyPlay -----> Hex code of the key: 0x000000FA @KeyZoom -----> Hex code of the key: 0x000000FB @KeyNoName -----> Hex code of the key: 0x000000FC @KeyPa1 -----> Hex code of the key: 0x000000FD @KeyOemClear -----> Hex code of the key: 0x000000FE @KeyKeyCode -----> Hex code of the key: 0x0000FFFF @KeyShift -----> Hex code of the key: 0x00010000 @KeyControl -----> Hex code of the key: 0x00020000 @KeyAlt -----> Hex code of the key: 0x00040000 @KeyModifiers -----> Hex code of the key: 0xFFFF0000 @KeyIMEAccept -----> Hex code of the key: 0x0000001E @KeyOem1 -----> Hex code of the key: 0x000000BA @KeyOem102 -----> Hex code of the key: 0x000000E2 @KeyOem2 -----> Hex code of the key: 0x000000BF @KeyOem3 -----> Hex code of the key: 0x000000C0 @KeyOem4 -----> Hex code of the key: 0x000000DB @KeyOem5 -----> Hex code of the key: 0x000000DC @KeyOem6 -----> Hex code of the key: 0x000000DD @KeyOem7 -----> Hex code of the key: 0x000000DE @KeyPacket -----> Hex code of the key: 0x000000E7 @KeySleep -----> Hex code of the key: 0x0000005F