1topic "Function reference"; 2[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] 3[l288;2 $$2,0#27521748481378242620020725143825:desc] 4[0 $$3,0#96390100711032703541132217272105:end] 5[H6;0 $$4,0#05600065144404261032431302351956:begin] 6[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] 7[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] 8[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] 9[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] 10[b42;2 $$9,9#13035079074754324216151401829390:normal] 11[2 $$0,0#00000000000000000000000000000000:Default] 12[{_}%EN-US 13[ {{10000@(113.42.0) [s0; [*@7;4 SysInfo]]}}&] 14[s0; &] 15[s0; &] 16[ {{10000@1 [s0; [* Hardware, BIOS, OS and Distro info]]}}&] 17[s4;%- &] 18[s5;:GetSystemInfo`(String`&`,String`&`,String`&`,int`&`,String`&`):%- [@(0.0.255) void 19]_[* GetSystemInfo]([_^String^ String]_`&[*@3 manufacturer], [_^String^ String]_`&[*@3 prod 20uctName], [_^String^ String]_`&[*@3 version], [@(0.0.255) int]_`&[*@3 numberOfProcessors], 21 [_^String^ String]_`&[*@3 mbSerial])&] 22[s2; Returns hardware information including computer [%-*@3 manufacturer, 23] [%-*@3 productName, ] [%-*@3 version], [%-*@3 numberOfProcessors 24]and [%-*@3 mbSerial ](motherboard serial number).&] 25[s3; &] 26[s4;%- &] 27[s5;:GetBiosInfo`(String`&`,Date`&`,String`&`):%- [@(0.0.255) void]_[* GetBiosInfo]([_^String^ S 28tring]_`&[*@3 biosVersion], [_^Date^ Date]_`&[*@3 biosReleaseDate][_^String^ , 29String]_`&[*@3 biosSerial])&] 30[s2;%- [%% Returns bios information including ][*@3 biosVersion][%% , ][*@3 biosReleaseDate][%% . 31and ][*@3 biosSerial.]&] 32[s3; &] 33[s4;%- &] 34[s5;:GetProcessorInfo`(int`,String`&`,String`&`,String`&`,int`&`):%- [@(0.0.255) bool]_ 35[* GetProcessorInfo]([@(0.0.255) int]_[*@3 number], [_^String^ String]_`&[*@3 vendor], 36[_^String^ String]_`&[*@3 identifier], [_^String^ String]_`&[*@3 architecture], 37[@(0.0.255) int]_`&[*@3 speed])&] 38[s2; Returns information about the different cpu cores.&] 39[s2; [%-*@3 number] is the core number to get the information&] 40[s2; [%-*@3 vendor] is the core vendor&] 41[s2; [%-*@3 identifier] is the core identifier&] 42[s2; [%-*@3 architecture] is the core architecture (32, 64)&] 43[s2; [%-*@3 speed].is the core speed in MHz.&] 44[s3; &] 45[s4;%- &] 46[s5;:GetCpuSpeed`(`):%- [@(0.0.255) int]_[* GetCpuSpeed]()&] 47[s2; Gets the real time main CPU speed in MHz.&] 48[s0;l288; This data is directly calculated by the function.&] 49[s3; &] 50[s4;%- &] 51[s5;:GetVideoInfo`(Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`):%- [@(0.0.255) b 52ool]_[* GetVideoInfo]([_^Array^ Array]_<[_^Value^ Value]>_`&[*@3 name], 53Array_<Value>_`&[*@3 description], Array_<Value>_`&[*@3 videoProcessor], 54Array_<Value>_`&[*@3 ram], Array_<Value>_`&[*@3 videoMode])&] 55[s2; If true gets information about video systems installed:&] 56[s2; [%-*@3 name] is the video system name&] 57[s2; [%-*@3 description] is the video description&] 58[s2; [%-*@3 videoProcessor] is the processor used&] 59[s2; [%-*@3 ram ]is the available memory in the video hardware in Mb&] 60[s2; [%-*@3 videoMode] is the video mode actually selected including 61screen resolution and number of colors&] 62[s6; Only available in Windows&] 63[s3; &] 64[s4;%- &] 65[s5;:GetPackagesInfo`(Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`,Array`<Value`>`&`):%- [@(0.0.255) b 66ool]_[* GetPackagesInfo]([_^Array^ Array]_<[_^Value^ Value]>_`&[*@3 name], 67Array_<Value>_`&[*@3 version], Array_<Value>_`&[*@3 vendor], Array_<Value>_`&[*@3 insta 68llDate], Array_<Value>_`&[*@3 caption], Array_<Value>_`&[*@3 description], 69Array_<Value>_`&[*@3 state])&] 70[s2; If true gets information about installed software:&] 71[s2;%- [*@3 name]&] 72[s2;%- [*@3 version]&] 73[s2;%- [*@3 vendor]&] 74[s2;%- [*@3 installDate]&] 75[s2; [%-*@3 caption] is a summary of the software description&] 76[s2;%- [*@3 description]&] 77[s2; [%-*@3 state] is the status of the software. Values are:&] 78[s0;l640; `- `"Bad Configuration`"&] 79[s0;l640; `- `"Invalid Argument`"&] 80[s0;l640; `- `"Unknown Package`"&] 81[s0;l640; `- `"Advertised`"&] 82[s0;l640; `- `"Absent`"&] 83[s0;l640; `- `"Ok`"&] 84[s6; Only available in Windows&] 85[s3; &] 86[s4;%- &] 87[s5;:GetCpuTemperature`(`):%- [@(0.0.255) double]_[* GetCpuTemperature]()&] 88[s2; Returns CPU temperature in degrees Celsius.&] 89[s6; It does not work in all computers.&] 90[s3;%- &] 91[s4;%- &] 92[s5;:GetNetworkInfo`(String`&`,String`&`,String`&`,String`&`):%- [@(0.0.255) bool]_[* Get 93NetworkInfo]([_^String^ String]_`&[*@3 name], [_^String^ String]_`&[*@3 domain], 94[_^String^ String]_`&[*@3 ip4], [_^String^ String]_`&[*@3 ip6])&] 95[s2; Returns the local computer network [%-*@3 name], [%-*@3 domain], 96[%-*@3 ip4] and [%-*@3 ip6].&] 97[s3; &] 98[s4;%- &] 99[s5;:GetMacAddress`(`):%- [@(0.0.255) String]_[* GetMacAddress]()&] 100[s2; Returns the [%-@3 MAC ]address in uppercase hexadecimal formated 101like `"0A:0B:0C:0C:0D:0E`" or Null.&] 102[s0;l288; This function is deprecated by GetAdapterInfo().&] 103[s3; &] 104[s4;%- &] 105[s5;:GetAdapterInfo`(`):%- [_^Array^ Array]_<[_^NetAdapter^ NetAdapter]>_[* GetAdapterInfo]( 106)&] 107[s0;l288; Gets an array of type NetAdapter with all the network adapters 108installed.&] 109[s0;l288; NetAdapter contains:&] 110[s0;l288;i150;O0;~~~1280; String description:-|Adapter description&] 111[s0;l288;i150;O0;~~~1280; String fullname:-|Adapter name&] 112[s0;l288;i150;O0;~~~1280; String mac:-|Adapter MAC address if available&] 113[s0;l288;i150;O0;~~~1280; String type;-|Adapter type. Some of the 114included types are:&] 115[s0;l448;i150;O1;~~~1280~1856; `"ETHERNET`"-|-|Ethernet&] 116[s0;l448;i150;O1;~~~1280~1856; `"TOKENRING`"-|-|Token Ring&] 117[s0;l448;i150;O1;~~~1280~1856; `"MODEM`"-|-|Point to Point Protocol&] 118[s0;l448;i150;O1;~~~1280~1856; `"SOFTWARE`_LOOPBACK`"-|Software loopback&] 119[s0;l448;i150;O1;~~~1280~1856; `"ATM`"-|-|Asynchronous Transfer Mode&] 120[s0;l448;i150;O1;~~~1280~1856; `"IEEE80211`"-|-|WIFI&] 121[s0;l448;i150;O1;~~~1280~1856; `"TUNNEL`"-|-|Tunnel encapsulation&] 122[s0;l448;i150;O1;~~~1280~1856; `"IEEE1394`"-|-|Firewire&] 123[s3; &] 124[s4;%- &] 125[s5;:GetNetworkInfo`(String`&`,String`&`):%- [@(0.0.255) bool]_[* GetNetworkInfo]([_^String^ S 126tring]_`&[*@3 name], [_^String^ String]_`&[*@3 domain])&] 127[s2; Returns the local computer network [%-*@3 name] and [%-*@3 domain].&] 128[s3; &] 129[s4;%- &] 130[s5;:GetAvailableSocketPort`(int`):%- [@(0.0.255) int]_[* GetAvailableSocketPort]([@(0.0.255) i 131nt]_[*@3 from]_`=_[@3 49152])&] 132[s2; Returns the first available socket port from [%-*@3 from] or Null 133if there is an error.&] 134[s3; &] 135[s4;%- &] 136[s5;:GetHDSerial`(`):%- [@(0.0.255) String]_[* GetHDSerial]()&] 137[s2; Returns the hard disk physical [%-*@3 serial ]number or Null. 138This code is not affected by disk formatting.&] 139[s6; Only available in Windows&] 140[s3; &] 141[s4;%- &] 142[s5;:GetMemoryInfo`(int`&`,uint64`&`,uint64`&`,uint64`&`,uint64`&`,uint64`&`,uint64`&`):%- [@(0.0.255) b 143ool]_[* GetMemoryInfo]([@(0.0.255) int]_`&[*@3 memoryLoad], [_^uint64^ uint64]_`&[*@3 total 144Phys], [_^uint64^ uint64]_`&[*@3 freePhys], [_^uint64^ uint64]_`&[*@3 totalPageFile], 145[_^uint64^ uint64]_`&[*@3 freePageFile], [_^uint64^ uint64]_`&[*@3 totalVirtual], 146[_^uint64^ uint64]_`&[*@3 freeVirtual])&] 147[s2; Gets information about the system memory:&] 148[s2; [%-*@3 memoryLoad ]is the percent of memory in use&] 149[s2; [%-*@3 totalPhys ]is the total physical memory&] 150[s2; [%-*@3 freePhys] is the free physical memory&] 151[s2; [%-*@3 totalPageFile ]is the total paging file&] 152[s2; [%-*@3 freePageFile ]is the free paging file&] 153[s2; [%-*@3 totalVirtual ]is the total virtual memory&] 154[s2; [%-*@3 freeVirtual ]is the free virtual memory.&] 155[s3; &] 156[s4;%- &] 157[s5;:GetOsInfo`(String`&`,String`&`,String`&`,String`&`,String`&`,String`&`,String`&`):%- [@(0.0.255) b 158ool]_[* GetOsInfo]([_^String^ String]_`&[*@3 kernel], [_^String^ String]_`&[*@3 kerVersion], 159 [_^String^ String]_`&[*@3 kerArchitecture], [_^String^ String]_`&[*@3 distro], 160[_^String^ String]_`&[*@3 distVersion], [_^String^ String]_`&[*@3 desktop], 161[_^String^ String]_`&[*@3 deskVersion])&] 162[s2; Gets many information to identify the operating system and Desktop 163where the application is being run. &] 164[s2; [%-*@3 kernel]: Kernel name&] 165[s2; [%-*@3 kerVersion]: Kernel version&] 166[s2; [%-*@3 kerArchitecture]: Kernel architecture&] 167[s2; [%-*@3 distro]: Distro name&] 168[s2; [%-*@3 distVersion]: Distro version&] 169[s2; [%-*@3 desktop]: Desktop manager name&] 170[s2; [%-*@3 deskVersion].: Desktop manager version&] 171[s3;%- &] 172[s4;%- &] 173[s5;:GetDriveSpace`(String`,uint64`&`,uint64`&`,uint64`&`):%- [@(0.0.255) bool]_[* GetDri 174veSpace]([_^String^ String]_[*@3 drive], [_^uint64^ uint64]_`&[*@3 freeBytesUser], 175[_^uint64^ uint64]_`&[*@3 totalBytesUser], [_^uint64^ uint64]_`&[*@3 totalFreeBytes])&] 176[s2; Gets [%-*@3 drive] space.&] 177[s2; [%-*@3 freeBytesUser]: Amount of free bytes available to the user&] 178[s2; [%-*@3 totalBytesUser]: Size of drive visible for the user&] 179[s2; [%-*@3 totalFreeBytes]: Amount of free bytes.&] 180[s0; -|Returns false if drive is not mounted or it is not accessible&] 181[s3; &] 182[s4;%- &] 183[s5;:GetDriveInformation`(String`,String`&`,String`&`,int`&`,String`&`):%- [@(0.0.255) b 184ool]_[* GetDriveInformation]([_^String^ String]_[*@3 drive], [_^String^ String]_`&[*@3 type 185], [_^String^ String]_`&[*@3 volume], [@(0.0.255) int]_`&[*@3 maxName], 186[_^String^ String]_`&[*@3 fileSystem])&] 187[s2; Gets [%-*@3 drive] information&] 188[s2;%- [*@3 type]: Gets the type of the drive.&] 189[s2;%- Available types are `"Hard`", `"Network`", `"Optical`", `"RAM`", 190`"Removable`".&] 191[s2;%- [*@3 volume]: Gets the name of the drive&] 192[s2;%- [*@3 maxName]: Gets the maximum length permitted for a file name&] 193[s2;%- fileSystem: Gets the drive formatting system.&] 194[s2; Returns false if drive is not mounted or it is not accessible&] 195[s3; &] 196[s4; &] 197[s5;:GetCompilerInfo`(name`, version`, time`, mode`, bits`):%- [@(0.0.255) void]_[* GetCo 198mpilerInfo]([_^String^ String]_`&[*@3 name], [@(0.0.255) int]_`&[*@3 version], 199[_^Time^ Time]_`&[*@3 time], [_^String^ String]_`&[*@3 mode], [_^String^ int]_`&[*@3 bits])&] 200[s2; Returns compiling information, like compiler [%-*@3 name, ]compiler 201[%-*@3 version], program compilation [%-*@3 time], compiling [%-*@3 mode] 202and [%-*@3 bits].&] 203[s3; &] 204[s4; &] 205[s5;:GetBatteryStatus`(bool`&`,int`&`,int`&`):%- [@(0.0.255) bool]_[* GetBatteryStatus]([@(0.0.255) b 206ool]_`&[*@3 discharging], [@(0.0.255) int]_`&[*@3 percentage], [@(0.0.255) int]_`&[*@3 rema 207iningMin])&] 208[s2; Gets battery information like if it is [%-*@3 discharging] or 209connected to the grid, [%-*@3 percentage] of charging where 100% 210means full charge, and number of expected computer running minutes 211in [%-*@3 remainingMin].&] 212[s2; Returns true if the values got are valid.&] 213[s3; &] 214[s4;%- &] 215[s5;:GetBatteryInfo`(bool`&`):%- [@(0.0.255) bool]_[* GetBatteryInfo]([@(0.0.255) bool]_`&[*@3 p 216resent]_)&] 217[s2; Gets if battery is [%-*@3 present ]or not.&] 218[s2; Returns true if the values got are valid.&] 219[s3; &] 220[s4;%- &] 221[s5;:OpenCDTray`(`):%- [@(0.0.255) void]_[* OpenCDTray]()&] 222[s2; Ejects CD/DVD tray.&] 223[s3; &] 224[s4;%- &] 225[s5;:CloseCDTray`(`):%- [@(0.0.255) void]_[* CloseCDTray]()&] 226[s2; Closes CD/DVD tray if possible&] 227[s3;@(0.0.255)%- &] 228[s0;%- &] 229[ {{10000@1 [s0; [* Process handling]]}}&] 230[s3;%- &] 231[s5;:GetWindowsList`(Array`<int64`>`&`,Array`<int64`>`&`,Array`<String`>`&`,Array`<String`>`&`,Array`<String`>`&`):%- [@(0.0.255) v 232oid]_[* GetWindowsList]([_^Array^ Array]<[@(0.0.255) int64]>_`&[*@3 wid], 233[_^Array^ Array]<[@(0.0.255) int64]>_`&[*@3 pid], [_^Array^ Array]<[_^String^ String]>_`&[*@3 n 234ame], [_^Array^ Array]<[_^String^ String]>_`&[*@3 fileName], [_^Array^ Array]<[_^String^ St 235ring]>_`&[*@3 title])&] 236[s2; Gets arrays with handles to all the opened windows with additional 237info as:&] 238[s2; [%-*@3 wid]: Handle to the the window&] 239[s2; [%-*@3 pid]: Handle to the process that manages the window&] 240[s2; [%-*@3 name]: Window name&] 241[s2; [%-*@3 fileName]: Window process program file name&] 242[s2; [%-*@3 title]: Window title (caption)&] 243[s3; &] 244[s4;%- &] 245[s5;:GetWindowsList`(`):%- [_^Array^ Array]<[@(0.0.255) int64]>_[* GetWindowsList]()&] 246[s2; Gets an array with handles to all the opened windows.&] 247[s3;%- &] 248[s4;%- &] 249[s5;:GetProcessList`(Array`<int64`>`&`,Array`<String`>`&`):%- [@(0.0.255) bool]_[* GetPro 250cessList]([_^Array^ Array]<[@(0.0.255) int64]>_`&[*@3 pid], [_^Array^ Array]<[_^String^ Str 251ing]>_`&[*@3 pNames])&] 252[s2; Gets arrays with handles to all the opened processes [%-*@3 pid 253]and process names [%-*@3 pNames].&] 254[s3; &] 255[s4;%- &] 256[s5;:GetProcessList`(`):%- [_^Array^ Array]<[@(0.0.255) int64]>_[* GetProcessList]()&] 257[s2; Gets an array with handles to all the opened processes&] 258[s3;%- &] 259[s4;%- &] 260[s5;:GetProcessName`(int64`):%- [_^String^ String]_[* GetProcessName]([@(0.0.255) int64]_[*@3 p 261id])&] 262[s2; Returns the process name for a process with handle [%-*@3 pid].&] 263[s3; &] 264[s4;%- &] 265[s5;:GetProcessFileName`(int64`):%- [_^String^ String]_[* GetProcessFileName]([@(0.0.255) i 266nt64]_[*@3 pid])&] 267[s2; Gets the program file name of a process with handle [%-*@3 pid].&] 268[s3; &] 269[s4; &] 270[s5;:GetProcessCPUUsage`(int64`):%- [@(0.0.255) int]_[* GetProcessCPUUsage]([@(0.0.255) int 27164]_[*@3 pid])&] 272[s2; Gets the percentage of CPU usage for process [%-*@3 pid].&] 273[s6; Only available in Windows&] 274[s3; &] 275[s4;%- &] 276[s5;:GetProcessIdFromName`(String`):%- [_^int64^ int64]_[* GetProcessIdFromName]([_^String^ S 277tring]_[*@3 name])&] 278[s2; Gets the process handle of a program named [%-*@3 name].&] 279[s3; &] 280[s4;%- &] 281[s5;:GetProcessIdFromWindowCaption`(String`,bool`):%- [@(0.0.255) int64]_[* GetProcessIdF 282romWindowCaption]([_^String^ String]_[*@3 windowCaption], [@(0.0.255) bool]_[*@3 exactMat 283ch]_`=_[@(0.0.255) false])&] 284[s2;%- [%% Gets the process handle of a program with a window with 285title ][*@3 windowCaption.]&] 286[s2;%- [%% If ][*@3 exactMatch][%% .is true it only returns the process 287handle of a process with a window title that is equal to ][*@3 windowCaption. 288][%% If it is false then the handle is returned if only part of 289the window title matches with ][*@3 windowCaption.]&] 290[s3; &] 291[s4;%- &] 292[s5;:GetWindowIdFromCaption`(String`,bool`):%- [@(0.0.255) int64]_[* GetWindowIdFromCapti 293on]([_^String^ String]_[*@3 windowCaption], [@(0.0.255) bool]_[*@3 exactMatch]_`=_[@(0.0.255) f 294alse])&] 295[s2;%- [%% Gets the window handle of a program with a window with title 296][*@3 windowCaption.]&] 297[s2;%- [%% If ][*@3 exactMatch][%% .is true it only returns the process 298handle of a process with a window title that is equal to ][*@3 windowCaption. 299][%% If it is false then the handle is returned if only part of 300the window title matches with ][*@3 windowCaption.]&] 301[s3; &] 302[s4;%- &] 303[s5;:GetProcessIdFromWindowId`(int64`):%- [@(0.0.255) int64]_[* GetProcessIdFromWindowId]( 304[@(0.0.255) int64]_[*@3 wid])&] 305[s2;%- [%% Returns the process handle of a program with window handle 306][*@3 wid.]&] 307[s3; &] 308[s4;%- &] 309[s5;:GetWindowIdFromProcessId`(int64`):%- [@(0.0.255) int64]_[* GetWindowIdFromProcessId]( 310[@(0.0.255) int64]_[*@3 pid])&] 311[s2;%- [%% Returns the window handle of a program with process handle 312][*@3 pid.]&] 313[s3; &] 314[s4;%- &] 315[s5;:ProcessTerminate`(int64`,int`):%- [@(0.0.255) bool]_[* ProcessTerminate]([@(0.0.255) i 316nt64]_[*@3 pid], [@(0.0.255) int]_[*@3 timeout]_`=_[@3 500])&] 317[s2;%- [%% Ends the program with handle ][*@3 pid.]&] 318[s2; If after asking the process to end [%-*@3 timeout ]is over, it 319will kill the process by different means in order of increasing 320`"agressivity`".&] 321[s0;l288; For example in Posix it will send the process first a SIGTERM, 322if the process does not stop it will send a SIGKILL, and if the 323process remains running it will simply call WindowKill() to do 324the dirty job.&] 325[s3; &] 326[s4;%- &] 327[s5;:GetProcessPriority`(int64`):%- [@(0.0.255) int]_[* GetProcessPriority]([@(0.0.255) int 32864]_[*@3 pid])&] 329[s2; Gets the process priority of the process with handle [%-*@3 pid] 330as a number from 0 (minimum) to 10 (maximum), if possible.&] 331[s3; &] 332[s4;%- &] 333[s5;:SetProcessPriority`(int64`,int`):%- [@(0.0.255) bool]_[* SetProcessPriority]([@(0.0.255) i 334nt64]_[*@3 pid], [@(0.0.255) int]_[*@3 priority])&] 335[s2; Sets the process priority to [%-*@3 priority ]of the process with 336handle [%-*@3 pid] as a number from 0 (minimum) to 10 (maximum), 337if possible.&] 338[s3; &] 339[s4;%- &] 340[s5;:ProcessExists`(int64`):%- [@(0.0.255) bool]_[* ProcessExists]([@(0.0.255) int64]_[*@3 pi 341d])&] 342[s2; Returns true if a process with handle [%-*@3 pid ]exists.&] 343[s3; &] 344[s4;%- &] 345[s5;:GetProcessId`(`):%- [@(0.0.255) int64]_[* GetProcessId]()&] 346[s2; Gets actual running process handle.&] 347[s3;%- &] 348[s4;%- &] 349[s5;:Shutdown`(String`):%- [@(0.0.255) bool]_[* Shutdown]([_^String^ String]_[*@3 action])&] 350[s2; Tries to logoff, reboot or shutdown the actual running session.&] 351[s0; -|Actual valid [%-*@3 action ]values are `"logoff`", `"reboot`" 352and `"shutdown`".&] 353[s3; &] 354[s0; &] 355[ {{10000@1 [s0; [* Windows handling]]}}&] 356[s0; &] 357[s5;:Window`_GetRect`(int64`,long`&`,long`&`,long`&`,long`&`):%- [@(0.0.255) bool]_[* Win 358dow`_GetRect]([@(0.0.255) int64]_[*@3 windowId], [@(0.0.255) long]_`&[*@3 left], 359[@(0.0.255) long]_`&[*@3 top], [@(0.0.255) long]_`&[*@3 right], [@(0.0.255) long]_`&[*@3 bott 360om])&] 361[s2; Giving this function the [%-*@3 windowId], it returns the window 362location in the screen in [%-*@3 left], [%-*@3 top], [%-*@3 right] 363and [%-*@3 bottom].&] 364[s2; Returns true if the values got are valid.&] 365[s3; &] 366[s4;%- &] 367[s5;:Window`_SetRect`(int64`,long`,long`,long`,long`):%- [@(0.0.255) bool]_[* Window`_Set 368Rect]([_^int64^ int64]_[*@3 windowId], [@(0.0.255) long]_[*@3 left], 369[@(0.0.255) long]_[*@3 top], [@(0.0.255) long]_[*@3 right], [@(0.0.255) long]_[*@3 bottom])&] 370[s2; Giving this function the [%-*@3 windowId], it sets the window 371location in the screen in [%-*@3 left], [%-*@3 top], [%-*@3 right] 372and [%-*@3 bottom].&] 373[s2; Returns true if the values got are valid.&] 374[s3; &] 375[s4;%- &] 376[s5;:Window`_Bottom`(int64`):%- [@(0.0.255) void]_[* Window`_Bottom]([_^int64^ int64]_[*@3 wi 377ndowId])&] 378[s2; Moves [%-*@3 windowId] to the bottom of all windows.&] 379[s3; &] 380[s4;%- &] 381[s5;:Window`_Top`(int64`):%- [@(0.0.255) void]_[* Window`_Top]([_^int64^ int64]_[*@3 windowId 382])&] 383[s2; Moves [%-*@3 windowId] to the top of the windows.&] 384[s3; &] 385[s4;%- &] 386[s5;:Window`_TopMost`(int64`):%- [@(0.0.255) void]_[* Window`_TopMost]([_^int64^ int64]_[*@3 w 387indowId])&] 388[s2; Moves [%-*@3 windowId] as the topmost window.&] 389[s3; &] 390[s0; &] 391[ {{10000@1 [s0; [* Mouse and keyboard handling]]}}&] 392[s3; &] 393[s5;:Mouse`_GetPos`(int`&`,int`&`):%- [@(0.0.255) bool]_[* Mouse`_GetPos]([@(0.0.255) int]_ 394`&[*@3 x], [@(0.0.255) int]_`&[*@3 y])&] 395[s2; Gets the mouse position [%-*@3 x, y].in screen pixels where upper 396left corner is (0, 0).&] 397[s2; Returns true if the operation has been done successfully.&] 398[s3; &] 399[s4; &] 400[s5;:Mouse`_SetPos`(int`,int`,int64`):%- [@(0.0.255) bool]_[* Mouse`_SetPos]([@(0.0.255) in 401t]_[*@3 x], [@(0.0.255) int]_[*@3 y], [@(0.0.255) int64]_[*@3 windowId])&] 402[s2; Sets the mouse position to [%-*@3 x] [%-*@3 y] referenced to the 403upper left vertex of window with window handle [%-*@3 windowId].&] 404[s2; Returns true if the operation has been done successfully.&] 405[s3; &] 406[s4;%- &] 407[s5;:Mouse`_LeftClick`(`):%- [@(0.0.255) void]_[* Mouse`_LeftClick]()&] 408[s2; Simulates by software a mouse click with the left button as 409if it would have been done with the mouse.&] 410[s3;%- &] 411[s4;%- &] 412[s5;:Mouse`_MiddleClick`(`):%- [@(0.0.255) void]_[* Mouse`_MiddleClick]()&] 413[s2; Simulates by software a mouse click with the middle button as 414if it would have been done with the mouse.&] 415[s3;%- &] 416[s4;%- &] 417[s5;:Mouse`_RightClick`(`):%- [@(0.0.255) void]_[* Mouse`_RightClick]()&] 418[s2; Simulates by software a mouse click with the right button as 419if it would have been done with the mouse.&] 420[s3;%- &] 421[s4;%- &] 422[s5;:Mouse`_LeftDblClick`(`):%- [@(0.0.255) void]_[* Mouse`_LeftDblClick]()&] 423[s2; Simulates by software a mouse double click with the left button 424as if it would have been done with the mouse.&] 425[s3;%- &] 426[s4;%- &] 427[s5;:Mouse`_MiddleDblClick`(`):%- [@(0.0.255) void]_[* Mouse`_MiddleDblClick]()&] 428[s2; Simulates by software a mouse double click with the middle button 429as if it would have been done with the mouse.&] 430[s3;%- &] 431[s4;%- &] 432[s5;:Mouse`_RightDblClick`(`):%- [@(0.0.255) void]_[* Mouse`_RightDblClick]()&] 433[s2; Simulates by software a mouse double click with the right button 434as if it would have been done with the mouse.&] 435[s3;%- &] 436[s4;%- &] 437[s5;:Mouse`_LeftDown`(`):%- [@(0.0.255) void]_[* Mouse`_LeftDown]()&] 438[s2; Simulates by software a mouse press with the left button as 439if it would have been done with the mouse.&] 440[s2; [@6 Caution:] The button will remain pressed after this function.&] 441[s3;%- &] 442[s4;%- &] 443[s5;:Mouse`_LeftUp`(`):%- [@(0.0.255) void]_[* Mouse`_LeftUp]()&] 444[s2; Simulates by software a mouse release with the left button as 445if it would have been done with the mouse.&] 446[s3;%- &] 447[s4;%- &] 448[s5;:Mouse`_RightDown`(`):%- [@(0.0.255) void]_[* Mouse`_RightDown]()&] 449[s2; Simulates by software a mouse press with the right button as 450if it would have been done with the mouse.&] 451[s2; [@6 Caution:] The button will remain pressed after this function.&] 452[s3;%- &] 453[s4;%- &] 454[s5;:Mouse`_RightUp`(`):%- [@(0.0.255) void]_[* Mouse`_RightUp]()&] 455[s2; Simulates by software a mouse release with the right button 456as if it would have been done with the mouse.&] 457[s3;%- &] 458[s4;%- &] 459[s5;:Mouse`_MiddleDown`(`):%- [@(0.0.255) void]_[* Mouse`_MiddleDown]()&] 460[s2; Simulates by software a mouse press with the middle button as 461if it would have been done with the mouse.&] 462[s2; [@6 Caution:] The button will remain pressed after this function.&] 463[s3;%- &] 464[s4;%- &] 465[s5;:Mouse`_MiddleUp`(`):%- [@(0.0.255) void]_[* Mouse`_MiddleUp]()&] 466[s2; Simulates by software a mouse release with the middle button 467as if it would have been done with the mouse.&] 468[s3;%- &] 469[s4;%- &] 470[s5;:Keyb`_SendKeys`(String`,long`,long`):%- [@(0.0.255) void]_[* Keyb`_SendKeys]([_^String^ S 471tring]_[*@3 text], [@(0.0.255) long]_[*@3 finalDelay]_`=_[@3 100], [@(0.0.255) long]_[*@3 del 472ayBetweenKeys]_`=_[@3 50])&] 473[s2; Simulates by software a text entered using the keyboard as if 474it would have been entered with the keyboard.&] 475[s2; To really simulate manual key typing the function lets to enter 476delays between keys and after entering the text.&] 477[s2; [%-*@3 text]: Is the text to be entered&] 478[s2; [%-*@3 finalDelay]: Is the delay in ms that is forced after entering 479text&] 480[s2; [%-*@3 delayBetweenKeys]: Is the delay in ms that is forced between 481text keys.&] 482[s3; &] 483[s4;%- &] 484[s5;:GetKeyLockStatus`(bool`&`,bool`&`,bool`&`):%- [@(0.0.255) void]_[* GetKeyLockStatus]( 485[@(0.0.255) bool]_`&[*@3 caps], [@(0.0.255) bool]_`&[*@3 num], [@(0.0.255) bool]_`&[*@3 scrol 486l])&] 487[s2; Gets the status of keys [%-*@3 caps ]lock, [%-*@3 num ]lock and 488[%-*@3 scroll] [%-*@3 ]lock. Not fully functional in Linux.&] 489[s3; &] 490[s4;%- &] 491[s5;:SetKeyLockStatus`(bool`,bool`,bool`):%- [@(0.0.255) void]_[* SetKeyLockStatus]([@(0.0.255) b 492ool]_[*@3 caps], [@(0.0.255) bool]_[*@3 num], [@(0.0.255) bool]_[*@3 scroll])&] 493[s2; Sets the status of keys [%-*@3 caps ]lock, [%-*@3 num ]lock and 494[%-*@3 scroll] [%-*@3 ]lock. Not fully functional in Linux.&] 495[s3; &] 496[s0; &] 497[ {{10000@1 [s0; [* Screen recording]]}}&] 498[s3; &] 499[s5;:Snap`_Desktop`(String`):%- [@(0.0.255) bool]_[* Snap`_Desktop]([_^String^ String]_[*@3 f 500ileName])&] 501[s2; Saves the desktop in [%-*@3 fileName].as an image file.&] 502[s2; Allowed formats are:&] 503[s2;i150;O0; Posix:-|xwd&] 504[s2;i150;O0; Windows:-|bmp, png, jpg&] 505[s3; &] 506[s4;%- &] 507[s5;:GetDesktopRect`(`):%- [_^Rect^ Rect]_[* GetDesktopRect]()&] 508[s2; Gets the Desktop dimensions.&] 509[s3;%- &] 510[s4;%- &] 511[s5;:Snap`_DesktopRectangle`(String`,int`,int`,int`,int`):%- [@(0.0.255) bool]_[* Snap`_D 512esktopRectangle]([_^String^ String]_[*@3 fileName], [@(0.0.255) int]_[*@3 left], 513[@(0.0.255) int]_[*@3 top], [@(0.0.255) int]_[*@3 width], [@(0.0.255) int]_[*@3 height])&] 514[s2; Saves a rectangle of the desktop defined by [%-*@3 left], [%-*@3 top], 515[%-*@3 width ]and [%-*@3 height].in [%-*@3 fileName] as an image file.&] 516[s2; Allowed formats are:&] 517[s2;i150;O0; Posix:-|xwd&] 518[s2;i150;O0; Windows:-|bmp, png, jpg&] 519[s3; &] 520[s4;%- &] 521[s5;:Snap`_Window`(String`,int64`):%- [@(0.0.255) bool]_[* Snap`_Window]([_^String^ String]_ 522[*@3 fileName], [@(0.0.255) int64]_[*@3 handle])&] 523[s2; Saves a window defined by its [%-*@3 handle] in [%-*@3 fileName] 524as an image file.&] 525[s2; Allowed formats are:&] 526[s2;i150;O0; Posix:-|xwd&] 527[s2;i150;O0; Windows:-|bmp, png, jpg&] 528[s3; &] 529[s4;%- &] 530[s5;:Snap`_Desktop`(`):%- [_^Image^ Image]_[* Snap`_Desktop]()&] 531[s2; Returns the desktop image.&] 532[s3;%- &] 533[s4;%- &] 534[s5;:Snap`_DesktopRectangle`(int`,int`,int`,int`):%- [_^Image^ Image]_[* Snap`_DesktopRec 535tangle]([@(0.0.255) int]_[*@3 left], [@(0.0.255) int]_[*@3 top], [@(0.0.255) int]_[*@3 width], 536 [@(0.0.255) int]_[*@3 height])&] 537[s2; Returns the image of a desktop rectangle defined by [%-*@3 left], 538[%-*@3 top], [%-*@3 width ]and [%-*@3 height].&] 539[s3; &] 540[s4;%- &] 541[s5;:Snap`_Window`(int64`):%- [_^Image^ Image]_[* Snap`_Window]([_^int64^ int64]_[*@3 handle]) 542&] 543[s2; Returns a window image defined by its [%-*@3 handle].&] 544[s3; &] 545[s4;%- &] 546[s5;:Record`_Desktop`(String`,int`,int`,bool`):%- [@(0.0.255) bool]_[* Record`_Desktop]([_^String^ S 547tring]_[*@3 fileName], [@(0.0.255) int]_[*@3 duration], [@(0.0.255) int]_[*@3 secsFrame]_`= 548_[@3 1], [@(0.0.255) bool]_[*@3 viewMouse]_`=_[@(0.0.255) true])&] 549[s2; Records the desktop activity in [%-*@3 fileName] as a video file 550of [%-*@3 duration] in seconds with [%-*@3 secsFrame] seconds between 551frames and recording also mouse movement if [%-*@3 viewMouse].is 552true.&] 553[s0;l288; Allowed formats are:&] 554[s0;l288;i150;O0; Windows: Uncompressed .avi &] 555[s6; Only available in Windows&] 556[s3; &] 557[s4;%- &] 558[s5;:Record`_DesktopRectangle`(String`,int`,int`,int`,int`,int`,int`,bool`):%- [@(0.0.255) b 559ool]_[* Record`_DesktopRectangle]([_^String^ String]_[*@3 fileName], 560[@(0.0.255) int]_[*@3 duration], [@(0.0.255) int]_[*@3 left], [@(0.0.255) int]_[*@3 top], 561[@(0.0.255) int]_[*@3 width], [@(0.0.255) int]_[*@3 height], [@(0.0.255) int]_[*@3 secsFrame]_ 562`=_[@3 1], [@(0.0.255) bool]_[*@3 viewMouse]_`=_[@(0.0.255) true])&] 563[s2; Records the desktop activity in the rectangle defined by [%-*@3 left], 564[%-*@3 top], [%-*@3 width ]and [%-*@3 height]. in [%-*@3 fileName] as 565a video file of [%-*@3 duration] in seconds with [%-*@3 secsFrame] 566seconds between frames and recording also mouse movement if [%-*@3 viewMouse].is 567true.&] 568[s2; Allowed formats are:&] 569[s2;i150;O0; Windows: Uncompressed .avi&] 570[s6; Only available in Windows&] 571[s3; &] 572[s4;%- &] 573[s5;:Record`_Window`(String`,int`,long`,int`,bool`):%- [@(0.0.255) bool]_[* Record`_Windo 574w]([_^String^ String]_[*@3 fileName], [@(0.0.255) int]_[*@3 duration], 575[@(0.0.255) int64]_[*@3 handle], [@(0.0.255) int]_[*@3 secsFrame]_`=_[@3 1], 576[@(0.0.255) bool]_[*@3 viewMouse]_`=_[@(0.0.255) true])&] 577[s2; Records the activity of a window defined by its [%-*@3 handle] 578in [%-*@3 fileName] as a video file of [%-*@3 duration] in seconds 579with [%-*@3 secsFrame] seconds between frames and recording also 580mouse movement if [%-*@3 viewMouse].is true.&] 581[s0;l288; Allowed formats are:&] 582[s2;i150;O0; Windows: Uncompressed .avi&] 583[s6; Only available in Windows&] 584[s3; &] 585[s0; &] 586[ {{10000@1 [s0; [* Miscellaneous functions]]}}&] 587[s4;%- &] 588[s5;:SetDesktopWallPaper`(char`*`):%- [@(0.0.255) void]_[* SetDesktopWallPaper]([@(0.0.255) c 589har]_`*[*@3 path])&] 590[s2; Sets [%-*@3 path].file as desktop wallpaper. Supports Gnome, Kde 591v3 and Windows desktops.&] 592[s0;l288; &] 593[s0;l288;i150;O0; In Gnome, [%-*@3 path] has to be .png&] 594[s0;l288;i150;O0; In Kde, [%-*@3 path] has to be .png, .gif or .jpg&] 595[s0;l288;i150;O0; In Windows, [%-*@3 path] has to be .bmp&] 596[s0;l288; &] 597[s0;l288; If [%-*@3 path].is empty, the desktop wallpaper is removed. 598&] 599[s3; ]]