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; ]]