chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:28:17 +08:00
commit f7546d43cc
322 changed files with 158599 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
<h5>APP</h5>
<br>
<p>The namespace of the application contains file paths, version and some details.</p>
<br>
<section id="app.directory" class="my-5">
<h5>app.directory</h5>
<p>Returns the path of <b>Shell</b> directory.</p>
<p>Syntax</p>
<pre><code>app.directory // usage in section context
'@app.directory' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.cfg" class="my-5">
<h5>app.cfg</h5>
<p>Returns the path of the <a href="/docs/configuration/index.html#shell.nss">configuration file</a> <code>shell.nss</code> (or <code>shell.shl</code>
in older installations).</p>
<p>Syntax</p>
<pre><code>app.cfg // usage in section context
'@app.cfg' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.dll" class="my-5">
<h5>app.dll</h5>
<p>Returns the path of <code>shell.dll</code>.</p>
<p>Syntax</p>
<pre><code>app.dll // usage in section context
'@app.dll' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.exe" class="my-5">
<h5>app.exe</h5>
<p>Returns the path of <code>shell.exe</code>.</p>
<p>Syntax</p>
<pre><code>app.exe // usage in section context
'@app.exe' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.name" class="my-5">
<h5>app.name</h5>
<p>Returns application name.</p>
<p>Syntax</p>
<pre><code>app.name // usage in section context
'@app.name' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.version" class="my-5">
<h5>app.version</h5>
<p>Returns <b>Shell</b> version.</p>
<p>Syntax</p>
<pre><code>app.version // usage in section context
'@app.version' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.is64" class="my-5">
<h5>app.is64</h5>
<p>Returns the architecture of the application.</p>
<p>Syntax</p>
<pre><code>app.is64 // usage in section context
'@app.is64' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.about" class="my-5">
<h5>app.about</h5>
<p>Returns <b>Shell</b> information.</p>
<p>Syntax</p>
<pre><code>app.about // usage in section context
'@app.about' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.reload" class="my-5">
<h5>app.reload</h5>
<p>Reload the <a href="/docs/configuration/index.html#shell.nss">configuration file</a>.
</p>
<p>Syntax</p>
<pre><code>app.reload // usage in section context
'@app.reload' // usage inside quoted-string literals</code></pre>
</section>
<section id="app.unload" class="my-5">
<h5>app.unload</h5>
<p>Unload the <a href="/docs/configuration/index.html#shell.nss">configuration file</a>.
</p>
<p>Syntax</p>
<pre><code>app.unload // usage in section context
'@app.unload' // usage inside quoted-string literals</code></pre>
</section>
+104
View File
@@ -0,0 +1,104 @@
<h4>APPX</h4>
<br>
<section id="appx" class="my-5">
<h5>appx or appx.path</h5>
<p>Returns the path of Package.</p>
<p>Syntax</p>
<code>appx(packageName)<br/>
appx.path(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.path("WindowsTerminal")
// result:
// C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.11.3471.0_x64__8wekyb3d8bbwe
</code></pre>
</section>
<section id="appx.name" class="my-5">
<h5>appx.name</h5>
<p>Returns the display name of the Package.</p>
<p>Syntax</p>
<code>appx.name(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.name("WindowsTerminal")
// result:
// Windows Terminal
</code></pre>
</section>
<section id="appx.id" class="my-5">
<h5>appx.id</h5>
<p>Returns the full name of the Package.</p>
<p>Syntax</p>
<code>appx.id(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.id("WindowsTerminal")
// result:
// Microsoft.WindowsTerminal_1.11.3471.0_x64__8wekyb3d8bbwe
</code></pre>
</section>
<section id="appx.family" class="my-5">
<h5>appx.family</h5>
<p>Returns the family name of the Package.</p>
<p>Syntax</p>
<code>appx.family(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.family("WindowsTerminal")
// result:
// Microsoft.WindowsTerminal_8wekyb3d8bbwe
</code></pre>
</section>
<section id="appx.version" class="my-5">
<h5>appx.version</h5>
<p>Returns version of the Package.</p>
<p>Syntax</p>
<code>appx.version(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.version("WindowsTerminal")
// result:
// 1.11.3471.0
</code></pre>
</section>
<section id="appx.shell" class="my-5">
<h5>appx.shell</h5>
<p>Return package settings to run.</p>
<p>Syntax</p>
<code>appx.shell(packageName)</code>
<p>Parameters</p>
<dl>
<dt>packageName</dt>
<dd>can be passed in full name or part of name.</dd>
</dl>
<p>Example</p>
<pre><code>appx.shell("WindowsTerminal")
// result:
// shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App
</code></pre>
</section>
+39
View File
@@ -0,0 +1,39 @@
<h5 id="clipboard">CLIPBOARD</h5>
<br>
<p>Clipboard handling functions.</p>
<br>
<section id="clipboard.get" class="my-5">
<h5>clipboard.get</h5>
<p>Returns the value of the stored clipboard.</p>
<p>Syntax</p>
<code>clipboard.get</code>
</section>
<section id="clipboard.set" class="my-5">
<h5>clipboard.set</h5>
<p>Store a value in the clipboard.</p>
<p>Syntax</p>
<code>clipboard.set("Hello world!")</code>
</section>
<section id="clipboard.length" class="my-5">
<h5>clipboard.length</h5>
<p>Returns the length of the value stored in the clipboard.</p>
<p>Syntax</p>
<code>clipboard.length</code>
</section>
<section id="clipboard.is_empty" class="my-5">
<h5>clipboard.is_empty</h5>
<p>Verifies that there is a value stored in the clipboard.</p>
<p>Syntax</p>
<code>clipboard.is_empty</code>
</section>
<section id="clipboard.empty" class="my-5">
<h5>clipboard.empty</h5>
<p>Empty values stored in the clipboard.</p>
<p>Syntax</p>
<code>clipboard.empty</code>
</section>
+173
View File
@@ -0,0 +1,173 @@
<h5>COLOR</h5>
<br>
<p>Color namespace contains predefined colors</p>
<br>
<pre>
color.aliceblue
color.antiquewhite
color.aqua
color.aquamarine
color.azure
color.beige
color.bisque
color.black
color.blanchedalmond
color.blue
color.blueviolet
color.brown
color.burlywood
color.cadetblue
color.chartreuse
color.chocolate
color.coral
color.cornflowerblue
color.cornsilk
color.crimson
color.cyan
color.darkblue
color.darkcyan
color.darkgoldenrod
color.darkgray
color.darkgreen
color.darkkhaki
color.darkmagenta
color.darkolivegreen
color.darkorange
color.darkorchid
color.darkred
color.darksalmon
color.darkseagreen
color.darkslateblue
color.darkslategray
color.darkturquoise
color.darkviolet
color.deeppink
color.deepskyblue
color.dimgray
color.dodgerblue
color.firebrick
color.floralwhite
color.forestgreen
color.fuchsia
color.gainsboro
color.ghostwhite
color.gold
color.goldenrod
color.gray
color.green
color.greenyellow
color.honeydew
color.hotpink
color.indianred
color.indigo
color.ivory
color.khaki
color.lavender
color.lavenderblush
color.lawngreen
color.lemonchiffon
color.lightblue
color.lightcoral
color.lightcyan
color.lightgoldenrodyellow
color.lightgray
color.lightgreen
color.lightpink
color.lightsalmon
color.lightseagreen
color.lightskyblue
color.lightslategray
color.lightsteelblue
color.lightyellow
color.lime
color.limegreen
color.linen
color.magenta
color.maroon
color.mediumaquamarine
color.mediumblue
color.mediumorchid
color.mediumpurple
color.mediumseagreen
color.mediumslateblue
color.mediumspringgreen
color.mediumturquoise
color.mediumvioletred
color.midnightblue
color.mintcream
color.mistyrose
color.moccasin
color.navajowhite
color.navy
color.oldlace
color.olive
color.olivedrab
color.orange
color.orangered
color.orchid
color.palegoldenrod
color.palegreen
color.paleturquoise
color.palevioletred
color.papayawhip
color.peachpuff
color.peru
color.pink
color.plum
color.powderblue
color.purple
color.red
color.rosybrown
color.royalblue
color.saddlebrown
color.salmon
color.sandybrown
color.seagreen
color.seashell
color.sienna
color.silver
color.skyblue
color.slateblue
color.slategray
color.snow
color.springgreen
color.steelblue
color.tan
color.teal
color.thistle
color.tomato
color.transparent
color.turquoise
color.violet
color.wheat
color.white
color.whitesmoke
color.yellow
color.yellowgreen
</pre>
<br/>
<h5>color.rgb(red, green, blue)</h5>
<br/>
<h5>color.box</h5>
<h5>color.box(#ff0000)</h5>
<br/>
<h5>color.random or color.random(min, max)</h5>
<pre><code>color.random
color.random(0x808080, 0xf0f0f0)
</code></pre>
<br/>
<pre>
color.default
color.invert
color.accent
color.accent_light1
color.accent_light2
color.accent_light3
color.accent_dark1
color.accent_dark2
color.accent_dark3
color.opacity
color.lighten
color.darken
color.rgba
</pre>
+55
View File
@@ -0,0 +1,55 @@
<h5>COMMAND</h5>
<section id="command.copy" class="my-5">
<h5>command.copy, command.copy_to_clipboard</h5>
<p>copy to parameter clipboard.</p>
<p>Syntax</p>
<code>command.copy('string copy to clipboard')</code>
</section>
<section id="command.sleep" class="my-5">
<h5>command.sleep(milliseconds)</h5>
<p>Suspends the execution of the current thread until the time-out interval elapses.</p>
<p>Syntax</p>
<code>command.sleep(1000)</code>
</section>
<section id="command.random" class="my-5">
<h5>command.random</h5>
<p>Suspends the execution of the current thread until the time-out interval elapses.</p>
<p>Syntax</p>
<code>command.random(min value, max value)</code>
</section>
<section id="command.navigate" class="my-5">
<h5>command.navigate</h5>
<p>Opens a folder in the same explorer window.</p>
<p>Syntax</p>
<code>command.navigate(path)</code>
</section>
<section id="list" class="my-5">
<pre><code>command.cascade_windows
command.copy_to_folder
command.customize_this_folder
command.find
command.folder_options
command.invert_selection
command.minimize_all_windows
command.move_to_folder
command.redo
command.refresh
command.restart_explorer
command.restore_all_windows
command.run
command.search
command.select_all
command.select_none
command.show_windows_side_by_side
command.show_windows_stacked
command.switcher
command.toggle_desktop
command.toggleext
command.togglehidden
command.undo
</code></pre>
</section>
+175
View File
@@ -0,0 +1,175 @@
<h5>ID</h5>
<p>The namespace of the id contains the identifiers for most of the system context menus items where the item's title or
icons can be returned</p>
<br>
<section id="syntax" class="my-5">
<h5>Syntax</h5>
<code>id.copy</code><br/>
<code>id.copy.title</code><br/>
<code>id.copy.icon</code> or <code>icon.copy</code>
</section>
<section id="list" class="my-5">
<h5>List</h5>
<pre><code>id.add_a_network_location
id.adjust_date_time
id.align_icons_to_grid
id.arrange_by
id.auto_arrange_icons
id.autoplay
id.cancel
id.cascade_windows
id.cast_to_device
id.cleanup
id.collapse
id.collapse_all_groups
id.collapse_group
id.command_prompt
id.compressed
id.configure
id.content
id.control_panel
id.copy
id.copy_as_path
id.copy_here
id.copy_path
id.copy_to
id.copy_to_folder
id.cortana
id.create_shortcut
id.create_shortcuts
id.create_shortcuts_here
id.customize_notification_icons
id.customize_this_folder
id.cut
id.delete
id.desktop
id.details
id.device_manager
id.disconnect
id.disconnect_network_drive
id.display_settings
id.edit
id.eject
id.empty_recycle_bin
id.erase_this_disc
id.exit_explorer
id.expand
id.expand_all_groups
id.expand_group
id.expand_to_current_folder
id.extra_large_icons
id.extract_all
id.extract_to
id.file_explorer
id.folder_options
id.format
id.give_access_to
id.group_by
id.include_in_library
id.insert_unicode_control_character
id.install
id.large_icons
id.list
id.lock_all_taskbars
id.lock_the_taskbar
id.make_available_offline
id.make_available_online
id.manage
id.map_as_drive
id.map_network_drive
id.medium_icons
id.merge
id.more_options
id.mount
id.move_here
id.move_to
id.move_to_folder
id.new
id.new_folder
id.new_item
id.news_and_interests
id.next_desktop_background
id.open
id.open_as_portable
id.open_autoplay
id.open_command_prompt
id.open_command_window_here
id.open_file_location
id.open_folder_location
id.open_in_new_process
id.open_in_new_tab
id.open_in_new_window
id.open_new_tab
id.open_new_window
id.open_powershell_window_here
id.open_windows_powershell
id.open_with
id.options
id.paste
id.paste_shortcut
id.personalize
id.pin_current_folder_to_quick_access
id.pin_to_quick_access
id.pin_to_start
id.pin_to_taskbar
id.play
id.play_with_windows_media_player
id.power_options
id.preview
id.print
id.properties
id.reconversion
id.redo
id.refresh
id.remove_from_quick_access
id.remove_properties
id.rename
id.restore
id.restore_default_libraries
id.restore_previous_versions
id.rotate_left
id.rotate_right
id.run
id.run_as_administrator
id.run_as_another_user
id.search
id.select_all
id.send_to
id.set_as_desktop_background
id.set_as_desktop_wallpaper
id.settings
id.share
id.share_with
id.shield
id.show_all_folders
id.show_cortana_button
id.show_desktop_icons
id.show_file_extensions
id.show_hidden_files
id.show_libraries
id.show_network
id.show_pen_button
id.show_people_on_the_taskbar
id.show_task_view_button
id.show_the_desktop
id.show_this_pc
id.show_touch_keyboard_button
id.show_touchpad_button
id.show_windows_side_by_side
id.show_windows_stacked
id.small_icons
id.sort_by
id.store
id.task_manager
id.taskbar_settings
id.tiles
id.troubleshoot_compatibility
id.turn_off_bitlocker
id.turn_on_bitlocker
id.undo
id.unpin_from_quick_access
id.unpin_from_start
id.unpin_from_taskbar
id.view</code></pre>
</section>
+81
View File
@@ -0,0 +1,81 @@
<h5>IMAGE (ICON)</h5>
<p>The image namespace contains functions that return an icon and are only assigned to the <code>image</code> property
</p>
<section id="image.glyph" class="my-5">
<h5>image.glyph</h5>
<p>Return font icon with color and size option.</p>
<p>Syntax</p>
<code>image.glyph(0xE00B)</code><br>
<code>image.glyph(\uE00B)</code><br>
<code>image.glyph("\uE00B")</code><br>
<code>image.glyph("\xE00B")</code><br>
<br>
<code>image.glyph(0xE00B, #0000ff)</code><br>
<code>image.glyph(0xE00B, #0000ff, 10)</code><br>
<code>image.glyph(0xE00B, #0000ff, 12, "Segoe MDL2 Assets")</code><br>
</section>
<section id="image.res" class="my-5">
<h5>image.res</h5>
<p>Returns an icon through a path or through resources.</p>
<p>Syntax</p>
<code>image.res(path)</code><br>
<code>image.res(path, index)</code><br>
<code>image.res(path, -id)</code><br>
<br>
<code>image(path)</code><br>
<code>image(path, index)</code><br>
<code>image(path, -id)</code><br>
</section>
<section id="image.svg," class="my-5">
<h5>image.svg, image.svgf</h5>
<p>Returns an svg image via a string or from a file path.</p>
<p>Syntax</p>
<code>image.svg('&lt;svg viewBox=&quot;0 0 100 100&quot;&gt;&lt;path fill=&quot;red&quot; d=&quot;M0 0 L 100 0 L50
100 Z&quot;/&gt;&lt;/svg&gt;')</code><br>
<code>image.svgf(path)</code><br>
</section>
<section id="image.rect" class="my-5">
<h5>image.rect</h5>
<p>Returns a colored rectangle icon of an optional size.</p>
<p>Syntax</p>
<code>image.rect(#0000ff)</code><br>
<code>image.rect(#0000ff, 10)</code><br>
</section>
<section id="image.segoe" class="my-5">
<h5>image.segoe</h5>
<p>Returns a glyph from "Segoe Fluent Icons" if present then "Segoe MDL2 Assets".</p>
<p>Syntax</p>
<code>image.segoe(\uxxxx)</code><br>
<code>image.segoe(\uxxxx, 10)</code><br>
</section>
<section id="image.fluent" class="my-5">
<h5>image.fluent</h5>
<p>Returns a glyph from "Segoe Fluent Icons" with optional size.</p>
<p>Syntax</p>
<code>image.fluent(\uxxxx)</code><br>
<code>image.fluent(\uxxxx, 10)</code><br>
</section>
<section id="image.mdl" class="my-5">
<h5>image.mdl</h5>
<p>Returns a glyph from "Segoe MDL2 Assets" with optional size.</p>
<p>Syntax</p>
<code>image.mdl(\uxxxx)</code><br>
<code>image.mdl(\uxxxx, 10)</code><br>
</section>
<section id="image.default" class="my-5">
<h5>image.default</h5>
<p></p>
<p>Syntax</p>
<code>image.default</code>
</section>
<section id="icon.box" class="my-5">
<h5>icon.box</h5>
<p></p>
<p>Syntax</p>
<code>icon.box([["path to file"], [index]])</code>
</section>
+156
View File
@@ -0,0 +1,156 @@
<h4>Functions</h4>
<p>The functions and variables have unique titles described by fully qualified names that indicate a logical hierarchy.</p>
<p><b>Shell</b> has a number of functions and variables built into it that are always available. They are listed here in alphabetical order.</p>
<section id="indexof" class="my-5">
<h5>indexof</h5>
<p>Find the position of a menu item.</p>
<p>Syntax</p>
<code>indexof(expression[, default position])</code>
</section>
<section id="if" class="my-5">
<h5>if</h5>
<p>Conditionally executes another statement.</p>
<p>Syntax</p>
<code>if(condition-expression)</code><br><br>
<code>if(condition-expression, true-expression)</code><br><br>
<code>if(condition-expression, true-expression, false-expression)</code>
</section>
<section id="null" class="my-5">
<h5>null</h5>
<p>Returns a null value.</p>
<p>Syntax</p>
<code>null(expression)</code><br><br>
</section>
<section id="length" class="my-5">
<h5>length (len)</h5>
<p>Returns length of string and array type</p>
<p>Syntax</p>
<code>length(expression)</code><br><br>
</section>
<section id="quote" class="my-5">
<h5>quote</h5>
<p>Returns text with a double quotation mark.</p>
<p>Syntax</p>
<code>quote(expression)</code>
</section>
<section id="char" class="my-5">
<h5>char</h5>
<p>Returns the value of the numeric parameter to a character.</p>
<p>Syntax</p>
<code>char(numeric-expression)</code>
</section>
<section id="var" class="my-5">
<h5>var</h5>
<p>Returns the value of the passed variable</p>
<p>Syntax</p>
<code>var(expression)</code>
</section>
<section id="tohex" class="my-5">
<h5>tohex</h5>
<p>Converting the value of the passed numeric expression to hexadecimal string.</p>
<p>Syntax</p>
<code>tohex(numeric-expression)</code>
</section>
<section id="equal" class="my-5">
<h5>equal</h5>
<p>Returns <code>true</code> if the parameters passed are equal.</p>
<p>Syntax</p>
<code>equal(expression-1, expression-2)</code>
</section>
<section id="not" class="my-5">
<h5>not</h5>
<p>Returns <code>true</code> if the parameters passed are not equal.</p>
<p>Syntax</p>
<code>not(expression-1, expression-2)</code>
</section>
<section id="greater" class="my-5">
<h5>greater</h5>
<p>Returns <code>true</code> if the first parameter is greater than the second parameter.</p>
<p>Syntax</p>
<code>greater(expression-1, expression-2)</code>
</section>
<section id="less" class="my-5">
<h5>less</h5>
<p>Returns <code>true</code> if the first parameter is less than the second parameter.</p>
<p>Syntax</p>
<code>less(expression-1, expression-2)</code>
</section>
<section id="shl" class="my-5">
<h5>shl</h5>
<p>bitwise left shift.</p>
<p>Syntax</p>
<code>shl(shift-expression, additive-expression)</code>
</section>
<section id="shr" class="my-5">
<h5>shr</h5>
<p>bitwise right shift.</p>
<p>Syntax</p>
<code>shr(shift-expression, additive-expression)</code>
</section>
<section id="cmd-visibility" class="my-5">
<h5>cmd visibility enumerations</h5>
<p>The flags that specify how an application is to be displayed when it is opened.</p>
<pre><code>cmd.hidden
cmd.show
cmd.visible
cmd.normal
cmd.maximized
cmd.minimized</code></pre>
</section>
<section id="selection-modes" class="my-5">
<h5>Selection mode enumerations</h5>
<p>Syntax</p>
<pre><code>mode.none
mode.single
mode.multiple
mode.multiunique
mode.multisingle
mode.multi</code></pre>
</section>
<section id="selection-types" class="my-5">
<h5>Selection type enumerations</h5>
<p>Syntax</p>
<pre><code>type.desktop
type.directory(dir)
type.drive
type.dvd
type.file
type.fixed
type.namespace
type.remote
type.unknown
type.usb
type.vhd</code></pre>
</section>
<h5 id="keywords">Keywords</h5>
<pre><code>null
bool
true
false
auto
none
default</code>
</pre>
<div class="is-unstyled mt-5"><a href="/docs/functions/app">app</a> | <a href="/docs/functions/color">color</a> | <a href="/docs/functions/image">image</a> | <a href="/docs/functions/io">io</a> | <a href="/docs/functions/key">key</a> | <a href="/docs/functions/msg">msg</a> | <a href="/docs/functions/path">path</a> | <a href="/docs/functions/reg">reg</a> | <a href="/docs/functions/sel">sel</a> | <a href="/docs/functions/str">str</a> | <a href="/docs/functions/sys">sys</a> | <a href="/docs/functions/user">user</a>| <a href="/docs/functions/input">input</a>
| <a href="/docs/functions/ini">ini</a> | <a href="/docs/functions/clipboard">clipboard</a>
</div>
+17
View File
@@ -0,0 +1,17 @@
<h5>INI</h5>
<br>
<p>Functions for handling with .ini files.</p>
<br>
<section id="ini.get"class="my-5">
<h5>ini.get</h5>
<p>Returns the value of the key</p>
<p>Syntax</p>
<code>ini.get('path\to\ini file', "section", "key")</code>
</section>
<section id="ini.set" class="my-5">
<h5>ini.set</h5>
<p>Set the key value.</p>
<p>Syntax</p>
<code>ini.set('path\to\ini file', "section", "key", "value")</code>
</section>
+18
View File
@@ -0,0 +1,18 @@
<h5>INPUT</h5>
<br>
<p>The input box allows the user to enter and pass data.</p>
<br>
<section id="input"class="my-5">
<h5>input</h5>
<p>Show the input box with the window title and call parameter passed.<br>
The function returns a non-zero value if the OK button is pressed. Otherwise, it returns zero.</p>
<p>Syntax</p>
<code>input("Title", "Prompt")</code>
</section>
<section id="input.result" class="my-5">
<h5>input.result</h5>
<p>Returns the input value resulting from the input box.</p>
<p>Syntax</p>
<code>input.result</code>
</section>
+183
View File
@@ -0,0 +1,183 @@
<h5>IO</h5>
<br>
<section id="io.attribute" class="my-5">
<h5>io.attribute enumerations.</h5>
<p>Syntax</p>
<pre><code>io.attribute.archive
io.attribute.compressed
io.attribute.device
io.attribute.directory
io.attribute.encrypted
io.attribute.hidden
io.attribute.invalid
io.attribute.normal
io.attribute.offline
io.attribute.readonly
io.attribute.sparsefile
io.attribute.system
io.attribute.temporary
io.attribute.virtual</code></pre>
</section>
<section id="io.attributes" class="my-5">
<h5>io.attributes</h5>
<p>Retrieves file system attributes for a specified path.</p>
<p>Syntax</p>
<code>io.attributes(path)</code><br><br>
<p>attribute verification</p>
<pre><code>// check if path is hidden
io.attribute.hidden(path)
// check if path is directory
io.attribute.directory(path)
var { atrr = io.attributes(path) }
// check if attr is hidden
io.attribute.hidden(atrr)
// check if attr is directory
io.attribute.directory(atrr)</code></pre>
</section>
<section id="io.copy" class="my-5">
<h5>io.copy</h5>
<p>Copies an existing file to a new file.</p>
<p>Syntax</p>
<code>io.copy(pathFrom, pathTo)</code>
<br>
<code>io.copy(pathFrom, pathTo, options)</code>
options:<br>
1 = skip_existing, 2 = overwrite_existing, 4 = update_existing, 16 = recursive<br>
default = update_existing | recursive<br><br>
Example:<br>
<code>io.copy('c:\old', 'd:\new', 16 | 4)</code>
</section>
<section id="io.move" class="my-5">
<h5>io.move</h5>
<p>Moves an existing file or a directory, including its children..</p>
<p>Syntax</p>
<code>io.move(oldPath, newPath)</code>
</section>
<section id="io.rename" class="my-5">
<h5>io.rename</h5>
<p>Rename a file or directory.</p>
<p>Syntax</p>
<code>io.rename(oldName, newName)</code>
</section>
<section id="io.delete" class="my-5">
<h5>io.delete</h5>
<p>Deletes an existing path.</p>
<p>Syntax</p>
<code>io.delete(path)</code>
</section>
<section id="io.directory.create" class="my-5">
<h5>io.directory.create (io.dir.create)</h5>
<p>Create new directory.</p>
<p>Syntax</p>
<code>io.directory.create(path)</code>
</section>
<section id="io.directory.exists" class="my-5">
<h5>io.directory.exists (io.dir.exists)</h5>
<p>Check if one or more directories exists.</p>
<p>Syntax</p>
<code>io.directory.exists(path)</code>
<br>
<code>io.directory.exists(path1, path2, path3, ...)</code>
</section>
<section id="io.directory.empty" class="my-5">
<h5>io.directory.empty (io.dir.empty)</h5>
<p>Check if one or more directory is empty.</p>
<p>Syntax</p>
<code>io.directory.empty(path)</code>
<br>
<code>io.directory.empty(path1, path2, path3, ...)</code>
</section>
<h5 id="file-functions" class="my-5">File functions.</h5>
<section id="io.file.size" class="my-5">
<h5>io.file.size</h5>
<p>Retrieves the size of the specified file, in bytes.</p>
<p>Syntax</p>
<code>io.file.size(path)</code>
</section>
<section id="io.file.exists" class="my-5">
<h5>io.file.exists</h5>
<p>Check if one or more files exists.</p>
<p>Syntax</p>
<code>io.file.exists(path)</code>
<br>
<code>io.file.exists(path1, path2, path3, ...)</code>
</section>
<section id="io.file.read" class="my-5">
<h5>io.file.read</h5>
<p>Read file contents as text with character count option.</p>
<p>Syntax</p>
<code>io.file.read(path)</code><br>
<code>io.file.read(path, 12)</code>
</section>
<section id="io.file.create" class="my-5">
<h5>io.file.create</h5>
<p>Create new file with content option.</p>
<p>Syntax</p>
<code>io.file.create(path)</code><br>
<code>io.file.create(path, "Hello World!")</code>
</section>
<section id="io.file.write" class="my-5">
<h5>io.file.write</h5>
<p>Writing to a file with new content.</p>
<p>Syntax</p>
<code>io.file.write(path, "Hello World!")</code>
</section>
<section id="io.file.append" class="my-5">
<h5>io.file.append</h5>
<p>Appends text to an existing file, or to a new file if the specified file does not exist.</p>
<p>Syntax</p>
<code>io.file.append(path, "Hello ")</code>
<br>
<code>io.file.append(path, "World!")</code>
</section>
<section id="io.datetime" class="my-5">
<h5>io.datetime</h5>
<p>Gets or Sets the time of the file.</p>
<p>Syntax</p>
get date time
<code>
io.datetime.created(sel.path)<br>
io.datetime.modified(sel.path)<br>
io.datetime.accessed(sel.path)<br>
<br>
io.datetime.created(sel.path, 'y/m/d')<br>
io.datetime.modified(sel.path, 'y/m/d')<br>
io.datetime.accessed(sel.path, 'y/m/d')<br>
</code>
<br>
set date time
<br>
<code>
io.datetime.created(sel.path,2000,1,1))<br>
io.datetime.modified(sel.path,2000,1,1))<br>
io.datetime.accessed(sel.path,2000,1,1))<br>
</code>
</section>
<section id="io.meta" class="my-5">
<h5>io.meta</h5>
<p>Gets meta data by <a href="https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/properties/core-bumper.md">property key</a>.</p>
<p>Syntax</p>
<code>io.meta('path\to\file',"System.Size"))</code>
</section>
+92
View File
@@ -0,0 +1,92 @@
<h5>KEY</h5>
<p>Keyboard functions</p>
<section id="keys" class="my-5">
<h5>keys enumerations</h5>
<pre><code>key.alt
key.apps
key.back
key.cancel
key.capital
key.capslock
key.control
key.delete
key.down
key.end
key.enter
key.escape
key.execute
key.f1
key.f10
key.f11
key.f12
key.f2
key.f3
key.f4
key.f5
key.f6
key.f7
key.f8
key.f9
key.help
key.home
key.insert
key.lalt
key.lcontrol
key.left
key.lshift
key.lwin
key.next
key.none
key.pagedown
key.pageup
key.pause
key.play
key.print
key.printscreen
key.prior
key.ralt
key.rcontrol
key.return
key.right
key.rshift
key.rwin
key.shift
key.snapshot
key.space
key.tab
key.up
key.win</code></pre>
</section>
<section id="key" class="my-5">
<h5>key</h5>
<p>Syntax</p>
<pre>
<code>// check if SHIFT key is pressed
key(key.shift)
// or
key == key.shift
// or
key.shift()
// check if tow keys (SHIFT+CTRL) is pressed
key(key.shift, key.control)
// check if keys (SHIFT+CTRL+X) is pressed
key(key.shift, key.control, 87)</code>
</pre>
</section>
<section id="key.send" class="my-5">
<h5>key.send</h5>
<p>Send one or more keys to the current window.</p>
<p>Syntax</p>
<pre><code>key.send(key.f5)
key.send(key.ctrl,'n')
key.send(key.shift, key.delete)</code></pre>
</section>
+130
View File
@@ -0,0 +1,130 @@
<h4>MSG</h4>
<p>Displays a modal dialog box that contains a system icon, a set of buttons, and a brief application-specific message,
such as status or error information. The message box returns an integer value that indicates which button the user
clicked.</p>
<h5 id="syntax">Syntax</h5>
<pre>
msg(text)
msg(text, title)
msg(text, title, flags)
</pre>
<br>
<h5 id="parameters">Parameters</h5>
<table class="table table-borderless">
<tr>
<td class="kw">text</td>
<td>The message to be displayed.</td>
</tr>
<tr>
<td class="kw">title</td>
<td>The dialog box title. If this parameter is NULL, the default title is <b>Nilesoft Shell</b>.</td>
</tr>
<tr>
<td class="kw">flags</td>
<td>The contents and behavior of the dialog box. This parameter can be a combination of flags from the following
groups of flags.
</td>
</tr>
</table>
<h5 id="flags">Flags</h5>
<br>
<h5 id="flags-icon">To display an icon in the message box, specify one of the following values.</h5>
<dl>
<dt>msg.error</dt>
<dd>A stop-sign icon appears in the message box.</dd>
<dt>msg.question</dt>
<dd>A question-mark icon appears in the message box.</dd>
<dt>msg.warning</dt>
<dd>An exclamation-point icon appears in the message box.</dd>
<dt>msg.info</dt>
<dd>An icon consisting of a lowercase letter i in a circle appears in the message box.</dd>
</dl>
<br>
<h5 id="flags-button">To indicate the buttons displayed in the message box, specify one of the following values.</h5>
<dl class="keyword">
<dt>msg.ok</dt>
<dd>The message box contains one push button: OK. This is the default.</dd>
<dt>msg.okcancel</dt>
<dd>The message box contains two push buttons: OK and Cancel.</dd>
<dt>msg.yesnocancel</dt>
<dd>The message box contains three push buttons: Yes, No, and Cancel.</dd>
<dt>msg.yesno</dt>
<dd>The message box contains two push buttons: Yes and No.</dd>
</dl>
<br>
<h5 id="flags-default">To indicate the default button, specify one of the following values.</h5>
<dl>
<dt>msg.defbutton1</dt>
<dd>The first button is the default button.</dd>
<dt>msg.defbutton2</dt>
<dd>The second button is the default button.</dd>
<dt>msg.defbutton3</dt>
<dd>The third button is the default button.</dd>
</dl>
<br>
<h5 id="flags-modal">To indicate the modality of the dialog box, specify one of the following values.</h5>
<dl>
<dt>msg.applmodal</dt>
<dd>The user must respond to the message box before continuing work in the current window. However, the user can
move to the windows of other threads and work in those windows.
</dd>
<dt>msg.taskmodal</dt>
<dd>Same as msg.applmodal except that all the top-level windows belonging to the current thread are disabled.</dd>
</dl>
<br>
<h5 id="flags-options">To specify other options, use one or more of the following values.</h5>
<dl>
<dt>msg.right</dt>
<dd>The text is right-justified.</dd>
<dt>msg.rtlreading</dt>
<dd>Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems.</dd>
<dt>msg.setforeground</dt>
<dd>The message box becomes the foreground window.</dd>
<dt>msg.topmost</dt>
<dd></dd>
</dl>
<br>
<h5 id="flags-return-value">Return value</h5>
<p>If a message box has a Cancel button, the function returns the <code>msg.idcancel</code> value if either the
<kbd>ESC</kbd> key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing
<kbd>ESC</kbd> will no effect - unless an <code>msg.ok</code> button is present. If an <code>msg.ok</code> button is
displayed and the user presses <kbd>ESC</kbd>, the return value will be <code>msg.idok</code>.</p>
<p>If the function fails, the return value is zero.<br>
If the function succeeds, the return value is one of the following values:
</p>
<dl>
<dt>msg.idok or 1</dt>
<dd>The OK button was selected.</dd>
<dt>msg.idcancel or 2</dt>
<dd>The Cancel button was selected.</dd>
<dt>msg.idyes or 6</dt>
<dd>The Yes button was selected.</dd>
<dt>msg.idno or 7</dt>
<dd>The No button was selected.</dd>
</dl>
<h5 id="examples">Examples</h5>
<pre class="syntax"><code>msg("Hello, Warld!","NileSoft Shell", msg.info | msg.ok)<br>
msg("Hello, Warld!","NileSoft Shell")<br>
msg("Hello, Warld!")</code></pre>
<br><br>
<section class="my-5">
<h5>msg.beep(type)</h5>
<p>Plays a waveform sound. The waveform sound for each sound type is identified by an entry in the registry.</p>
<p>Syntax</p>
<code>msg.beep</code><br>
<code>msg.beep(msg.error)</code><br>
<code>msg.beep(msg.warning)</code>
</section>
+253
View File
@@ -0,0 +1,253 @@
<h5>PATH</h5>
<br>
<section id="path.combine" class="my-5">
<h5>path.combine (path.join)</h5>
<p>Combines an array of strings into a path.</p>
<p>Syntax</p>
<code>path.combine(path1, path2)</code><br>
<code>path.combine("C:", "Windows", "Explorer.exe")</code>
</section>
<section id="path.currentdirectory" class="my-5">
<h5>path.currentdirectory (path.curdir)</h5>
<p>Retrieves the current directory for the current process.</p>
<p>Syntax</p>
<code>path.currentdirectory</code>
</section>
<section id="path.directory.name" class="my-5">
<h5>path.directory.name (path.dir.name)</h5>
<p>Return the directory name from the path.</p>
<p>Syntax</p>
<code>path.directory.name('c:\windows\system32') // returns: system32</code>
</section>
<section id="path.directory.box" class="my-5">
<h5>path.directory.box (path.dir.box)</h5>
<p>Shows the directory selection box and returns the path of the specified directory.</p>
<p>Syntax</p>
<code>path.directory.box</code>
</section>
<section id="path.empty" class="my-5">
<h5>path.empty</h5>
<p>Check if one or more path is empty.</p>
<p>Syntax</p>
<code>path.empty(path)</code><br>
<code>path.empty(path1, path2, ...)</code>
</section>
<section id="path.exists" class="my-5">
<h5>path.exists</h5>
<p>Check if one or more path exists..</p>
<p>Syntax</p>
<code>path.exists(path)</code><br>
<code>path.exists(path1, path2, ...)</code>
</section>
<section id="path.full" class="my-5">
<h5>path.full</h5>
<p>Returns the absolute path for the specified path string.</p>
<p>Syntax</p>
<code>path.full(path)</code>
</section>
<section id="path.short" class="my-5">
<h5>path.short</h5>
<p>Retrieves the short path form of the specified path.</p>
<p>Syntax</p>
<code>path.short(path)</code>
</section>
<section id="path.name" class="my-5">
<h5>path.name</h5>
<p>Return the name from the path.</p>
<p>Syntax</p>
<code>path.name(path)</code>
</section>
<section id="path.location" class="my-5">
<h5>path.location (path.parent)</h5>
<p>Return the path of the parent</p>
<p>Syntax</p>
<code>path.location(path)</code>
</section>
<section id="path.location.name" class="my-5">
<h5>path.location.name</h5>
<p>Return the name from the parent</p>
<p>Syntax</p>
<code>path.location.name(path)</code>
</section>
<section id="path.root" class="my-5">
<h5>path.root</h5>
<p>Return the drive path</p>
<p>Syntax</p>
<code>path.root(path)</code>
</section>
<section id="path.title" class="my-5">
<h5>path.title</h5>
<p>Return the title from the path</p>
<p>Syntax</p>
<code>path.title(path)</code>
</section>
<section id="path.type" class="my-5">
<h5>path.type</h5>
<p>Return the type of path</p>
<p>Syntax</p>
<code>path.type(path) == type.file</code>
</section>
<section id="path.file.name" class="my-5">
<h5>path.file.name</h5>
<p>Return the name of path</p>
<p>Syntax</p>
<code>path.file.name(path)</code>
</section>
<section id="path.file.title" class="my-5">
<h5>path.file.title</h5>
<p>Return the name of path without extension</p>
<p>Syntax</p>
<code>path.file.title(path)</code>
</section>
<section id="path.file.ext" class="my-5">
<h5>path.file.ext</h5>
<p>Return the extension of path</p>
<p>Syntax</p>
<code>path.file.ext(path)</code>
</section>
<section id="path.file.box" class="my-5">
<h5>path.file.box</h5>
<p>Shows the file selection box and returns the path of the specified file.</p>
<p>Syntax</p>
<code>path.file.box</code><br>
<code>path.file.box('All|*.*|Text|*.txt')</code><br>
<code>path.file.box('exe|*.exe', 'c:\windows')</code><br>
<code>path.file.box('exe|*.exe', 'c:\windows', 'explorer.exe')</code>
</section>
<section id="path.files" class="my-5">
<h5>path.files</h5>
<p>Returns all files with the ability to filter.</p>
<p>Syntax</p>
<pre><code>path.files(sys.dir, ["*"], flags[2=files | 3=dirs | 5=files+dirs | 8=quots | 16=full path], sep)
// get all files and dirs
path.files(sys.dir)
path.files(sys.dir, "*")
// get all files with .exe
path.files(sys.dir,"*.exe")
// full path + quots
path.files(sys.dir, '*', 8|16)
</code></pre>
</section>
<section id="path.isabsolute" class="my-5">
<h5>path.isabsolute</h5>
<p></p>
<p>Syntax</p>
<code>path.isabsolute(path)</code>
</section>
<section id="path.isrelative" class="my-5">
<h5>path.isrelative</h5>
<p></p>
<p>Syntax</p>
<code>path.isrelative(path)</code>
</section>
<section id="path.isfile" class="my-5">
<h5>path.isfile</h5>
<p></p>
<p>Syntax</p>
<code>path.isfile(path)</code>
</section>
<section id="path.isdirectory" class="my-5">
<h5>path.isdirectory</h5>
<p></p>
<p>Syntax</p>
<code>path.isdirectory(path)</code>
</section>
<section id="path.isroot" class="my-5">
<h5>path.isroot (path.isdrive)</h5>
<p></p>
<p>Syntax</p>
<code>path.isdrive(path)</code>
</section>
<section id="path.isclsid" class="my-5">
<h5>path.isclsid (path.isnamespace)</h5>
<p></p>
<p>Syntax</p>
<code>path.isclsid(path)</code>
</section>
<section id="path.isexe" class="my-5">
<h5>path.isexe</h5>
<p></p>
<p>Syntax</p>
<code>path.isexe(path)</code>
</section>
<section id="path.removeextension" class="my-5">
<h5>path.removeextension</h5>
<p>Remove the extension from the passed parameter.</p>
<p>Syntax</p>
<code>path.removeextension</code>
</section>
<section id="path.lnk" class="my-5">
<h5>path.lnk</h5>
<p>Return a path from the shortcut</p>
<p>Syntax</p>
<code>path.lnk(path)</code>
</section>
<section id="path.lnk.type" class="my-5">
<h5>path.lnk.type</h5>
<p>Return type from the shortcut</p>
<p>Syntax</p>
<code>path.lnk.type(path)</code>
</section>
<section id="path.lnk.dir" class="my-5">
<h5>path.lnk.dir</h5>
<p>Return a dir path from the shortcut</p>
<p>Syntax</p>
<code>path.lnk.dir(path)</code>
</section>
<section id="path.lnk.icon" class="my-5">
<h5>path.lnk.icon</h5>
<p>Return a icon path and index from the shortcut</p>
<p>Syntax</p>
<code>path.lnk.icon(path)</code>
</section>
<section id="path.getknownfolder" class="my-5">
<h5>path.getknownfolder</h5>
<p>Retrieves the full path of a known folder identified.</p>
<p>Syntax</p>
<code>path.getknownfolder('{905e63b6-c1bf-494e-b29c-65b732d3d21a}')</code>
</section>
<section id="path.separator(path.sep)" class="my-5">
<h5>path.separator(path.sep)</h5>
<p>Replacing the back slash with a forward slash or defining a spacer.</p>
<p>Syntax</p>
<code>path.separator('c:\windows\system32')</code> <em>return "c:/windows/system32"</em><br>
<code>path.separator('c:\windows\system32', '#')</code> <em>return "c:#windows#system32"</em>
</section>
<section id="path.wsl" class="my-5">
<h5>path.wsl</h5>
<p>convert the path to wsl path</p>
</section>
+15
View File
@@ -0,0 +1,15 @@
<h5>PROCESS</h5>
<br>
<p></p>
<br>
<section id="syntax" class="my-5">
<h5>Syntax</h5>
<pre><code>
process.handle
process.name
process.id
process.path
process.is_explorer
process.used
</code></pre>
</section>
+92
View File
@@ -0,0 +1,92 @@
<h5>REG</h5>
<p>Registry functions</p>
<br>
<section id="registry-hives" class="my-5">
<h5>Registry hive enum</h5>
<p>Syntax</p>
<pre><code>HKCU
HKCR
HKLM
HKU
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
</code></pre>
</section>
<section id="registry-types" class="my-5">
<h5>Registry value type Enum</h5>
<p>Syntax</p>
<pre><code>reg.none // No data type
reg.sz // REG_SZ
reg.expand // REG_EXPAND_SZ
reg.binary // REG_BINARY
reg.multi // REG_MULTI_SZ
reg.dword // REG_DWORD
reg.qword // REG_QWORD</code></pre>
</section>
<section id="reg-function" class="my-5">
<h5>The function of reading from the Registry.</h5>
<p>Syntax</p>
<code>reg(reg.lm, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion','ProductName')</code><br><br>
<code>reg(reg.cr, 'txtfile\DefaultIcon')</code>
</section>
<section id="reg.exists" class="my-5">
<h5>reg.exists</h5>
<p>Check that the key or value name exists</p>
<p>Syntax</p>
<p>Check that the key exists</p>
<code>reg.exists('HKCU\Control Panel\Desktop')</code>
<p>Check that the value name exists</p>
<code>reg.exists('HKCU\Control Panel\Desktop', "WallPaper")</code>
</section>
<section id="reg.get" class="my-5">
<h5>reg.get</h5>
<p>Read data by value name</p>
<p>Syntax</p>
<pre><code>reg('HKCU\Control Panel\Desktop', "WallPaper")
reg.get('HKCU\Control Panel\Desktop', "WallPaper")
reg.get('HKCU\Control Panel\Desktop')</code></pre>
</section>
<section id="reg.set" class="my-5">
<h5>reg.set</h5>
<p>Allows creating a subkey with the value name and value data</p>
<p>Syntax</p>
<p>Create Subkey</p>
<pre><code>reg.set('HKCU\Software\Nilesoft\Shell')</pre></code>
<p>Create Subkey with value and set value data type.</p>
<pre><code>reg.set('HKCU\Software\Nilesoft\Shell', "test-int", 1, reg.dword)
reg.set('HKCU\Software\Nilesoft\Shell', "test-str", 1, reg.sz)
reg.set('HKCU\Software\Nilesoft\Shell', "test-str", 'some string', reg.sz)</code></pre>
<p>Set value data with auto type detection.</p><pre><code>
reg.set('HKCU\Software\Nilesoft\Shell', 'test-auto-int', 1)
reg.set('HKCU\Software\Nilesoft\Shell', 'test-auto-str', 'some string')</code></pre>
</section>
<section id="reg.delete" class="my-5">
<h5>reg.delete</h5>
<p>Allows deleting a subkey or deleting a value</p>
<p>Syntax</p>
<p>Delete value name.</p>
<pre><code>reg.delete('HKCU\Software\Nilesoft\Shell', 'test-auto')</pre></code>
<p>Delete subkey.</p>
<pre><code>reg.delete('HKCU\Software\Nilesoft\Shell')</code></pre>
</section>
<section id="reg.keys" class="my-5">
<h5>reg.keys</h5>
<p>Returns all subkey names</p>
<p>Syntax</p>
<pre><code>reg.keys('HKCU\Software\Nilesoft\Shell')</pre></code>
</section>
<section id="reg.values" class="my-5">
<h5>reg.values</h5>
<p>Returns all value names</p>
<p>Syntax</p>
<pre><code>reg.values('HKCU\Software\Nilesoft\Shell')</pre></code>
</section>
+20
View File
@@ -0,0 +1,20 @@
<h5>REGEX</h5>
<p>regex functions</p>
<br>
<section id="regex.match" class="my-5">
<h5>regex.match</h5>
<p>Returns true if a match exists, false otherwise.</p>
<p>Syntax</p>
<pre><code>regex.match(str, pattern)</code></pre>
</section>
<section id="regex.matches" class="my-5">
<h5>regex.matches</h5>
<p>Returns an array of strings</p>
<p>Syntax</p>
<pre><code>regex.matches(str, pattern)</code></pre>pre>
</section>
<section id="regex.replace" class="my-5">
<h5>regex.replace</h5>
<p>Syntax</p>
<pre><code>regex.replace(str, pattern, "new str")</code></pre>
</section>
+247
View File
@@ -0,0 +1,247 @@
<h5>SEL</h5>
<p>Has many functions to handle selected file system objects.</p>
<br>
<section id="sel" class="my-5">
<h5>sel</h5>
<p>Returns all selected items with double quotation mark and custom separator.</p>
<p>Syntax</p>
<code>sel(quote=<span class="syntax-keyword">false</span>, separator=' ')</code>
<p>Parameters</p>
<dl>
<dt>quote</dt>
<dd>Sets if the return value shall be quoted.</dd>
<dt>separator</dt>
<dd>Separator to join the different items from the selection.</dd>
</dl>
<p>Example</p>
<pre><code>sel
sel(true)
sel(true, "\n")</code></pre>
</section>
<section id="sel.path" class="my-5">
<h5>sel.path</h5>
<p>Returns the path of the selected item..</p>
</section>
<section id="sel.path.name" class="my-5">
<h5>sel.path.name</h5>
<p>Returns the name without the extension of the selected item.</p>
</section>
<section id="sel.path.length" class="my-5">
<h5>sel.path.length</h5>
<p>Returns the number of characters in the path of the selected item.</p>
</section>
<section id="sel.path.title" class="my-5">
<h5>sel.path.title</h5>
<p>Returns the path title of the selected item.</p>
</section>
<section id="sel.path.quote" class="my-5">
<h5>sel.path.quote</h5>
<p>Returns the path of the selected item. with double quotation mark.</p>
</section>
<section id="sel.short" class="my-5">
<h5>sel.short</h5>
<p>Returns the short path of the selected item.</p>
</section>
<section id="sel.short.length" class="my-5">
<h5>sel.short.length</h5>
<p>Returns the number of characters in the short path of the selected item.</p>
</section>
<section id="sel.raw" class="my-5">
<h5>sel.raw</h5>
<p>Returns the path of the selected item in raw format.</p>
</section>
<section id="sel.raw.length" class="my-5">
<h5>sel.raw.length</h5>
<p>Returns the number of characters in the raw path of the selected item.</p>
</section>
<section id="sel.root" class="my-5">
<h5>sel.root</h5>
<p>Returns the root directory from the path of the selected items.</p>
</section>
<section id="sel.name" class="my-5">
<h5>sel.name</h5>
<p>Returns the name and extension of the selected item.</p>
</section>
<section id="sel.name.length" class="my-5">
<h5>sel.name.length</h5>
<p>Returns the number of characters in the name of the selected item.</p>
</section>
<section id="sel.title" class="my-5">
<h5>sel.title</h5>
<p>Returns the name without extension of the selected item.</p>
</section>
<section id="sel.title.length" class="my-5">
<h5>sel.title.length</h5>
<p>Returns the number of characters in the name without extension of the selected item.</p>
</section>
<section id="sel.parent" class="my-5">
<h5>sel.parent</h5>
<p>Returns the directory path for the selected item.</p>
</section>
<section id="sel.parent.quote" class="my-5">
<h5>sel.parent.quote</h5>
<p>Returns the directory path for the selected item with quotation mark.</p>
</section>
<section id="sel.parent.raw" class="my-5">
<h5>sel.parent.raw</h5>
<p>Returns the directory path for the selected item in raw format.</p>
</section>
<section id="sel.parent.name" class="my-5">
<h5>sel.parent.name</h5>
<p>Returns the name of the parent of the selected item.</p>
</section>
<section id="sel.parent.length" class="my-5">
<h5>sel.parent.length</h5>
<p>Returns the number of characters in the parent path of the selected item.</p>
</section>
<section id="sel.count" class="my-5">
<h5>sel.count</h5>
<p>Returns count selected items.</p>
</section>
<section id="sel.back" class="my-5">
<h5>sel.back</h5>
<p>Returns whether the selection is in the background.</p>
</section>
<section id="sel.curdir" class="my-5">
<h5>sel.curdir or sel.workdir</h5>
<p>Returns the path of current working directory.</p>
</section>
<section id="sel.file" class="my-5">
<h5>sel.file</h5>
<p>Returns the path for the selected item. If it is a file</p>
</section>
<section id="sel.file.name" class="my-5">
<h5>sel.file.name</h5>
<p>Returns the name for the selected item. If it is a file.</p>
</section>
<section id="sel.file.name.length" class="my-5">
<h5>sel.file.name.length</h5>
<p>Returns the number of characters in the name of the selected item. If it is a file.</p>
</section>
<section id="sel.file.ext" class="my-5">
<h5>sel.file.ext</h5>
<p>Returns the extension for the selected item. If it is a file.</p>
</section>
<section id="sel.file.title" class="my-5">
<h5>sel.file.title</h5>
<p>Returns the name without an extension for the selected item. If it is a file.</p>
</section>
<section id="sel.file.quote" class="my-5">
<h5>sel.file.quote</h5>
<p>Returns the path for the selected item with quotation mark. If it is a file.</p>
</section>
<section id="sel.directory" class="my-5">
<h5>sel.directory</h5>
<p>Returns the path for the selected item. If it is a directory.</p>
</section>
<section id="sel.directory.name" class="my-5">
<h5>sel.directory.name</h5>
<p>Returns the name for the selected item. If it is a directory.</p>
</section>
<section id="sel.directory.length" class="my-5">
<h5>sel.directory.length</h5>
<p>Returns the number of characters in the path of the selected item. If it is a directory.</p>
</section>
<section id="sel.directory.quote" class="my-5">
<h5>sel.directory.quote</h5>
<p>Returns the path for the selected item with quotation mark. If it is a directory.</p>
</section>
<section id="sel.get" class="my-5">
<h5>sel.get</h5>
<p>Returns the path of the selected item by referring to the index number.</p>
<p>Syntax</p>
<code>sel.get(index=<code>0</code>)</code>
</section>
<section id="sel.path.raw" class="my-5">
<h5>sel.path.raw</h5>
<p>Returns the raw path of the selected item by referring to the index number.</p>
<p>Syntax</p>
<code>sel.path.raw(index=<code>0</code>)</code>
</section>
<section id="sel.length" class="my-5">
<h5>sel.length</h5>
<p>Returns the number of characters in the path of the selected item by referring to the index number.</p>
<p>Syntax</p>
<code>sel.length(index=<code>0</code>)</code>
</section>
<section id="sel.readonly" class="my-5">
<h5>sel.readonly</h5>
<p>Returns whether the selected item by referring to the index number is read-only.</p>
<p>Syntax</p>
<code>sel.readonly(index=<code>0</code>)</code>
</section>
<section id="sel.hidden" class="my-5">
<h5>sel.hidden</h5>
<p>Returns whether the selected item by referring to the index number is hidden.</p>
<p>Syntax</p>
<code>sel.hidden(index=<code>0</code>)</code>
</section>
<section id="sel.meta" class="my-5">
<h5>sel.meta</h5>
<p>Gets meta data by <a href="https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/properties/core-bumper.md">property key</a>.</p>
<p>Syntax</p>
<code>sel.meta("System.Size"))</code>
</section>
<section id="sel.lnk" class="my-5">
<h5>sel.lnk</h5>
<p>Return the target file/dir path from the selected shortcut</p>
<p>Syntax</p>
<code>sel.lnk</code>
</section>
<section id="sel.lnk.type" class="my-5">
<h5>sel.lnk.type</h5>
<p>Return type the shortcut</p>
<p>Syntax</p>
<code>sel.lnk.type</code>
</section>
<section id="sel.lnk.dir" class="my-5">
<h5>sel.lnk.dir</h5>
<p>Return a dir path from the shortcut</p>
<p>Syntax</p>
<code>sel.lnk.dir</code>
</section>
<section id="sel.lnk.icon" class="my-5">
<h5>sel.lnk.icon</h5>
<p>Return a icon path and index from the shortcut</p>
<p>Syntax</p>
<code>sel.lnk.icon</code>
</section>
+214
View File
@@ -0,0 +1,214 @@
<h5>STR</h5>
<br>
<section id="str.get" class="my-5">
<h5>str.get (str.at)</h5>
<p>Returns a character from a specific location in the string.</p>
<p>Syntax</p>
<code>str.get("Hello World!", 7)</code>
</section>
<section id="str.set" class="my-5">
<h5>str.set</h5>
<p>Sets a character with a specific location in the string.</p>
<p>Syntax</p>
<code>str.set("Hello World!", 6, '-')</code>
</section>
<section id="str.contains" class="my-5">
<h5>str.contains</h5>
<p>Returns a value indicating whether a specified substring occurs within this string.</p>
<p>Syntax</p>
<code>str.contains("Hello World!", 'World')</code>
</section>
<section id="str.empty" class="my-5">
<h5>str.empty (str.null)</h5>
<p>Tests whether the string contains characters.</p>
<p>Syntax</p>
<code>str.empty("")</code>
</section>
<section id="str.start" class="my-5">
<h5>str.start</h5>
<p>Checks whether the string starts with the specified prefix.</p>
<p>Syntax</p>
<code>str.start("Hello World!", "World!")</code>
</section>
<section id="str.end" class="my-5">
<h5>str.end</h5>
<p>Checks whether the string ends with the specified suffix.</p>
<p>Syntax</p>
<code>str.end("Hello World!", "World!")</code>
</section>
<section id="str.equals" class="my-5">
<h5>str.equals</h5>
<p>Determines whether two String have the same value.</p>
<p>Syntax</p>
<code>str.equals("Hello World!", "Hello World!")</code>
</section>
<section id="str.not" class="my-5">
<h5>str.not</h5>
<p>Determine if two strings do not have the same value.</p>
<p>Syntax</p>
<code>str.not("Hello World!", "Hello-World!")</code>
</section>
<section id="str.length" class="my-5">
<h5>str.length (str.len)</h5>
<p>Gets the number of characters in the current string.</p>
<p>Syntax</p>
<code>str.length("Hello World!")</code>
</section>
<section id="str.trim" class="my-5">
<h5>str.trim</h5>
<p>Returns a new string in which all leading and trailing occurrences of a set of specified characters from the current string are removed.</p>
<p>Syntax</p>
<p>Removes all leading and trailing white-space characters from the current string.</p>
<code>str.trim(" Hello World! ")</code><br><br>
<p>Removes all leading and trailing 'H!' characters from the current string.</p>
<code>str.trim("Hello World!", "H!")</code>
</section>
<section id="str.trimstart" class="my-5">
<h5>str.trimstart</h5>
<p>Returns a new string in which all leading occurrences of a set of specified characters from the current string are removed.</p>
<p>Syntax</p>
<p>Removes all leading white-space characters from the current string.</p>
<code>str.trimstart(" Hello World!")</code><br>
<p>Removes all leading 'H' characters from the current string.</p>
<code>str.trimstart("Hello World!", "H")</code>
</section>
<section id="str.trimend" class="my-5">
<h5>str.trimend</h5>
<p>Returns a new string in which all trailing occurrences of a set of specified characters from the current string are removed.</p>
<p>Syntax</p>
<p>Removes all trailing white-space characters from the current string.</p>
<code>str.trimend("Hello World! ")</code><br>
<p>Removes all trailing '!' characters from the current string.</p>
<code>str.trimend("Hello World!", "!")</code>
</section>
<section id="str.find" class="my-5">
<h5>str.find</h5>
<p>Searches a string in a forward direction for the first occurrence of a substring that matches a specified sequence of characters.</p>
<p>Syntax</p>
<code>str.find("Hello World!", "lo")</code>
</section>
<section id="str.findlast" class="my-5">
<h5>str.findlast</h5>
<p>Searches a string in a backward direction for the first occurrence of a substring that matches a specified sequence of characters.</p>
<p>Syntax</p>
<code>str.findlast("Hello World!", "Wor")</code>
</section>
<section id="str.lower" class="my-5">
<h5>str.lower</h5>
<p>Returns a copy of this string converted to lowercase.</p>
<p>Syntax</p>
<code>str.lower("Hello World!")</code>
</section>
<section id="str.upper" class="my-5">
<h5>str.upper</h5>
<p>Returns a copy of this string converted to uppercase.</p>
<p>Syntax</p>
<code>str.upper("Hello World!")</code>
</section>
<section id="str.left" class="my-5">
<h5>str.left</h5>
<p>Extracts the left part of a string.</p>
<p>Syntax</p>
<code>str.left("Hello World!", 5)</code>
</section>
<section id="str.right" class="my-5">
<h5>str.right</h5>
<p>Extracts the right part of a string.</p>
<p>Syntax</p>
<code>str.right("Hello World!", 5)</code>
</section>
<section id="str.sub" class="my-5">
<h5>str.sub</h5>
<p>Copies a substring of at most some number of characters from a string beginning from a specified position.</p>
<p>Syntax</p>
<code>str.sub("Hello World!", 5)</code><br>
<code>str.sub("Hello World!", 0, 5)</code>
</section>
<section id="str.remove" class="my-5">
<h5>str.remove</h5>
<p>Removes an element or a range of elements in a string from a specified position.</p>
<p>Syntax</p>
<code>str.replace("Hello World!", " ")</code><br>
<code>str.remove("Hello World!", 5)</code><br>
<code>str.remove("Hello World!", 5, 1)</code>
</section>
<section id="str.replace" class="my-5">
<h5>str.replace</h5>
<p>Replace elements in a string at a specified position with specific characters or characters copied from other ranges or strings.</p>
<p>Syntax</p>
<code>str.replace("Hello World!", "World", "User")</code><br>
<code>str.replace("Hello World!", "world", "user", true)</code>
</section>
<section id="str.padleft" class="my-5">
<h5>str.padleft</h5>
<p>Returns a new string of a specified length in which the beginning of the current string is padded with spaces or with a specified character.</p>
<p>Syntax</p>
<code>str.padleft("Hello World!", "*")</code><br>
<code>str.padleft("Hello World!", "*", 3)</code>
</section>
<section id="str.padright" class="my-5">
<h5>str.padright</h5>
<p>Returns a new string of a specified length in which the end of the current string is padded with spaces or with a specified character.</p>
<p>Syntax</p>
<code>str.padright("Hello World!", "*")</code><br>
<code>str.padright("Hello World!", "*", 3)</code>
</section>
<section id="str.padding" class="my-5">
<h5>str.padding</h5>
<p>Returns a new string of a specified length in which the start and end of the current string is padded with spaces or with a specified character.</p>
<p>Syntax</p>
<code>str.padding("Hello World!", "*")</code><br>
<code>str.padding("Hello World!", "*", 3)</code>
</section>
<section id="str.guid" class="my-5">
<h5>str.guid</h5>
<p>Returns a new guid string</p>
<p>Syntax</p>
<code>str.guid</code> return 00000000000000000000000000000000 <br>
<code>str.guid(1)</code> return 00000000-0000-0000-0000-000000000000 <br>
<code>str.guid(2)</code> return {00000000-0000-0000-0000-000000000000} <br>
<code>str.guid(3)</code> return (00000000-0000-0000-0000-000000000000) <br>
</section>
<section id="str.capitalize" class="my-5">
<h5>str.capitalize</h5>
<p>Returns a new capitalize string</p>
<p>Syntax</p>
<code>str.capitalize('hello world')</code> return "Hello World" <br>
</section>
<section id="str.res" class="my-5">
<h5>str.res</h5>
<p>Returns a string resource from the executable file. <em>"shell32.dll" is the default file.</em></p>
<p>Syntax</p>
<code>str.res(-4640)</code> return "Runs the selected command with elevation" from "shell32.dll"<br>
<code>str.res('explorer.dll', -22000)</code> return "Desktop" <br>
</section>
+166
View File
@@ -0,0 +1,166 @@
<h5>SYS (SYSTEM)</h5>
<section id="sys.name" class="my-5">
<h5>sys.name</h5>
<p>Returns Windows name.</p>
<p>Syntax</p>
<code>sys.name</code>
</section>
<section id="sys.type" class="my-5">
<h5>sys.type</h5>
<p>Returns system architecture.</p>
<p>Syntax</p>
<code>sys.type == 64</code><br>
<code>sys.type == 32</code>
</section>
<section id="sys.is64" class="my-5">
<h5>sys.is64</h5>
<p>Returns if system architecture is x64.</p>
<p>Syntax</p>
<code>sys.is64</code>
</section>
<section id="sys.dark" class="my-5">
<h5>sys.dark</h5>
<p>Check if dark mode is enabled.</p>
<p>Syntax</p>
<code>sys.dark</code>
</section>
<section id="sys.var" class="my-5">
<h5>sys.var</h5>
<p>Retrieves the value of an environment variable.</p>
<p>Syntax</p>
<code>sys.var('WINDIR')</code>
</section>
<section id="sys.version" class="my-5">
<h5>sys.version (sys.ver)</h5>
<p>Windows version.</p>
<p>Syntax</p>
<pre><code>sys.version
sys.version.build
sys.version.major
sys.version.minor
sys.version.name
sys.version.type</code></pre>
</section>
<section id="sys.datetime" class="my-5">
<h5>sys.datetime (system.datetime)</h5>
<p>Date and time format</p>
<p>Syntax</p>
<pre><code>sys.datetime // the date and time in a short format (Format: YYYY.MM.DD-HH.MM.SS).
sys.datetime.short // the date and time in a short format (Format: YYYY.MM.DD-HH.MM.SS).
sys.datetime.dayofweek (sys.datetime.dw) // the day of the week as a number (Sunday as 1)
sys.datetime.date // the full date in a long format (Format: YYYY.MM.DD).
sys.datetime.yy // the year part of the current date as a two-digit number.
sys.datetime.year (sys.datetime.y) // the year part of the current date as a four-digit number.
sys.datetime.month (sys.datetime.m) // the month part of the current date.
sys.datetime.day (sys.datetime.d) // the day part of the current date.
sys.datetime.time // the full time in hours, minutes, and seconds (Format: HH.MM.SS).
sys.datetime.pm // "AM" or "PM" based on the current time.
sys.datetime.hour (sys.datetime.h) // the hour part of the current time (24-hour format).
sys.datetime.minute (sys.datetime.min) // the minutes part of the current time.
sys.datetime.second (sys.datetime.s) // the seconds part of the current time.
sys.datetime.milliseconds (sys.datetime.ms) // the milliseconds part of the current time as a three-digit number.
sys.datetime("D") // the full date in a short format (Format: DD/MM/YYYY).
sys.datetime("Y") // the year part of the current date as a four-digit number.
sys.datetime("y") // the year part of the current date as a two-digit number.
sys.datetime("m") // the month part of the current date as a two-digit number.
sys.datetime("d") // the day part of the current date as a two-digit number.
sys.datetime("P") (sys.datetime("p")) // "AM" or "PM" based on the current time.
sys.datetime("h") // the hour part of the current time as a two-digit number (12-hour format).
sys.datetime("H") // the hour part of the current time as a two-digit number (24-hour format).
sys.datetime("M") // the minute part of the current time as a two-digit number.
sys.datetime("S") // the second part of the current time as a two-digit number.
sys.datetime("s") // the milliseconds part of the current time as a three-digit number.
datetime("y/m/d") // the date in a short format (Format: YYYY/MM/DD).
datetime("h:M P") // the time in a short format (Format: HH:MM AM/PM).
datetime("H.M.S.s") // the time in a long format (Format: HH.MM.SS.MS).</code></pre>
</section>
<section id="sys.paths" class="my-5">
<h5>Windows paths</h5>
<pre><code>sys // %WINDIR%
sys.root // %SYSTEMDRIVE%
sys.programdata // %PROGRAMDATA%
sys.prog // %PROGRAMFILES%
sys.prog32 // %PROGRAMFILES(x86)%
sys.templates
sys.users
sys.appdata // %APPDATA%
sys.temp // %TEMP%
sys.directory (sys.dir) // %WINDIR%
sys.path // %WINDIR%
sys.bin // %WINDIR%\system32
sys.bin32
sys.bin64
sys.wow</code></pre>
</section>
<section id="sys.is_primary_monitor" class="my-5">
<h5>sys.is_primary_monitor</h5>
<p>Returns true if the current monitor is the primary</p>
<p>Syntax</p>
<code>sys.is_primary_monitor</code><br>
</section>
<section id="sys.langid" class="my-5">
<h5>sys.langid</h5>
<p>Returns the language ID</p>
<p>Syntax</p>
<code>sys.langid</code><br>
</section>
<section id="sys.extended" class="my-5">
<h5>sys.extended</h5>
<p>Returns whether the Shift key is currently pressed</p>
<p>Syntax</p>
<code>sys.extended</code><br>
</section>
<section id="sys.is11" class="my-5">
<h5>sys.is11</h5>
<p>Returns whether the Windows version is 11</p>
<p>Syntax</p>
<code>sys.is11</code><br>
</section>
<section id="sys.is10" class="my-5">
<h5>sys.is10</h5>
<p>Returns whether the Windows version is 10</p>
<p>Syntax</p>
<code>sys.is10</code><br>
</section>
<section id="sys.is81" class="my-5">
<h5>sys.is81</h5>
<p>Returns whether the Windows version is 8.1</p>
<p>Syntax</p>
<code>sys.is81</code><br>
</section>
<section id="sys.is8" class="my-5">
<h5>sys.is8</h5>
<p>Returns whether the Windows version is 8</p>
<p>Syntax</p>
<code>sys.is8</code><br>
</section>
<section id="sys.is7" class="my-5">
<h5>sys.is7</h5>
<p>Returns whether the Windows version is 7</p>
<p>Syntax</p>
<code>sys.is7</code><br>
</section>
+18
View File
@@ -0,0 +1,18 @@
<h5>THIS</h5>
<br>
<p>This namespace contains functions that are used with the current item in the context menu.</p>
<br>
<section id="syntax" class="my-5">
<h5>Syntax</h5>
<pre><code>
this.type // Returns the type of the current item [item = 0, menu = 1, separator = 2]
this.checked // Returns true if the current item is checked
this.pos // Returns the position of the current item in the context menu
this.disabled // Returns true if the current item is disabled
this.sys // Returns true if the current item is a system item
this.title // Returns the title of the current item
this.id // Returns the ID of the current item
this.count // Returns the number of items in the context menu
this.length // Returns the length of the current item's title
</code></pre>
</section>
+36
View File
@@ -0,0 +1,36 @@
<h5>USER</h5>
<br>
<section id="user.name" class="my-5">
<h5>user.name</h5>
<p>Returns the current username.</p>
<p>Syntax</p>
<code>user.name</code>
</section>
<section id="user-functions" class="my-5">
<h5>Functions to return the path of user directories</h5>
<p>Syntax</p>
<pre><code>user.home
user.appdata
user.contacts
user.desktop
user.directory (user.dir)
user.documents
user.documentslibrary
user.downloads
user.favorites
user.libraries
user.localappdata
user.music
user.personal
user.pictures
user.profile
user.quicklaunch
user.sendto
user.startmenu
user.temp
user.templates
user.videos</code>
</pre>
</section>
+34
View File
@@ -0,0 +1,34 @@
<h5>WINDOW, WND</h5>
<br>
<p></p>
<br>
<section id="syntax" class="my-5">
<h5>Syntax</h5>
<pre><code>
window.is_taskbar // Returns true if the window handle is for the Taskbar window
window.is_desktop // Returns true if the window handle is for the Desktop window
window.is_explorer // Returns true if the window handle is for the Explorer window
window.is_tree // Returns true if the window handle is for the Side window
window.is_edit // Returns true if the window handle is for the Edit menu
window.is_start // Returns true if the window handle is for the Win+X menu
window.send(name, msg, wparam, lparam) // Search for the window by name and send the specified message
window.post(name, msg, wparam, lparam) // Search for the window by name and send the specified message without waiting
window.send(null, msg, wparam, lparam) // Send the specified message to current window.
window.post(null, msg, wparam, lparam) // Send the specified message without waiting to current window.
window.command(command) // Send WM_COMMAND to current window.
window.command(command, name) // Search for the window by name and send the command to it.
window.handle
window.name
window.title
window.owner
window.parent
window.parent.handle
window.parent.name
window.is_contextmenuhandler
</code></pre>
</section>