chore: import upstream snapshot with attribution
@@ -0,0 +1,202 @@
|
||||
<h4>Syntax Rules for Configuration Files</h4>
|
||||
<br>
|
||||
<p>This chapter describes the syntax rules for the configuration files.</p>
|
||||
<p>The main configuration file <a href="#shell.nss"><code>shell.nss</code></a> is located in the installation directory of
|
||||
<strong>Shell</strong>, depending on your <a href="/docs/installation">installation method</a>.
|
||||
</p>
|
||||
|
||||
<h5 id="syntax-general">General rules</h5>
|
||||
<ul>
|
||||
<li>Syntax is case-insensitive.</li>
|
||||
<li>Spaces around the equal (<code>=</code>) sign are optional and are ignored.</li>
|
||||
<li>The properties of <a href="/docs/configuration/modify-items">modify-items</a> and <a href="/docs/configuration/new-items">new-items</a> items are separated
|
||||
by blank spaces or on a <a href="#breaking-long-lines">separate line</a> and must be placed in
|
||||
parentheses <code>( )</code>.
|
||||
</li>
|
||||
<li>Other configuration files can be imported using the <a href="#import">import tag</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="notification is-info">
|
||||
<i>Tip:</i> When there is an error, it is recorded in the log file (<code>shell.log</code>, which is also located in
|
||||
your <a href="/docs/installation">installation directory</a>.).
|
||||
</div>
|
||||
|
||||
<h5 id="shell.nss">shell.nss structure</h5>
|
||||
<p>The global section <code>shell{}</code> may have the following subsections:</p>
|
||||
<ul>
|
||||
<li>Section <a href="/docs/configuration/settings">settings{}</a>. Optional.</li>
|
||||
<li>Section <a href="/docs/configuration/modify-items">modify-items</a> with
|
||||
instructions on how to <strong>change existing menuitems</strong>. Optional.
|
||||
<ul>
|
||||
<li>modify-items are only of 2 type: modify and remove.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Section <a href="/docs/configuration/new-items">modify-items</a> with
|
||||
definitions for <strong>new <a href="/docs/configuration/new-items#menuitem">menuitems</a></strong>.
|
||||
Optional.
|
||||
<ul>
|
||||
<li>Dynamic <a href="/docs/configuration/new-items#menuitem">menuitems</a>
|
||||
may have one of three types: <a href="/docs/configuration/new-items#menu">menu</a>, <a href="/docs/configuration/new-items#item">item</a>, or <a href="/docs/configuration/new-items#separator">separator (sep)</a>.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h5 id="syntax-example">Example</h5>
|
||||
<pre><code class="lang-shell">// variable declaration
|
||||
$variable-name = variable-value
|
||||
|
||||
//image declaration
|
||||
@image-id = image-value
|
||||
|
||||
settings
|
||||
{
|
||||
key-name = key-value
|
||||
key-name = [key-value, key-value, ...]
|
||||
...
|
||||
}
|
||||
|
||||
theme
|
||||
{
|
||||
key-name = key-value
|
||||
...
|
||||
}
|
||||
|
||||
// modify items
|
||||
modify ( property-name = property-value ... )
|
||||
remove ( property-name = property-value ... )
|
||||
|
||||
// new items
|
||||
|
||||
item ( property-name = property-value ... )
|
||||
|
||||
separator [( property-name = property-value ... )]
|
||||
|
||||
menu ( property-name = property-value ... )
|
||||
{
|
||||
$variable-name = variable-value
|
||||
|
||||
item ( property-name = property-value ... )
|
||||
...
|
||||
}</code></pre>
|
||||
<br>
|
||||
|
||||
<h4 id="breaking-long-lines">Breaking Long Lines</h4>
|
||||
<p>For best readability, users often like to avoid lines longer than 80 characters. single
|
||||
quotes also allow break up a line.</p>
|
||||
<pre><code class="lang-shell">item(title='Command prompt'
|
||||
cmd='cmd.exe')
|
||||
</code></pre>
|
||||
<br>
|
||||
|
||||
<h4 id="import">Import tag</h4>
|
||||
<p>To better organise the configuration file, parts of the configuration can be saved in separate files. These are then
|
||||
imported using the import tag. With this method, it is also possible to import the same file as a sort of "module"
|
||||
into different parts of the configuration. A convenient way to include the same sub-menu in different
|
||||
locations..</p>
|
||||
<h5 id="import-syntax">Syntax</h5>
|
||||
<p>The general syntax is as follows:</p>
|
||||
<pre><code class="lang-shell">import %path%</code></pre>
|
||||
<p>Where</p>
|
||||
<ul>
|
||||
<li id="import-syntax-section"><code>%section%</code> is the name of a section. Optional. If given, it must be one
|
||||
of
|
||||
<ul>
|
||||
<li>settings</li>
|
||||
<li>themes</li>
|
||||
<li>modify-items</li>
|
||||
<li>new-items</li>
|
||||
</ul>
|
||||
The section name is written literally, without any quotes (or the percent signs).
|
||||
</li>
|
||||
<li id="import-syntax-path"><code>%path%</code> is a <a href="/docs/expressions/string">string</a> literal, that returns the path to the
|
||||
config file that shall be imported. This can be a relative path to the location of the file where the import tag is used, or it can be an absolute path. Expressions are
|
||||
supported when using <a href="/docs/expressions/string#single-quotes">single quotes</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>There are effectively two different ways this tag is applied, depending on whether the optional
|
||||
<code>%section%</code> is given:</p>
|
||||
<ul>
|
||||
<li>Import an entire section</li>
|
||||
<li>Import as a partial:</li>
|
||||
</ul>
|
||||
|
||||
<h5 id="import-section">Import an entire section</h5>
|
||||
<pre><code class="lang-shell">// import an entire section
|
||||
import %path%
|
||||
</code></pre>
|
||||
In this case, the content of the file found at <code>%path%</code> will be imported into<strong> a newly
|
||||
created</strong> <code>section{}</code>.
|
||||
The result would then look like so:
|
||||
<pre><code class="lang-shell">// import an entire section
|
||||
section {
|
||||
/* content of the imported file goes here! Do not include
|
||||
*
|
||||
* section {
|
||||
* }
|
||||
*
|
||||
* in your imported file!
|
||||
*/
|
||||
}</code></pre>
|
||||
<p>This syntax may be used only in the following places: </p>
|
||||
<ul>
|
||||
<li><s>root section shell{}: <code>shell import %path%</code></s>
|
||||
</li>
|
||||
<li>the global sections
|
||||
<ul>
|
||||
<li><s>settings{}: <code>import %path%</code></s></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
sub-sections of the settings{} section:
|
||||
<ul>
|
||||
<li><s>theme.background{}: <code>background import
|
||||
%path%</code></s></li>
|
||||
<li><s>theme.item{}: <code>item import
|
||||
%path%</code></s></li>
|
||||
<li><s>theme.border{}: <code>border import
|
||||
%path%</code></s></li>
|
||||
<li><s>...</s></li>
|
||||
<li><s>settings.tip{}: <code>tip import %path%</code></s></li>
|
||||
<li><s>settings.exclude{}: <code>exclude import
|
||||
%path%</code></s></li>
|
||||
<li><s>settings.modify{}: <code>static import %path%</code></s>
|
||||
</li>
|
||||
<li><s>settings.new{}: <code>dynamic import
|
||||
%path%</code></s></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<h5 id="import-partial">Import as a partial</h5>
|
||||
<pre><code class="lang-shell">section {
|
||||
// some code might go here. Optional.
|
||||
|
||||
// import of a partial section
|
||||
import %path%
|
||||
|
||||
// some more content might go here. Optional.
|
||||
}</code></pre>
|
||||
In this case, the content of the file found at <code>%path%</code> will be imported into the <strong>already
|
||||
existing</strong> <code>section{}</code>.
|
||||
The result would then look like so:
|
||||
<pre><code class="lang-shell">section {
|
||||
// some code might go here. Optional.
|
||||
|
||||
// import of a partial section
|
||||
/* content of the imported file goes here! Do not include
|
||||
*
|
||||
* section {
|
||||
* }
|
||||
*
|
||||
* in your imported file!
|
||||
*/
|
||||
|
||||
// some more content might go here. Optional.
|
||||
}</code></pre>
|
||||
<p>This syntax may be used nearly anywhere: </p>
|
||||
<ul>
|
||||
<li>in any section</li>
|
||||
<li>in the body of <a href="/docs/configuration/new-items#menu">menu tags</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,62 @@
|
||||
<h4 id="_top">Modify Items</h4>
|
||||
<br>
|
||||
<p>The optional <code>modify</code> section contains entries to <strong>modify existing context menu items</strong>,
|
||||
added by the system or by a third party.</p>
|
||||
|
||||
<h5 id="sub-items">Sub-items</h5>
|
||||
<p>The section can have the following entry types, all of which are <strong>optional</strong>:</p>
|
||||
<ul>
|
||||
<li>One or more <a href="#item"><code>item</code> entries</a>.
|
||||
These contain the instructions on which and how to change existing <a href="/docs/configuration/new-items#menuitem">menuitems</a>.
|
||||
</li>
|
||||
<li>One or more <a href="/docs/configuration#import"><code><code>imports</code></code></a>. The content of the
|
||||
given file will be placed in the position of the import.
|
||||
</li>
|
||||
</ul>
|
||||
<h5 id="example">Example</h5>
|
||||
<p>In the following example, two instructions are defined:</p>
|
||||
<pre><code class="lang-shell">modify(find = 'copy' image = #00ff00)
|
||||
modify(find = 'paste' image = #0000ff)
|
||||
remove(find = '"format"')</code></pre>
|
||||
<br>
|
||||
<h4 id="item">Item Entries</h4>
|
||||
<p><code>item</code> entries contain the instructions on how to identify existing <a href="/docs/configuration/new-items#menuitem">menuitems</a> (also referred to as <a href="#target">Target</a>), and when and what changes should be applied
|
||||
to them.</p><p>This is done by matching an existing <a href="/docs/configuration/new-items#menuitem">menuitem</a>'s <a href="/docs/configuration/properties#title"><code>title</code></a> property against the modify item's mandatory <a href="/docs/configuration/properties#find"><code>find</code></a> property. If a match is found, the other properties of the modify
|
||||
<code>item</code> are applied to the appropriate <a href="/docs/configuration/new-items#menuitem">menuitem</a>, such as changing their properties (e.g. <a href="/docs/configuration/properties#title"><code>title</code></a>, <a href="/docs/configuration/properties#image"><code>icon</code></a>, <a href="/docs/configuration/properties#visibility"><code>visibility</code></a>), or moving them to another location.</p>
|
||||
|
||||
<h5 id="item-syntax">Syntax</h5>
|
||||
<pre><code class="lang-shell">modify( find = value [property = value [...] ])</code></pre>
|
||||
<br/>
|
||||
<h5 id="item-properties">Properties</h5>
|
||||
<p><code>item</code> entries can define three different sets of properties:</p>
|
||||
<dl>
|
||||
<dt><a href="/docs/configuration/properties#_validation-properties">Validation Properties</a></dt>
|
||||
<dd>Determine if a given <code>item</code> entry should be processed when a context menu is displayed. Optional.
|
||||
</dd>
|
||||
<dt><a href="/docs/configuration/properties#_filter-properties">Filter Properties:</a></dt>
|
||||
<dd>Determine if a given menuitem is a valid <a href="#target">target</a>
|
||||
for the <a href="#process-instructions">process instructions</a>
|
||||
<ul>
|
||||
<li><a href="/docs/configuration/properties#find"><code>find</code></a> <strong>(mandatory)</strong><br/>
|
||||
Pattern used to identify <a href="#target">targets</a> by matching against their <a href="/docs/configuration/properties#title"><code>title</code></a> property.
|
||||
</li>
|
||||
<li><a href="/docs/configuration/properties#in"><code>in</code></a><br/>
|
||||
Used to identify <a href="#target">targets</a> by specifying the submenu in which they are located.
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt><a href="#process-instructions">Process Instructions</a></dt>
|
||||
<dd>Define what to do with the target. Optional. However, if there are no <a href="#process-instructions">process instruction</a> specified, the entry is of no practical use. For
|
||||
further details refer to its separate section
|
||||
<a href="#process-instructions">below</a>.
|
||||
</dd>
|
||||
</dl>
|
||||
<p>For a complete overview and further details regarding applicable properties, please refer to the <a href="/docs/configuration/properties">properties page</a>.</p>
|
||||
<h4 id="target">Item Target</h4>
|
||||
<p>Item targets are <a href="/docs/configuration/new-items#menuitem">menuitems</a> of an existing context menu. Their properties or location can
|
||||
be changed by applying the <a href="#process-instructions">process instructions</a> defined in a <a href=#item">modify <code>item</code></a>.</p>
|
||||
<h5 id="process-instructions">Process instructions</h5>
|
||||
<p>Instructions that should be applied to the <a href="#target">Target</a>. Basically they consist of properties from the two property
|
||||
classes <a href="/docs/configuration/properties#_menuitem-properties">menuitem properties</a> and <a href="/docs/configuration/properties#_command-properties">command properties</a>.</p>
|
||||
<p>Once a <code>item</code> is validated and a target identified, then these values are applied to the targeted
|
||||
<a href="/docs/configuration/new-items#menuitem">menuitem</a>.</p>
|
||||
@@ -0,0 +1,105 @@
|
||||
<h4 id="_top">New Items</h4>
|
||||
<br/>
|
||||
<p>Add <strong>new items</strong> to the context menu.</p>
|
||||
<h5 id="sub-items">Sub-items</h5>
|
||||
<p>The section can have the following entry types, all of which are <strong>optional</strong>:</p>
|
||||
<ul>
|
||||
<li>Menuitems, i.e. one or more of the following:
|
||||
<ul>
|
||||
<li>One or more <a href="#item"><code>item</code> entries</a>.
|
||||
These appear as top-level items in a context menu.
|
||||
</li>
|
||||
<li>One or more <a href="#menu"><code>menu</code> entries</a>.
|
||||
These appear as top-level sub-menus in a context menu.
|
||||
</li>
|
||||
<li>One or more <a href="#separator"><code>separator</code> entries</a>. These create a
|
||||
horizontal line between the given entries.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>One or more <a href="/docs/configuration#import"><code><code>imports</code></code></a>. The content of the given file will be placed in the
|
||||
position of the import.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h5 id="example">Example</h5>
|
||||
<p>In the following example, one top-level <a href="#item"><code>item</code></a> is created, that is
|
||||
separated with a <a href="#separator">horizontal line</a> from an adjacent sub-<a href="#menu">menu</a>, which in turn has one sub-<a href="#item">item</a>
|
||||
on its own:</p>
|
||||
<pre><code class="lang-shell">item(title = 'Hello, World!')
|
||||
separator
|
||||
menu(title = 'sub menu' image = #0000ff)
|
||||
{
|
||||
item(title = 'test sub-item')
|
||||
}</code></pre>
|
||||
<br/>
|
||||
|
||||
<h4 id="menuitem">Menuitems</h4>
|
||||
|
||||
<p>menuitem is an umbrella term for those entry types, that may appear in a
|
||||
menu. These simply include the following:</p>
|
||||
<ul>
|
||||
<li><a href="#item"><code>item</code></a></li>
|
||||
<li><a href="#menu"><code>menu</code></a></li>
|
||||
<li><a href="#separator"><code>separator</code></a></li>
|
||||
</ul>
|
||||
|
||||
<br/>
|
||||
<h4 id="item">Items</h4>
|
||||
<p>items create a single menu entry.</p>
|
||||
|
||||
<h5 id="item-properties">Properties</h5>
|
||||
<p>Either a <a href="/docs/configuration/properties#title"><code>title</code></a> or a <a href="/docs/configuration/properties#image"><code>image</code></a> property is mandatory (set to a non-null value). For further details,
|
||||
please refer to the <a href="/docs/configuration/properties">properties page</a>.</p>
|
||||
|
||||
<h5 id="item-syntax">Syntax</h5>
|
||||
<pre><code class="lang-shell">item( title = value [property = value [...] ])</code></pre>
|
||||
<br/>
|
||||
|
||||
<h4 id="menu">Menus</h4>
|
||||
|
||||
<p>menu entries create a new <strong>sub-menu</strong>. They have properties
|
||||
and sub-entries.</p>
|
||||
|
||||
<h5 id="menu-properties">Properties</h5>
|
||||
<p>Either a <a href="/docs/configuration/properties#title"><code>title</code></a> or a <a href="/docs/configuration/properties#image"><code>image</code></a> property is mandatory (set to a non-null value). For further details,
|
||||
please refer to the <a href="/docs/configuration/properties">properties page</a>.</p>
|
||||
|
||||
<h5 id="menu-sub-items">Sub-items</h5>
|
||||
<p>menus can have the following entry types, all of which are
|
||||
<strong>optional</strong>:</p>
|
||||
<ul>
|
||||
<li>Menuitems, i.e. one or more of the following:
|
||||
<ul>
|
||||
<li>One or more <a href="#item"><code>item</code> entries</a>.</li>
|
||||
<li>One or more sub-<a href="#menu"><code>menu</code> entries</a>.</li>
|
||||
<li>One or more <a href="#separator"><code>separator</code> entries</a>. These create a
|
||||
horizontal line between the given entries.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>One or more <a href="/docs/configuration#import"><code><code>imports</code></code></a>. The content of the
|
||||
given file will be placed in the position of the import.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h5 id="menu-syntax">Syntax</h5>
|
||||
<pre><code class="lang-shell">menu( title = value [property = value [...] ])
|
||||
{
|
||||
[ item() [...] ]
|
||||
[ menu(){} [...] ]
|
||||
[ separator [...] ]
|
||||
[ import 'path/to/import.nss' [...] ]
|
||||
}</code></pre>
|
||||
<br/>
|
||||
|
||||
<h4 id="separator">Separators</h4>
|
||||
|
||||
<p>separators create a horizontal line.</p>
|
||||
|
||||
<h5 id="separator-properties">Properties</h5>
|
||||
<p>separators do not have any mandatory properties. Please refer to the <a href="/docs/configuration/properties">properties page</a> for further details.</p>
|
||||
|
||||
<h5 id="separator-syntax">Syntax</h5>
|
||||
<pre><code class="lang-shell">separator
|
||||
separator( property = value [property = value [...] ])</code></pre>
|
||||
@@ -0,0 +1,967 @@
|
||||
<h4 id="_top">Properties</h4>
|
||||
<style>
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd dt {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
ul.fold, #_index-list {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
ul.fold, #_index-list li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul.fold > li, #_index-list li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul.fold > li:after, #_index-list li li:after {
|
||||
content: ", ";
|
||||
}
|
||||
|
||||
ul.fold > li:last-child:after, #_index-list li li:last-child:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
</style>
|
||||
Shell supports the following properties classes:
|
||||
<ul>
|
||||
<li><a href="#_validation-properties">Validation Properties</a></li>
|
||||
<li><a href="#_filter-properties">Filter Properties</a></li>
|
||||
<li><a href="#_menuitem-properties">Menuitem Properties</a></li>
|
||||
<li><a href="#_command-properties">Command Properties</a></li>
|
||||
</ul>
|
||||
<p>Please also see the full index of available properties <a href="#_index">below</a>.</p>
|
||||
<h5 id="_index">Index</h5>
|
||||
<ul id="_index-list" class="m-0 p-0 mb-4">
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#admin">Admin</a></li>
|
||||
<li><a href="#arguments">arg</a></li>
|
||||
<li><a href="#arguments">args</a></li>
|
||||
<li><a href="#arguments">Arguments</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#checked">Checked</a></li>
|
||||
<li><a href="#command">cmd</a></li>
|
||||
<li><a href="#column">col</a></li>
|
||||
<li><a href="#column">Column</a></li>
|
||||
<li><a href="#command">Command</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#default">Default</a></li>
|
||||
<li><a href="#directory">dir</a></li>
|
||||
<li><a href="#directory">Directory</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#expanded">Expanded</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#find">Find</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#image">Icon</a></li>
|
||||
<li><a href="#image">Image</a></li>
|
||||
<li><a href="#invoke">Invoke</a></li>
|
||||
<li><a href="#in">In</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#keys">Keys</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#mode">Mode</a></li>
|
||||
<li><a href="#parent">Menu</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#parent">Parent</a></li>
|
||||
<li><a href="#position">pos</a></li>
|
||||
<li><a href="#position">Position</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#separator">sep</a></li>
|
||||
<li><a href="#separator">Separator</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#tip">Tip</a></li>
|
||||
<li><a href="#title">Title</a></li>
|
||||
<li><a href="#type">Type</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#verb">Verb</a></li>
|
||||
<li><a href="#visibility">vis</a></li>
|
||||
<li><a href="#visibility">Visibility</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#wait">Wait</a></li>
|
||||
<li><a href="#where">Where</a></li>
|
||||
<li><a href="#window">Window</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4 id="_syntax">Syntax</h4>
|
||||
<h5 id="_entry-types">Entry types</h5>
|
||||
<p>In the following tables, the Types column shows to which entry types the
|
||||
property applies to.</p>
|
||||
<p>The following abbreviations are used (if set in bold, then the property is mandatory for the given type):
|
||||
</p>
|
||||
<dl>
|
||||
<dt>mi</dt>
|
||||
<dd><a href="/docs/configuration/modify-items#item">modify item</a>, i.e. the
|
||||
item
|
||||
entry itself. Is basically required to evaluate if the process instructions are applied to any given target.
|
||||
</dd>
|
||||
<dt>mt</dt>
|
||||
<dd><a href="/docs/configuration/modify-items#target">modify target</a>, i.e.
|
||||
the menuitem of the existing menu to which the process instructions are applied
|
||||
</dd>
|
||||
<dt>nm</dt>
|
||||
<dd><a href="/docs/configuration/new-items#menu">new menu type</a></dd>
|
||||
<dt>ni</dt>
|
||||
<dd><a href="/docs/configuration/new-items#item">new item type</a></dd>
|
||||
<dt>ns</dt>
|
||||
<dd><a href="/docs/configuration/new-items#separator">new separator type</a>.
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<!--<h5 id="_property-classes">Property Classes</h5>-->
|
||||
<h5 id="_validation-properties">Validation Properties</h5>
|
||||
<p>Determine if a given <a href="/docs/configuration/modify-items">Modify items</a>
|
||||
or <a href="/docs/configuration/new-items">New items</a> entry should be
|
||||
processed when a context menu is displayed.</p>
|
||||
|
||||
<br/>
|
||||
<ul class="fold">
|
||||
<li><a href="#mode">Mode</a></li>
|
||||
<li><a href="#type">Type</a></li>
|
||||
<li><a href="#where">Where</a></li>
|
||||
</ul>
|
||||
<br/>
|
||||
<br/>
|
||||
<div id="_validation-syntax" class="table-responsive">
|
||||
<h6>Syntax</h6>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Property</th>
|
||||
<th scope="col">Types<sup><a href="#_entry-types">(*)</a></sup></th>
|
||||
<th scope="col">Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="where">
|
||||
<td>Where</td>
|
||||
<td>mi, nm, ni, ns</td>
|
||||
<td>Process given menuitem if <code>true</code> is returned. Allows the <strong>evaluation of arbitrary
|
||||
<a href="/docs/expressions">expressions</a></strong>, e.g. <a href="/docs/functions#if"><code>if()</code></a>.<br/>
|
||||
Default = <span class="syntax-keyword">true</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="mode">
|
||||
<td>Mode</td>
|
||||
<td>mi, nm, ni, ns</td>
|
||||
<td>Display menuitem by <strong>type of selection</strong>. The value has one of the following
|
||||
parameters
|
||||
(of type <a href="/docs/configuration/modify-items">string</a>):
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td class="syntax-keyword">none</td>
|
||||
<td>Display menuitem when there is no selection.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">single</td>
|
||||
<td>Display menuitem when there is a single object selected.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">multi_unique</td>
|
||||
<td>Display menuitem when multiple objects of the same <a href="#type">type</a> are selected.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">multi_single</td>
|
||||
<td>Display menuitem when multiple files with a single file extension are selected.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">multiple</td>
|
||||
<td>Display any type of selection, unless there is none.</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">single</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="type">
|
||||
<td>Type</td>
|
||||
<td>mi, nm, ni, ns</td>
|
||||
<td>Specifies the <strong>types of objects</strong> for which the menuitem will be displayed.<br/>
|
||||
Possible values are shown below. Separate multiple types with the pipe character (<code>|</code>),
|
||||
in
|
||||
which case the menuitem is displayed if any of the given types is matched.<br/>
|
||||
To exclude a given type, prefix its value with the tilde character (<code>~</code>).
|
||||
<p class="has-text-danger">Expressions are not supported with this property.</p>
|
||||
<table class="table">
|
||||
<tr id="type-asterisks">
|
||||
<td class="syntax-keyword">*</td>
|
||||
<td>Display menuitem when any type is selected.</td>
|
||||
</tr>
|
||||
<tr id="type-file">
|
||||
<td class="syntax-keyword">File</td>
|
||||
<td>Display menuitem when files are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-directory">
|
||||
<td class="syntax-keyword">Directory(Dir)</td>
|
||||
<td>Display menuitem when directories are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-drive">
|
||||
<td class="syntax-keyword">Drive</td>
|
||||
<td>Display menuitem when drives are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-usb">
|
||||
<td class="syntax-keyword">USB</td>
|
||||
<td>Display menuitem when USB flash-drives are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-dvd">
|
||||
<td class="syntax-keyword">DVD</td>
|
||||
<td>Display menuitem when DVD-ROM drives are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-fixed">
|
||||
<td class="syntax-keyword">Fixed</td>
|
||||
<td>Display menuitem when fixed drives are selected. Such drives have a fixed media; for
|
||||
example, a hard disk drive or flash drive.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="type-vhd">
|
||||
<td class="syntax-keyword">VHD</td>
|
||||
<td>Display menuitem when Virtual Hard Disks are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-removable">
|
||||
<td class="syntax-keyword">Removable</td>
|
||||
<td>Display menuitem when the selected drives have removable media; for example, a floppy drive,
|
||||
thumb drive, or flash card
|
||||
reader.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="type-remote">
|
||||
<td class="syntax-keyword">Remote</td>
|
||||
<td>Display menuitem when the selected remote (network) drives are selected.</td>
|
||||
</tr>
|
||||
<tr id="type-back">
|
||||
<td class="syntax-keyword">Back</td>
|
||||
<td>Display menuitem when the background of all types are selected (<code>back</code>). Or
|
||||
specify one of
|
||||
the following more granular types for the background:
|
||||
<ul>
|
||||
<li>
|
||||
<code>back.directory</code>
|
||||
</li>
|
||||
<li>
|
||||
<code>back.drive</code>, including
|
||||
<ul>
|
||||
<li><code>back.fixed</code></li>
|
||||
<li><code>back.usb</code></li>
|
||||
<li><code>back.dvd</code></li>
|
||||
<li><code>back.vhd</code></li>
|
||||
<li><code>back.Removable</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<code>back.namespace</code>, including
|
||||
<ul>
|
||||
<li><code>back.computer</code></li>
|
||||
<li><code>back.recyclebin</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="type-desktop">
|
||||
<td class="syntax-keyword">Desktop</td>
|
||||
<td>Display menuitem when the Desktop is selected.</td>
|
||||
</tr>
|
||||
<tr id="type-namespace">
|
||||
<td class="syntax-keyword">Namespace</td>
|
||||
<td>Display menuitem when Namespaces are selected. Can be virtual objects such as My Network Places and Recycle Bin.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="type-computer">
|
||||
<td class="syntax-keyword">Computer</td>
|
||||
<td>Display menuitem when My Computer is selected.</td>
|
||||
</tr>
|
||||
<tr id="type-recyclebin">
|
||||
<td class="syntax-keyword">Recyclebin</td>
|
||||
<td>Display menuitem when the Recycle bin is selected.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="type-taskbar">
|
||||
<td class="syntax-keyword">Taskbar</td>
|
||||
<td>Display menuitem when the Taskbar is selected.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">Accepts all types, except for the Taskbar.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 id="_filter-properties">Filter Properties</h5>
|
||||
<p>For <a href="/docs/configuration/modify-items">Modify items</a> entries only,
|
||||
filter properties determine if a given menuitem is a valid <a href="/docs/configuration/modify-items#target">target</a> for the <a href="/docs/configuration/modify-items#process-instructions">process instructions</a></p>
|
||||
|
||||
<ul class="fold">
|
||||
<li><a href="#find">Find</a></li>
|
||||
<li><a href="#in">In</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="_filter-syntax" class="table-responsive">
|
||||
<h6>Syntax</h6>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Property</th>
|
||||
<th scope="col">Types<sup><a href="#_entry-types">(*)</a></sup></th>
|
||||
<th scope="col">Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr id="find">
|
||||
<td>Find</td>
|
||||
<td>nm, ni, ns</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt>For modify items (required)</dt>
|
||||
<dd>Apply the current item's process instructions to any existing menuitem if their <a href="#title"><code>title</code></a> property matches the
|
||||
pattern of the current item's <code>find</code> property.
|
||||
</dd>
|
||||
<dt>For dynamic items (optional)</dt>
|
||||
<dd><p>Display the current menuitem if the pattern of its <code>find</code> property matches the
|
||||
path name or path extension
|
||||
of the <strong>selected files</strong>.</p>
|
||||
<p>Default = <span class="syntax-keyword">null</span>, which means any string is "matched".
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>Syntax</dt>
|
||||
<dd>
|
||||
<pre><code>find = '%pattern%'
|
||||
find = '%pattern%|%pattern%[...]'</code></pre>
|
||||
<p>where <strong>%pattern%</strong> can be one or
|
||||
more
|
||||
matching instructions (see Examples below). The
|
||||
following characters do have special meaning:</p>
|
||||
<ul>
|
||||
<li><code>|</code> <strong>Use to separate patterns.</strong> If any one pattern
|
||||
matches,
|
||||
the property yields
|
||||
<span class="syntax-keyword">true</span>.
|
||||
</li>
|
||||
<li><code>*</code> <strong>Matches any number of characters.</strong> Is used as a
|
||||
wildcard
|
||||
to
|
||||
match only the beginning or the end of the entire string (or word, if used in
|
||||
combination with the exclamation mark <code>!</code>).
|
||||
</li>
|
||||
<li><code>!</code> <strong>Negates the match</strong> of the current pattern, or
|
||||
<strong>limits
|
||||
the wildcard (<code>*</code>)</strong> to one word only.
|
||||
</li>
|
||||
<li><code>""</code> the enclosed string is treated as a <strong>word</strong>.
|
||||
</li>
|
||||
</ul>
|
||||
<p>A <strong>word</strong> is a sequence of
|
||||
alphanumerical characters that is confined to the left and to the right by either a
|
||||
space
|
||||
<code> </code>, a non-word character (e.g. <code>/</code> or <code>-</code>), or the
|
||||
beginning or the end of the entire string, respectively.</p></dd>
|
||||
<dt>Examples</dt>
|
||||
<dd>
|
||||
<div class="table-container">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Pattern</th>
|
||||
<th class="is-two-thirds">Matches any string that ...</th>
|
||||
<th>Would match</th>
|
||||
<th>Would not match</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>'foo'</code></td>
|
||||
<td>contains the literal string <code>foo</code> anywhere.</td>
|
||||
<td><code>foo</code>, <code>foobar</code>, <code>afoobar</code></td>
|
||||
<td><code>fo</code>, <code>f oo</code>, <code>bar</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'"foo"'</code></td>
|
||||
<td>contains the literal string <code>foo</code> as a whole word
|
||||
only.
|
||||
</td>
|
||||
<td><code>foo</code>, <code>foo/bar</code>, <code>some foo bar</code></td>
|
||||
<td><code>foobar</code>, <code>foofoo</code>, <code>bar</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>'*foo'</code></td>
|
||||
<td>ends with the literal string <code>foo</code>.</td>
|
||||
<td><code>foo</code>, <code>barfoo</code>, <code>bar/foo</code></td>
|
||||
<td><code>foobar</code>, <code>fooo</code>, <code>foo </code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'foo*'</code></td>
|
||||
<td>starts with the literal string <code>foo</code>.
|
||||
</td>
|
||||
<td><code>foo</code>, <code>foobar</code>, <code>foo/bar</code></td>
|
||||
<td><code> foobar</code>, <code>fo</code>, <code>yeti</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>'!foo'</code></td>
|
||||
<td>does not contain the literal string <code>foo</code> anywhere.
|
||||
</td>
|
||||
<td><code>fobar</code>, <code>fo</code>, <code>kung-fu</code></td>
|
||||
<td><code>foo</code>, <code>foobar</code>, <code>barfoo/bar</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'!"foo"'</code></td>
|
||||
<td>does not contain the word
|
||||
<code>foo</code></td>
|
||||
<td><code>fobar</code>, <code>kung fu bar</code>, <code>foobar</code></td>
|
||||
<td><code>foo</code>, <code>kung foo bar</code>, <code>bar/foo/bar</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'!*foo'</code></td>
|
||||
<td>does not contain a word ending on
|
||||
<code>foo</code></td>
|
||||
<td><code>foobar</code>, <code>fooo-fo</code></td>
|
||||
<td><code>foo</code>, <code>foo bar</code>, <code>bar/foo</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'foo*!'</code></td>
|
||||
<td>does not contain a word starting with
|
||||
<code>foo</code></td>
|
||||
<td><code>myFooBar</code>, <code>barFoo</code></td>
|
||||
<td><code>foo</code>, <code>foobar</code>, <code>fo-fooo</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<p><br/>For dynamic items the following syntax allows to match against file
|
||||
extensions:<br/><br/></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Pattern</th>
|
||||
<th>Matches any file extension ...</th>
|
||||
<th>Would match</th>
|
||||
<th>Would not match</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>'.exe'</code></td>
|
||||
<td>equal to <code>.exe</code></td>
|
||||
<td><code>setup.exe</code>, <code>notepad.exe</code></td>
|
||||
<td><code>install.bat</code>, <code>shell.nss</code>, <code>shell.ex_</code>,
|
||||
file
|
||||
without an extension.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>'!.exe'</code></td>
|
||||
<td>not equal to <code>.exe</code></td>
|
||||
<td><code>setup.exe.zip</code>, <code>video.mp4</code>, <code>shell.ex_</code>,
|
||||
file
|
||||
without an extension.
|
||||
</td>
|
||||
<td><code>setup.exe</code>, <code>shell.exe</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>'.exe|.dll'</code></td>
|
||||
<td>equal to either <code>.exe</code> or <code>.dll</code></td>
|
||||
<td><code>shell.exe</code>, <code>shell.dll</code>
|
||||
</td>
|
||||
<td><code>shell.zip</code>, <code>shell.nss</code>, file
|
||||
without an extension.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="in">
|
||||
<td>In</td>
|
||||
<td>mi</td>
|
||||
<td> Specifies the <strong>existing submenu</strong> where the <strong>modify target</strong> is located.</br>
|
||||
<strong>Syntax</strong><br/>
|
||||
<pre><code class="lang-shell">in = "New"
|
||||
in = "Sort By"</code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 id="_menuitem-properties">Menuitem Properties</h5>
|
||||
<p>This set of properties describe the appearance and location of a given menuitem. For modify-items, this is the target menuitem. For dynamic entries, this is the newly created menuitem.</p>
|
||||
<dl>
|
||||
<dt>Appearance</dt>
|
||||
<dd>
|
||||
<ul class="fold">
|
||||
<li><a href="#checked">Checked</a></li>
|
||||
<li><a href="#default">Default</a></li>
|
||||
<li><a href="#image">Image</a></li>
|
||||
<li><a href="#separator">Separator</a></li>
|
||||
<li><a href="#tip">Tip</a></li>
|
||||
<li><a href="#title">Title</a></li>
|
||||
<li><a href="#visibility">Visibility</a></li>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
<dt>Location</dt>
|
||||
<dd>
|
||||
<ul class="fold">
|
||||
<li><a href="#column">Column</a></li>
|
||||
<li><a href="#expanded">Expanded</a></li>
|
||||
<li><a href="#keys">Keys</a></li>
|
||||
<li><a href="#parent">Menu</a></li>
|
||||
<li><a href="#parent">Parent</a></li>
|
||||
<li><a href="#position">Position</a></li>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<div id="_menuitem-syntax" class="table-responsive">
|
||||
<h6>Syntax</h6>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Property</th>
|
||||
<th scope="col">Types<sup><a href="#_entry-types">(*)</a></sup></th>
|
||||
<th scope="col">Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="title">
|
||||
<td>Title</td>
|
||||
<td>st, <strong>nm</strong>, <strong>ni</strong>
|
||||
</td>
|
||||
<td><p>Sets the <strong>caption</strong> of the menuitem.</p>
|
||||
<dl>
|
||||
<dt>For modify-items (optional)</dt>
|
||||
<dd><p>Default = <span class="syntax-keyword">null</span>, which means the title of the target
|
||||
is
|
||||
not changed.</p></dd>
|
||||
<dt>For dynamic items (required)</dt>
|
||||
<dd><p class="text-danger">It is mandatory for <a href="/docs/configuration/dynamic#menu">menu</a> and <a href="/docs/configuration/dynamic#menu">item</a> entries, unless a <a href=#image"><code>image</code></a> property is defined.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="visibility">
|
||||
<td>Visibility (vis)</td>
|
||||
<td>st, nm, ni, ns</td>
|
||||
<td>Sets the <strong>visibility</strong> of a menuitem. Can have one of the following parameters:
|
||||
<table class="table">
|
||||
<tr id="visibility-hidden">
|
||||
<td class="syntax-keyword">Hidden</td>
|
||||
<td>Hide the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="visibility-normal">
|
||||
<td class="syntax-keyword">Normal</td>
|
||||
<td>Enable the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="visibility-disable">
|
||||
<td class="syntax-keyword">Disable</td>
|
||||
<td>Disable the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="visibility-static">
|
||||
<td class="syntax-keyword">Static</td>
|
||||
<td>Display menuitem as label, with or without an <a href=#image"><code>image</code></a></td>
|
||||
</tr>
|
||||
<tr id="visibility-label">
|
||||
<td class="syntax-keyword">Label</td>
|
||||
<td>Display menuitem as label without an image</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="notification is-info mt-5">
|
||||
<i class="mr-4">Note:</i> The values Static and Label are not available for modify-items.
|
||||
</div>
|
||||
Default = <span class="syntax-keyword">Normal</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="separator">
|
||||
<td>Separator (sep)</td>
|
||||
<td>st, nm, ni</td>
|
||||
<td>Add a <strong>separator</strong> to the menuitem:
|
||||
<table class="table">
|
||||
<tr id="separator-none">
|
||||
<td class="syntax-keyword">None</td>
|
||||
<td>Not adding a separator with the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="separator-before">
|
||||
<td class="syntax-keyword">Before, Top</td>
|
||||
<td>Add a separator before the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="separator-after">
|
||||
<td class="syntax-keyword">After, Bottom</td>
|
||||
<td>Add a separator after the menuitem.</td>
|
||||
</tr>
|
||||
<tr id="separator-both">
|
||||
<td class="syntax-keyword">Both</td>
|
||||
<td>Add a separator before and after the menuitem.</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">none</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="position">
|
||||
<td>Position (pos)</td>
|
||||
<td>st, nm, ni, ns</td>
|
||||
<td>The <strong>position</strong> at which a menuitem should be inserted into the <a href="/docs/configuration/dynamic#menu">menu</a>.<br/>
|
||||
Position can have one of the following parameters:
|
||||
<table class="table">
|
||||
<tr id="position-auto">
|
||||
<td class="syntax-keyword">Auto</td>
|
||||
<td>Insert the menuitem to the current position.</td>
|
||||
</tr>
|
||||
<tr id="position-middle">
|
||||
<td class="syntax-keyword">Middle</td>
|
||||
<td>Insert the menuitem to the middle of the <a href="/docs/configuration/dynamic#menu">menu</a>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="position-top">
|
||||
<td class="syntax-keyword">Top</td>
|
||||
<td>Insert the menuitem to the top of the <a href="/docs/configuration/dynamic#menu">menu</a>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="position-bottom">
|
||||
<td class="syntax-keyword">Bottom</td>
|
||||
<td>Insert the menuitem to the bottom of the <a href="/docs/configuration/dynamic#menu">menu</a>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="position-integer">
|
||||
<td><code>Integer</code></td>
|
||||
<td>Insert the menuitem to a specified position.</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">auto</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="image">
|
||||
<td>Image, Icon</td>
|
||||
<td>st, nm, ni</td>
|
||||
<td>The <strong>icon</strong> that appears in a menuitem. This property can be assigned as image files,
|
||||
resource icons, glyph
|
||||
or color. With one of the following parameters
|
||||
<table class="table">
|
||||
<tr id="image-null">
|
||||
<td class="syntax-keyword">null</td>
|
||||
<td>Show menuitem without icon.</td>
|
||||
</tr>
|
||||
<tr id="image-inherit">
|
||||
<td class="syntax-keyword">Inherit</td>
|
||||
<td>@*Inheriting the image from the parent.*@
|
||||
Inherits this property from its parent item.
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="image-cmd">
|
||||
<td class="syntax-keyword">Cmd</td>
|
||||
<td>Assign image from the command property.</td>
|
||||
</tr>
|
||||
<tr id="image-glyph">
|
||||
<td class="syntax-keyword">Glyph</td>
|
||||
<td>Assign image as Glyph.</td>
|
||||
</tr>
|
||||
<tr id="image-color">
|
||||
<td class="syntax-keyword">Color</td>
|
||||
<td>Assign image as color.</td>
|
||||
</tr>
|
||||
<tr id="image-path">
|
||||
<td class="syntax-keyword">Path</td>
|
||||
<td>Assign image from location path or resource icon.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="notification is-info mt-5">
|
||||
<i class="mr-4">Note:</i>The value Cmd is not available for modify-items
|
||||
targets.
|
||||
</div>
|
||||
Default = <span class="syntax-keyword">null</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="parent">
|
||||
<td>Parent, Menu</td>
|
||||
<td>st, nm, ni, ns</td>
|
||||
<td><p><strong>Move current menuitem</strong> to another <a href="/docs/configuration/dynamic#menu">menu</a>.</p>
|
||||
Default = <span class="syntax-keyword">null</span></td>
|
||||
</tr>
|
||||
<tr id="checked">
|
||||
<td>Checked</td>
|
||||
<td>st, ni</td>
|
||||
<td><strong>Type of select option</strong>:
|
||||
<table class="table">
|
||||
<tr id="checked-0">
|
||||
<td class="syntax-keyword">0</td>
|
||||
<td>Not checked</td>
|
||||
</tr>
|
||||
<tr id="checked-1">
|
||||
<td class="syntax-keyword">1</td>
|
||||
<td>Display as check mark.</td>
|
||||
</tr>
|
||||
<tr id="checked-2">
|
||||
<td class="syntax-keyword">2</td>
|
||||
<td>Display as radio bullet.</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">0</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="default">
|
||||
<td>Default</td>
|
||||
<td>st, ni</td>
|
||||
<td>
|
||||
<p>Specifies that the <a href="/docs/configuration/dynamic#item">item</a> is the default. A <a href="/docs/configuration/dynamic#menu">menu</a> can contain only one default
|
||||
menuitem, which is <strong>displayed in bold</strong>.</p>
|
||||
Default = <span class="syntax-keyword">false</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="expanded">
|
||||
<td>Expanded</td>
|
||||
<td>nm</td>
|
||||
<td>
|
||||
<p>Move all immediate menuitems to the parent <a href="/docs/configuration/dynamic#menu">menu</a>.</p>
|
||||
Default = <span class="syntax-keyword">false</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="column">
|
||||
<td>Column(col)</td>
|
||||
<td>nm, ni</td>
|
||||
<td><p>Create a new <strong>column</strong>.</p>
|
||||
Default = <span class="syntax-keyword">true</span>
|
||||
</tr>
|
||||
<tr id="keys">
|
||||
<td>Keys</td>
|
||||
<td>st, nm, ni</td>
|
||||
<td><p>Show <strong>keyboard shortcuts</strong>.</p>
|
||||
Default = <span class="syntax-keyword">null</span></td>
|
||||
</tr>
|
||||
<tr id="tip">
|
||||
<td>Tip</td>
|
||||
<td>st, nm, ni</td>
|
||||
<td>
|
||||
<p>Show a <strong>tooltip</strong> for the current <a href="/docs/configuration/dynamic#menu">menu</a> or <a href="/docs/configuration/dynamic#item">item</a>.</p>
|
||||
Default = <span class="syntax-keyword">null</span><br/>
|
||||
<strong>Syntax</strong><br/>
|
||||
<pre><code class="lang-shell">tip = "Lorem Ipsum is simply dummy text."
|
||||
tip = ["Lorem Ipsum is simply dummy text.", tip.info]
|
||||
tip = ["Lorem Ipsum is simply dummy text.", tip.info, 1.2]</code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 id="_command-properties">Command Properties</h5>
|
||||
<p>This set of properties describe how a command is executed. Only available for dynamic items.</p>
|
||||
|
||||
<ul class="fold">
|
||||
<li><a href="#admin">Admin</a></li>
|
||||
<li><a href="#arguments">Arguments</a></li>
|
||||
<li><a href="#command">Command</a></li>
|
||||
<li><a href="#directory">Directory</a></li>
|
||||
<li><a href="#invoke">Invoke</a></li>
|
||||
<li><a href="#verb">Verb</a></li>
|
||||
<li><a href="#wait">Wait</a></li>
|
||||
<li><a href="#window">Window</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="_command-syntax" class="table-responsive">
|
||||
<h6>Syntax</h6>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Property</th>
|
||||
<th scope="col">Types<sup><a href="#_entry-types">(*)</a></sup></th>
|
||||
<th scope="col">Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr id="command">
|
||||
<td>Command (cmd)</td>
|
||||
<td>ni</td>
|
||||
<td><p>The <strong>command</strong> associated with the menuitem. Occurs when the menuitem is clicked or
|
||||
selected using a shortcut key or access key defined for the menuitem.</p>
|
||||
Default = <span class="syntax-keyword">null</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="arguments">
|
||||
<td>Arguments (arg, args)</td>
|
||||
<td>ni</td>
|
||||
<td><p>The <strong>command line parameters</strong> to pass to the <a href=#command">command</a> property of a menuitem.</p>
|
||||
Default = <span class="syntax-keyword">null</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="invoke">
|
||||
<td>Invoke</td>
|
||||
<td>ni</td>
|
||||
<td>Set <strong>execution type</strong>
|
||||
<table class="table">
|
||||
<tr id="invoke-single">
|
||||
<td class="syntax-keyword">0, single</td>
|
||||
<td>execute the <a href="#command">command</a> only once in total. The list of selected
|
||||
items can be accessed with <a href="/docs/functions/sel#sel"><code>@sel</code></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="invoke-multiple">
|
||||
<td class="syntax-keyword">1, multiple</td>
|
||||
<td>execute the <a href="#command"><code>command</code></a> once for every single item in the current
|
||||
selection. The currently processed item can be accessed with e.g <a href="/docs/functions/sel#sel.path.quote"><code>@sel.path.quote</code></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">0</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="window">
|
||||
<td>Window</td>
|
||||
<td>ni</td>
|
||||
<td>Controls how the <strong>window</strong> of the executed <a href="#command">command</a> is to be shown. Can be one of the following
|
||||
parameters:
|
||||
<p class="syntax-keyword"><code>Hidden</code>, <code>Show</code>, <code>Visible</code>,
|
||||
<code>Minimized</code>, <code>Maximized</code></p>
|
||||
Default = <span class="syntax-keyword">show</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="directory">
|
||||
<td>Directory (dir)</td>
|
||||
<td>ni</td>
|
||||
<td><p>Specifies the <strong>working directory</strong> to
|
||||
execute
|
||||
the <a href="#command">command</a> in.</p>
|
||||
Default = <span class="syntax-keyword">null</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="admin">
|
||||
<td>Admin</td>
|
||||
<td>ni</td>
|
||||
<td><p>Execute the <a href="#command">command</a>
|
||||
with <strong>administrative permissions</strong>.</p>
|
||||
Default = <span class="syntax-keyword">false</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="verb">
|
||||
<td>Verb</td>
|
||||
<td>ni</td>
|
||||
<td>Specifies the <strong>default operation</strong> for the selected file. Value type <a href="/docs/configuration/modify-items">string</a>
|
||||
and can have one of the following parameters:<br/>
|
||||
<table class="table">
|
||||
<tr id="verb-null">
|
||||
<td>null</td>
|
||||
<td>Specifies that the operation is the default for the selected file type.</td>
|
||||
</tr>
|
||||
<tr id="verb-open">
|
||||
<td>Open</td>
|
||||
<td>Opens a file or an application.</td>
|
||||
</tr>
|
||||
<tr id="verb-openas">
|
||||
<td>OpenAs</td>
|
||||
<td>Opener dialog when no program is associated to the extension.</td>
|
||||
</tr>
|
||||
<tr id="verb-runas">
|
||||
<td>RunAs</td>
|
||||
<td>In Windows 7 and Vista, opens the UAC dialog andin others, open the Run as... Dialog.</td>
|
||||
</tr>
|
||||
<tr id="verb-edit">
|
||||
<td>Edit</td>
|
||||
<td>Opens the default text editor for the file.</td>
|
||||
</tr>
|
||||
<tr id="verb-explore">
|
||||
<td>Explore</td>
|
||||
<td>Opens the Windows Explorer in the folder specified in Directory.</td>
|
||||
</tr>
|
||||
<tr id="verb-properties">
|
||||
<td>Properties</td>
|
||||
<td>Opens the properties window of the file.</td>
|
||||
</tr>
|
||||
<tr id="verb-print">
|
||||
<td>Print</td>
|
||||
<td>Start printing the file with the default application.</td>
|
||||
</tr>
|
||||
<tr id="verb-find">
|
||||
<td>Find</td>
|
||||
<td>Start a search.</td>
|
||||
</tr>
|
||||
</table>
|
||||
Default = <span class="syntax-keyword">open</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="wait">
|
||||
<td>Wait</td>
|
||||
<td>ni</td>
|
||||
<td>
|
||||
<p><strong>Wait</strong> for the <a href="#command">command</a>
|
||||
to complete.</p>
|
||||
Default = <span class="syntax-keyword">false</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,87 @@
|
||||
<h4>Settings</h4>
|
||||
<br><br>
|
||||
<p>Settings are containers for storing default values.</p>
|
||||
<pre><code class="lang-shell">settings
|
||||
{
|
||||
// show menu delay value from 0 to 4000
|
||||
showdelay = 200
|
||||
|
||||
// Prevent interaction with these windows or processes
|
||||
exclude
|
||||
{
|
||||
where = boolean value
|
||||
window = window name
|
||||
process = process name
|
||||
}
|
||||
|
||||
tip = true
|
||||
// or
|
||||
tip
|
||||
{
|
||||
enabled = true
|
||||
|
||||
// normal = [background, text]
|
||||
normal = [default, default]
|
||||
|
||||
// normal = [background, text]
|
||||
primary = [#000, #fff]
|
||||
|
||||
// info = [background, text]
|
||||
info = [#88f, #fff]
|
||||
|
||||
// success = [background, text]
|
||||
success = [#8f8, #fff]
|
||||
|
||||
// warning = [background, text]
|
||||
warning = [#ff8, #fff]
|
||||
|
||||
// danger = [background, text]
|
||||
danger = [#f88, #fff]
|
||||
|
||||
// max width value from 200 to 2000
|
||||
width = 400
|
||||
|
||||
// opacity value from 0 to 100
|
||||
opacity = 100
|
||||
|
||||
// radius size value from 0 to 3
|
||||
radius = 1
|
||||
|
||||
time = 1.5
|
||||
|
||||
padding = [8, 4]
|
||||
}
|
||||
|
||||
// Disable/Enable modify items processing
|
||||
modify
|
||||
{
|
||||
enabled = boolean value
|
||||
image = [0 = disable, 1 = enable, 2 = auto reimage]
|
||||
|
||||
// Allow/disallow modification of title
|
||||
title = boolean value
|
||||
|
||||
// Allow/disallow modification of visibility
|
||||
visibility = boolean value
|
||||
|
||||
// Allow/disallow modification of parent
|
||||
parent = boolean value
|
||||
|
||||
// Allow/disallow modification of position
|
||||
position = boolean value
|
||||
|
||||
// Allow/disallow to add separator
|
||||
separator = boolean value
|
||||
|
||||
// auto set image and group
|
||||
auto = boolean value
|
||||
}
|
||||
|
||||
// Disable/Enable new items processing
|
||||
new
|
||||
{
|
||||
enabled = boolean value
|
||||
// disable/enable image
|
||||
image = boolean value
|
||||
}
|
||||
}</code></pre>
|
||||
@@ -0,0 +1,218 @@
|
||||
<h4>Themes</h4>
|
||||
<br><br>
|
||||
<p>Theme section to customize the layout and colors of the context menu.</p>
|
||||
<pre><code class="lang-shell">theme
|
||||
{
|
||||
// theme.name = auto, classic, white, black, or modern
|
||||
name = "modern"
|
||||
|
||||
// view = auto, compact, small, medium, large, wide
|
||||
view = view.compact
|
||||
|
||||
// dark = true, false, default
|
||||
dark = default
|
||||
|
||||
background
|
||||
{
|
||||
color = color value
|
||||
opacity = value from 0 to 100
|
||||
|
||||
// effect value 0 = disable, 1 = transparent, 2 = blur, 3 = acrylic
|
||||
effect = auto
|
||||
|
||||
// for acrylic
|
||||
effect = [3, tint color, opacity]
|
||||
|
||||
gradient
|
||||
{
|
||||
enabled = boolean value
|
||||
|
||||
// linear = [x1, x2, y1, y2]
|
||||
linear = [0, 100, 0, 0]
|
||||
|
||||
// or radial = [cx, cy, r, fx, fy]
|
||||
radial =[ 100, 100, 150, 100, 100]
|
||||
|
||||
// stop = [offset, stop-color]
|
||||
stop = [0.5, color.accent, 20]
|
||||
|
||||
// or add more stop
|
||||
stop = [
|
||||
[offset, stop-color],
|
||||
[offset, stop-color],
|
||||
[offset, stop-color]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
item
|
||||
{
|
||||
opacity = value from 0 to 100
|
||||
radius = value from 0 to 3
|
||||
|
||||
// prefix value [auto, 0 = dont display, 1 = display, 2 = ignore]
|
||||
prefix = 1
|
||||
|
||||
text
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
|
||||
back
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
|
||||
border
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
|
||||
padding
|
||||
{
|
||||
left = value
|
||||
top = value
|
||||
right = value
|
||||
bottom = value
|
||||
}
|
||||
|
||||
margin
|
||||
{
|
||||
left = value
|
||||
top = value
|
||||
right = value
|
||||
bottom = value
|
||||
}
|
||||
}
|
||||
|
||||
border
|
||||
{
|
||||
enabled = boolean value
|
||||
size = value from 0 to 10
|
||||
color = = value
|
||||
opacity = value
|
||||
radius = value
|
||||
|
||||
padding
|
||||
{
|
||||
left = value
|
||||
top = value
|
||||
right = value
|
||||
bottom = value
|
||||
}
|
||||
}
|
||||
|
||||
shadow
|
||||
{
|
||||
enabled = boolean value
|
||||
size = value from 0 to 30
|
||||
color = value
|
||||
opacity = value from 0 to 100
|
||||
offset = value from 0 to 30
|
||||
}
|
||||
|
||||
font
|
||||
{
|
||||
size = value start from 6
|
||||
name = "tahoma"
|
||||
weight = value from 1 to 9
|
||||
italic = 0
|
||||
}
|
||||
|
||||
separator
|
||||
{
|
||||
size = value form 0 to 40
|
||||
color = value
|
||||
opacity = value
|
||||
|
||||
margin
|
||||
{
|
||||
left = value
|
||||
top = value
|
||||
right = value
|
||||
bottom = value
|
||||
}
|
||||
}
|
||||
|
||||
symbol
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
|
||||
// or
|
||||
chevron
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
|
||||
checkmark
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
|
||||
bullet
|
||||
{
|
||||
normal = color
|
||||
normal.disabled = color
|
||||
select = color
|
||||
select.disabled = color
|
||||
}
|
||||
}
|
||||
|
||||
image
|
||||
{
|
||||
enabled = boolean value
|
||||
|
||||
color = [color1, color2, color3]
|
||||
gap = value
|
||||
glyph = "font name" // font name for default glyph
|
||||
scale = boolean value
|
||||
align = value
|
||||
[0= Display only the check mark,1 = Display only the image,2 = Display image & checkheck mark together]
|
||||
}
|
||||
|
||||
layout
|
||||
{
|
||||
// Right-to-left layout display for Middle Eastern languages
|
||||
rtl = boolean value
|
||||
|
||||
// Align submenus
|
||||
popup = value from -20 to 20
|
||||
}
|
||||
}</code></pre>
|
||||
<h3>Padding and Margin value syntax</h3>
|
||||
<p>Use the padding shorthand property with four values:</p>
|
||||
<code>padding = [1, 2, 3, 4]</code>
|
||||
<pre class="mt-2"><code>left = 1
|
||||
right = 2
|
||||
top = 3
|
||||
bottom = 4</code></pre>
|
||||
<p>Use the padding shorthand property with two values:</p>
|
||||
<code>padding = [4, 2]</code>
|
||||
<pre class="mt-2"><code>left = 4
|
||||
right = 4
|
||||
top = 2
|
||||
bottom = 2</code></pre>
|
||||
<p>Use the padding shorthand property with one value:</p>
|
||||
<code>padding = 4</code>
|
||||
<pre class="mt-2"><code>left = 4
|
||||
right = 4
|
||||
top = 4
|
||||
bottom = 4</code></pre>
|
||||
@@ -0,0 +1,32 @@
|
||||
<h5>Copy Path example</h5>
|
||||
<pre><code class="lang-shell">// type can set with '~taskbar' equals all file types except taskbar.
|
||||
menu(type='file|dir|back|root|namespace' mode="multiple" title='copy to clipboard' image=#ff00ff)
|
||||
{
|
||||
// Appears only when multiple selections.
|
||||
item(vis=@(sel.count > 1) title='Copy path (@sel.count) items selected'
|
||||
cmd=command.copy(sel(false, "\n")))
|
||||
|
||||
item(mode="single" title=sel.path
|
||||
cmd=command.copy(sel.path))
|
||||
|
||||
item(mode="single" type='file|dir|back.dir'
|
||||
vis=sel.short.len!=sel.path.len title=sel.short
|
||||
cmd=command.copy(sel.short))
|
||||
separator
|
||||
item(mode="single" vis=@(sel.parent.len>3) title=sel.parent
|
||||
cmd=command.copy(sel.parent))
|
||||
separator
|
||||
item(mode="single" type='file|dir|back.dir' title=sel.file.name
|
||||
cmd=command.copy(sel.file.name))
|
||||
|
||||
item(mode="single" type='file' title=sel.file.title
|
||||
cmd=command.copy(sel.file.title))
|
||||
|
||||
item(mode="single" type='file' title=sel.file.ext
|
||||
cmd=command.copy(sel.file.ext))
|
||||
}
|
||||
</code></pre><div class="has-text-centered my-5 preview">
|
||||
<img class="is-256" src="/docs/images/copypath1.png">
|
||||
<img class="is-256" src="/docs/images/copypath2.png">
|
||||
<img class="is-256" src="/docs/images/copypath3.png">
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
<h5>Favorite applications and directories example</h5>
|
||||
<pre><code class="lang-shell">menu(type='desktop|taskbar' title='Favorites' image=#00ff00)
|
||||
{
|
||||
menu(title='Applications' image=#ff0000)
|
||||
{
|
||||
item(title='Command prompt' image cmd='cmd.exe')
|
||||
item(title='PowerShell' image cmd='powershell.exe')
|
||||
item(title='Registry editor' image cmd='regedit.exe')
|
||||
separator
|
||||
item(title='Paint' image cmd='mspaint.exe')
|
||||
item(title='Notepad' image cmd='notepad.exe')
|
||||
}
|
||||
separator
|
||||
menu(title='Directories' image=#0000ff)
|
||||
{
|
||||
item(title='Downloads' cmd=user.downloads)
|
||||
item(title='Pictures' cmd=user.pictures)
|
||||
item(title='Home' cmd=user.directory)
|
||||
separator
|
||||
item(title='Windows' cmd=sys.directory)
|
||||
item(title='Program files' cmd=sys.prog())
|
||||
}
|
||||
}</code></pre>
|
||||
<figure class="has-text-centered my-5 preview">
|
||||
<img class="is-256" src="/docs/images/fav1.png">
|
||||
<img class="is-256" src="/docs/images/fav2.png">
|
||||
</figure>
|
||||
@@ -0,0 +1,53 @@
|
||||
<h5>Goto example</h5>
|
||||
<pre><code class="lang-shell">menu(mode="multiple" title='Goto' sep="both" image= \uE14A)
|
||||
{
|
||||
menu(title='Folder' image=\uE1F4)
|
||||
{
|
||||
item(title='Windows' image=inherit cmd=sys.dir)
|
||||
item(title='System' image=inherit cmd=sys.bin)
|
||||
item(title='Program Files' image=inherit cmd=sys.prog)
|
||||
item(title='Program Files x86' image=inherit cmd=sys.prog32)
|
||||
item(title='ProgramData' image=inherit cmd=sys.programdata)
|
||||
item(title='Applications' image=inherit cmd='shell:appsfolder')
|
||||
item(title='Users' image=inherit cmd=sys.users)
|
||||
separator
|
||||
item(title='Desktop' image=inherit cmd=user.desktop)
|
||||
item(title='Downloads' image=inherit cmd=user.downloads)
|
||||
item(title='Pictures' image=inherit cmd=user.pictures)
|
||||
item(title='Documents' image=inherit cmd=user.documents)
|
||||
item(title='Startmenu' image=inherit cmd=user.startmenu)
|
||||
item(title='Profile' image=inherit cmd=user.dir)
|
||||
item(title='AppData' image=inherit cmd=user.appdata)
|
||||
item(title='Temp' image=inherit cmd=user.temp)
|
||||
}
|
||||
|
||||
item(title=title.control_panel image=\uE0F3 cmd='shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}')
|
||||
item(title='All Control Panel Items' image=\uE0F3 cmd='shell:::{ED7BA470-8E54-465E-825C-99712043E01C}')
|
||||
item(title=title.run image=\uE14B cmd='shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}')
|
||||
|
||||
menu(title=title.settings sep="before" image=id.settings.icon)
|
||||
{
|
||||
// https://docs.microsoft.com/en-us/windows/uwp/launch-resume/launch-settings-app
|
||||
item(title='systeminfo' image=inherit cmd arg='/K systeminfo')
|
||||
item(title='search' cmd='search-ms:' image=inherit)
|
||||
item(title='settings' image=inherit cmd='ms-settings:')
|
||||
item(title='about' image=inherit cmd='ms-settings:about')
|
||||
item(title='usb' image=inherit cmd='ms-settings:usb')
|
||||
item(title='network-status' image=inherit cmd='ms-settings:network-status')
|
||||
item(title='network-ethernet' image=inherit cmd='ms-settings:network-ethernet')
|
||||
item(title='personalization-background' image=inherit cmd='ms-settings:personalization-background')
|
||||
item(title='personalization-colors' image=inherit cmd='ms-settings:colors')
|
||||
item(title='lockscreen' image=\uE0F3 cmd='ms-settings:lockscreen')
|
||||
item(title='personalization-start' image=inherit cmd='ms-settings:personalization-start')
|
||||
item(title='appsfeatures' image=inherit cmd='ms-settings:appsfeatures')
|
||||
item(title='optionalfeatures' image=inherit cmd='ms-settings:optionalfeatures')
|
||||
item(title='defaultapps' image=inherit cmd='ms-settings:defaultapps')
|
||||
item(title='yourinfo' image=inherit cmd='ms-settings:yourinfo')
|
||||
item(title='windowsupdate' image=inherit cmd='ms-settings:windowsupdate')
|
||||
item(title='windowsdefender' image=inherit cmd='ms-settings:windowsdefender')
|
||||
item(title='network connections' image=inherit cmd='shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}')
|
||||
}
|
||||
}</code></pre>
|
||||
<div class="has-text-centered my-5">
|
||||
<img class="preview is-256" src="/docs/images/goto.png">
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
<h4>Examples</h4><br>
|
||||
<p>This page contains some examples of what <b>Shell</b> can do.</p>
|
||||
@@ -0,0 +1,13 @@
|
||||
<h5>Taskbar example</h5>
|
||||
<pre class="lang-shell">$hello_world = 'Hello World!'
|
||||
|
||||
item(title=hello_world cmd=msg(hello_world))
|
||||
separator
|
||||
item(title='Command prompt' cmd args='/k echo @hello_world')
|
||||
separator
|
||||
menu(title='Sub menu')
|
||||
{
|
||||
item(title='Open Paint' cmd='paint.exe' arg=sel.path)
|
||||
separator
|
||||
item(title='Open Notepad' cmd='notepad.exe' arg='"@sel.path"')
|
||||
}</code></pre>
|
||||
@@ -0,0 +1,5 @@
|
||||
<h4>Color literal</h4>
|
||||
<br>
|
||||
<h5>Hexadecimal Colors</h5>
|
||||
<p>interprets color constants as hexadecimal if they are preceded by <code>#</code> and hexadecimal color is specified with:
|
||||
<code>#RRGGBB</code> or <code>#RRGGBBAA</code>, where the RR (red), GG (green) and BB (blue)and AA (alpha) hexadecimal integers specify the components of the color. All values must be between <code>00</code> and <code>FF</code>.<br/>For example, the <code>#0000FF</code> value is rendered as blue, because the blue component is set to its highest value (<code>FF</code>) and the others are set to <code>00</code>.<br/>There are 140 color names are predefined under the <a href="/docs/functions/color">color</a> scope.</p>
|
||||
@@ -0,0 +1,44 @@
|
||||
<h4>Comments</h4>
|
||||
<p>Comments can be used to explain <b>Shell</b> code, and to make it more readable. It can also be used to prevent execution <b>Shell</b> code. Comments can be singled-lined or multi-lined.</p>
|
||||
<div id="single-line">
|
||||
<h5>Single-line Comments</h5>
|
||||
<p>
|
||||
Single-line comments start with two forward slashes (<code>//</code>).<br>
|
||||
Any text between <code>//</code> and the end of the line is ignored (will not be executed).
|
||||
</p>
|
||||
<p>This example uses a single-line comment before a line of code:</p>
|
||||
<pre><code class="lang-shell">dynamic
|
||||
{
|
||||
// This is a comment
|
||||
item(title='Hello World!')
|
||||
|
||||
//item(title='Hello World!')
|
||||
}</code></pre>
|
||||
|
||||
<p>This example uses a single-line comment at the end of a line of code:</p>
|
||||
<pre><code class="lang-shell">dynamic
|
||||
{
|
||||
item(title='Hello World!') // This is a comment
|
||||
}</code></pre>
|
||||
</div>
|
||||
<br>
|
||||
<div id="multi-line">
|
||||
<h5>Multi-line Comments</h5>
|
||||
<p>
|
||||
Multi-line comments start with <code>/*</code> and ends with <code>*/</code>.<br>
|
||||
Any text between <code>/*</code> and <code>*/</code> will be ignored.
|
||||
</p>
|
||||
<pre><code class="lang-shell">dynamic
|
||||
{
|
||||
item(title='Hello,/* multiple-lines comment inside */ world')
|
||||
|
||||
/*
|
||||
item(title='test item 1')
|
||||
item(title='test item 2')
|
||||
*/
|
||||
}</code></pre>
|
||||
<p>
|
||||
Single or multi-line comments?<br>
|
||||
It is up to you which you want to use. Normally, we use <code>//</code> for short comments, and <code>/* */</code> for longer.
|
||||
</p>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<h4>Identifier</h4>
|
||||
<br>
|
||||
<p>The identifier have unique titles described by fully qualified names that indicate a logical hierarchy.<br>The identifier that has no parameters. Parentheses are added when necessary to separate:</p>
|
||||
<p>There is a hierarchy of keywords in that some keywords are always followed by others.</p>
|
||||
<pre><code class="lang-shell">sel.path
|
||||
sel.path().ext</code></pre>
|
||||
@@ -0,0 +1,12 @@
|
||||
<h4>Expressions</h4>
|
||||
<br>
|
||||
<p><b>Shell</b> provides a variety of statements and expressions. Most of these will be familiar to developers who have programmed in Java script, C, C++, C#.</p>
|
||||
<p>Expressions gives you all the power of <b>Shell</b>, but is using a simplified syntax that's easier to learn if you're a beginner, and makes you more productive if you're an expert.</p>
|
||||
<p>To use expressions, you write them by using proper syntax. Syntax is the set of rules by which the words and symbols in an expression are correctly combined. Initially, expressions in <b>Shell</b> are a little bit hard to read. But with a good understanding of expression syntax and a little practice, it becomes much easier.</p>
|
||||
<ul>
|
||||
<li>Expressions is non-case sensitive</li>
|
||||
<li>Expressions (variables and functions) start with @</li>
|
||||
<li>blocks are enclosed in @( ... )</li>
|
||||
<li>Strings are enclosed with quotation marks or single quotation marks</li>
|
||||
</ul>
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<h4>Numeric literals</h4>
|
||||
<br>
|
||||
<p>There are two types of numbers. Integer and floating point.</p>
|
||||
<h5>Integer literals</h5>
|
||||
<p>An integer is a numeric literal(associated with numbers) without any fractional or exponential part. There are two types of integer literals:</p>
|
||||
<ol>
|
||||
<li>Decimal literal (base 10)</li>
|
||||
<li>Hexadecimal literal (base 16)</li>
|
||||
</ol>
|
||||
<p><strong>1. Decimal-literal(base 10):</strong><br>A non-zero decimal digit followed by zero or more decimal digits(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).</p>
|
||||
For example:<pre><code>Decimal: 0, -9, 22 etc</code></pre>
|
||||
<p><strong>2. Hexadecimal-literal(base 16):</strong><br>0x followed by one or more hexadecimal digits(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f).</p>
|
||||
For example:
|
||||
<pre><code>Hexadecimal: 0x7f, 0x2a, 0x521 etc</code></pre>
|
||||
<h5>Floating-point iterals</h5>
|
||||
|
||||
<p>Floating-point literals specify values that must have a fractional part. These values contain decimal points (.)</p>
|
||||
For example:
|
||||
<pre><code>-2.0<br>0.0000234</code></pre>
|
||||
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
<h4>Operators</h4>
|
||||
<br>
|
||||
<p>An operator is a symbol that tells to perform specific mathematical or logical manipulations. <b>Shell</b> is rich in built-in operators and provide the following types of operators</p>
|
||||
<p>This chapter will examine the arithmetic, relational, logical, bitwise, assignment and other operators one by one.</p>
|
||||
<h5 id="arithmetic">Arithmetic Operators</h5>
|
||||
<p>The five arithmetical operations supported</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="has-text-centered" width="10%">Operator</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">+</td>
|
||||
<td>Addition</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">-</td>
|
||||
<td>Subtraction</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">*</td>
|
||||
<td>Multiplication</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">/</td>
|
||||
<td>Division</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">%</td>
|
||||
<td>Modulo</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<h5 id="relational">Relational and comparison operators</h5>
|
||||
<p>Two expressions can be compared using relational and equality operators. For example, to know if two values are equal or if one is greater than the other.</p>
|
||||
<p>The result of such an operation is either true or false (i.e., a Boolean value).</p>
|
||||
<p>The relational operators are:</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="has-text-centered"width="10%">operator</th><th>description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">==</td><td>Equal to</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">!=</td><td>Not equal to</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered"><</td><td>Less than</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">></td><td>Greater than</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered"><=</td><td>Less than or equal to</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">>=</td><td>Greater than or equal to</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<h5 id="logical">Logical Operators (!, ||, &&)</h5>
|
||||
<p> The operator <code>!</code> is operator for the Boolean operation NOT. It has only one operand, to its right, and inverts it, producing false if its operand is true, and true if its operand is false. Basically, it returns the opposite Boolean value of evaluating its operand. For example:</p>
|
||||
<p> The logical operators <code>&&</code> and <code>||</code> are used when evaluating two expressions to obtain a single relational result. The operator <code>&&</code> corresponds to the Boolean logical operation AND, which yields true if both its operands are true, and false otherwise. The following panel shows the result of operator <code>&&</code> evaluating the expression <code>a && b</code>:</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="has-text-centered" width="10%">operator</th>
|
||||
<th>description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">&&</td>
|
||||
<td>Called Logical AND operator. If both the operands are non-zero, then condition becomes true.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">||</td>
|
||||
<td>Called Logical OR Operator. If any of the two operands is non-zero, then condition becomes true.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">!</td>
|
||||
<td>
|
||||
Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true, then Logical NOT operator will make false.
|
||||
<pre><code>!(5 == 5) <cite>// evaluates to false because the expression at its right (5 == 5) is true</cite>
|
||||
!(6 <= 4) <cite>// evaluates to true because (6 <= 4) would be false</cite>
|
||||
!<var>true</var> <cite>// evaluates to false</cite>
|
||||
!<var>false</var> <cite>// evaluates to true</cite></code></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<h5 id="ternary">Conditional ternary operator</h5>
|
||||
<p>The conditional operator evaluates an expression, returning one value if that expression evaluates to true, and a different one if the expression evaluates as false. Its syntax is:</p>
|
||||
<pre><code>condition ? result1 : result2</code></pre>
|
||||
<p>If condition is true, the entire expression evaluates to result1, and otherwise to result2.</p>
|
||||
<pre><code>7==5 ? 4 : 3 <cite>// evaluates to 3, since 7 is not equal to 5.</cite>
|
||||
7==5+2 ? 4 : 3 <cite>// evaluates to 4, since 7 is equal to 5+2.</cite>
|
||||
5>3 ? a : b <cite>// evaluates to the value of a, since 5 is greater than 3.</cite>
|
||||
a>b ? a : b <cite>// evaluates to whichever is greater, a or b.</cite></code></pre>
|
||||
|
||||
<h5 id="bitwise">Bitwise Operators</h5>
|
||||
<p>Bitwise operators modify variables considering the bit patterns that represent the values they store.</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="has-text-centered" width="10%">Operator</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">&</td>
|
||||
</td><td>Bitwise AND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">|</td>
|
||||
<td>Bitwise inclusive OR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">^</td>
|
||||
<td>Bitwise exclusive OR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">~</td>
|
||||
<td>Unary complement (bit inversion)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered"><<</td>
|
||||
<td>Shift bits left</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="has-text-centered">>></td>
|
||||
<td>Shift bits right</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h5 id="precedence">Precedence of operators</h5>
|
||||
<p> A single expression may have multiple operators. For example:</p>
|
||||
<pre><code>x = 5 + 7 % 2</code></pre>
|
||||
<p>the above expression always assigns 6 to variable x, because the <code>%</code> operator has a higher precedence than the <code>+</code> operator, and is always evaluated before. Parts of the expressions can be enclosed in parenthesis to override this precedence order, or to make explicitly clear the intended effect. Notice the difference:</p>
|
||||
<pre><code>x = 5 + (7 % 2) <cite>// x = 6 (same as without parenthesis)</cite>
|
||||
x = (5 + 7) % 2 <cite>// x = 0</cite></code></pre>
|
||||
<p>From greatest to smallest priority, Operators are evaluated in the following order:</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Level</th>
|
||||
<th>Precedence group</th>
|
||||
<th>Operator</th>
|
||||
<th>Description</th>
|
||||
<th>Grouping</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">1</td>
|
||||
<td rowspan="4">Postfix (unary)</td>
|
||||
<td><code>++ --</code></td>
|
||||
<td>postfix increment / decrement</td>
|
||||
<td rowspan="4">Left-to-right</td>
|
||||
</tr>
|
||||
<tr><td><code>()</code></td><td>functional forms</td></tr>
|
||||
<tr><td><code>[]</code></td><td>subscript</td></tr>
|
||||
<tr><td><code>.</code></td><td>member access</td>
|
||||
</tr>
|
||||
<tr><td rowspan="3">2</td><td rowspan="3">Prefix (unary)</td><td><code>++ --</code></td><td>prefix increment / decrement</td><td rowspan="3">Right-to-left</td></tr>
|
||||
<tr><td><code>~ !</code></td><td>bitwise NOT / logical NOT</td></tr>
|
||||
<tr><td><code>+ -</code></td><td>unary prefix</td></tr>
|
||||
<tr><td>4</td><td>Arithmetic: scaling</td><td><code>* / %</code></td><td>multiply, divide, modulo</td><td>Left-to-right</td></tr>
|
||||
<tr><td>5</td><td>Arithmetic: addition</td><td><code>+ -</code></td><td>addition, subtraction</td><td>Left-to-right</td></tr>
|
||||
<tr><td>6</td><td>Bitwise shift</td><td><code><< >></code></td><td>shift left, shift right</td><td>Left-to-right</td></tr>
|
||||
<tr><td>7</td><td>Relational</td><td><code>< > <= >=</code></td><td>comparison operators</td><td>Left-to-right</td></tr>
|
||||
<tr><td>8</td><td>Equality</td><td><code>== !=</code></td><td>equality / inequality</td><td>Left-to-right</td></tr>
|
||||
<tr><td>9</td><td>And</td><td><code>&</code></td><td>bitwise AND</td><td>Left-to-right</td></tr>
|
||||
<tr><td>10</td><td>Exclusive or</td><td><code>^</code></td><td>bitwise XOR</td><td>Left-to-right</td></tr>
|
||||
<tr><td>11</td><td>Inclusive or</td><td><code>|</code></td><td>bitwise OR</td><td>Left-to-right</td></tr>
|
||||
<tr><td>12</td><td>Conjunction</td><td><code>&&</code></td><td>logical AND</td><td>Left-to-right</td></tr>
|
||||
<tr><td>13</td><td>Disjunction</td><td><code>||</code></td><td>logical OR</td><td>Left-to-right</td></tr>
|
||||
<tr><td rowspan="2">15</td><td rowspan="2">Assignment-level expressions</td><td><code>=</code></td><td>assignment</td><td rowspan="2">Right-to-left</td></tr>
|
||||
<tr><td><code>?:</code></td><td>conditional operator</td></tr>
|
||||
<tr><td>16</td><td>Sequencing</td><td><code>,</code></td><td>comma separator</td><td>Left-to-right</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
When an expression has two operators with the same precedence level, grouping determines which one is evaluated first: either left-to-right or right-to-left.<br>
|
||||
Enclosing all sub-statements in parentheses (even those unnecessary because of their precedence) improves code readability.
|
||||
</p>
|
||||
@@ -0,0 +1,37 @@
|
||||
<h4>String literal</h4>
|
||||
<br>
|
||||
<p>string is zero or more characters written inside single or double quotes.</p>
|
||||
<p>You can use quotes inside a string, as long as they don't match the quotes surrounding the string:</p>
|
||||
<pre><code class="lang-shell">$var1 = "It's alright"
|
||||
$var2 = "He is called 'Johnny'"
|
||||
$var3 = 'He is called "Johnny"'</code></pre>
|
||||
<br>
|
||||
<h5>Single quotes</h5>
|
||||
<br>
|
||||
<p>single quotes allow you to use the syntax of expressions within them.<br/>The <code>@</code> sign must be placed before the expressions.</p>
|
||||
<pre><code class="lang-shell">item(title = 'windows dir path: @sys.dir')</code></pre>
|
||||
<br>
|
||||
<h5>Double quotes</h5>
|
||||
<br>
|
||||
<p>double quotes allow you to use the Escape Character inside them only.<br/>The backslash (<code>\</code>) escape character turns special characters into characters.<br/>The sequence <code>\" </code> inserts a double quote in a string:</p>
|
||||
<pre><code class="lang-shell">$var1 = "hello\"world"
|
||||
// result: hello"world</code></pre>
|
||||
<p>The complete set of escape sequences is as follows:</p>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr><td>\'</td><td>Single quote</td></tr>
|
||||
<tr><td>\"</td><td>Double quote</td></tr>
|
||||
<tr><td>\\</td><td>Backslash</td></tr>
|
||||
<tr><td>\0</td><td>Null</td></tr>
|
||||
<tr><td>\a</td><td>Alert</td></tr>
|
||||
<tr><td>\b</td><td>Backspace</td></tr>
|
||||
<tr><td>\f</td><td>Form Feed</td></tr>
|
||||
<tr><td>\n</td><td>New Line</td></tr>
|
||||
<tr><td>\r</td><td>Carriage Return</td></tr>
|
||||
<tr><td>\t</td><td>Horizontal Tab</td></tr>
|
||||
<tr><td>\v</td><td>Vertical Tab</td></tr>
|
||||
<tr><td>\uxxxx</td><td>Unicode escape sequence (UTF-16) \uHHHH (range: 0000 - FFFF)</td></tr>
|
||||
<tr><td>\xnnnn</td><td>Unicode escape sequence for character with hex value nnnn (variable length version of \uxxxx)</td></tr>
|
||||
<tr><td>\Uxxxxxxxx</td><td>Unicode escape sequence (UTF-32) \U00HHHHHH (range: 000000 - 10FFFF)</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,33 @@
|
||||
<h4>Variables</h4>
|
||||
<br>
|
||||
<p>Variables are containers for storing data values.</p>
|
||||
<ul>
|
||||
<li>Global and local variables are optional.</li>
|
||||
<li>To declare more than one variable, use a space.</li>
|
||||
</ul>
|
||||
<p>The general rules for constructing names for variables (unique identifiers) are:</p>
|
||||
<ul>
|
||||
<li>Names can contain letters, digits and underscores (<code>_</code>).</li>
|
||||
<li>Names must begin with a letter.</li>
|
||||
<li>Names cannot contain whitespaces or special characters like !, #, %, etc.</li>
|
||||
<li>Reserved words (like keywords, such as null, true, false, etc.) cannot be used as names.</li>
|
||||
<li>Variables can be placed in globle variables, or in the dynamic body section of an menu, or in both.</li>
|
||||
</ul>
|
||||
<p>
|
||||
All variables must be identified with unique names.<br>
|
||||
These unique names are called identifiers.
|
||||
Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume).
|
||||
</p>
|
||||
<p><i>Note:</i> It is recommended to use descriptive names in order to create understandable and maintainable code</p>
|
||||
<h5 class="mt-5">Example</h5>
|
||||
<pre><code class="lang-shell">$hello_world = 'Hello World!'
|
||||
$test_add1 = 5 + 6
|
||||
|
||||
item(title = hello_world cmd = msg(hello_world))
|
||||
|
||||
menu(title = test_add1)
|
||||
{
|
||||
$test_sub1 = 11 - 5
|
||||
item(title = test_sub1)
|
||||
}</code></pre>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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('<svg viewBox="0 0 100 100"><path fill="red" d="M0 0 L 100 0 L50
|
||||
100 Z"/></svg>')</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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -0,0 +1,33 @@
|
||||
<h4>Get Started</h4>
|
||||
<br>
|
||||
<p>
|
||||
This tutorial will teach you the basics of <b>Shell</b>.<br>
|
||||
It is not necessary to have any prior experience.
|
||||
</p>
|
||||
<p>
|
||||
To start using <b>Shell</b>, you need:<br>
|
||||
A text editor, like Notepad, to write <b>Shell</b> code.
|
||||
</p>
|
||||
<h5>Quickstart</h5>
|
||||
<p>Let's create our first menu item.</p>
|
||||
<p>Open the configuration file "shell.nss" and Write the following code and save.</p>
|
||||
<div class="notification is-info mt-5" role="alert">
|
||||
<i>Tip:</i> You find the configuration file <code>shell.nss</code> in the <i>Shell</i> program folder. To find the
|
||||
<i>Shell</i> program folder, use <kbd>shift</kbd>+<kbd>right-click</kbd> on the Taskbar. The <i>Shell</i> menu
|
||||
will appear at the top of the context menu. In its submenu, you can click on <code>directory</code> to open the folder
|
||||
where the <i>Shell</i> configuration files are saved.
|
||||
</div>
|
||||
<br/>
|
||||
<pre><code class="lang-shell">item(title='Hello, World!' cmd=msg('Hello @user.name'))
|
||||
</code></pre>
|
||||
<p>Don't worry if you don't understand the code above - we will discuss it in detail in later chapters.</p>
|
||||
<div class="notification is-info mt-5" role="alert">
|
||||
<i>Tip:</i> After editing any nss file, you'll need to update changes: hold <kbd>ctrl</kbd>+<kbd>right-click</kbd>
|
||||
on the desktop area or Taskbar to force <i>Shell</i> to reload the nss files. Alternatively, or you can restart
|
||||
<i>Windows Explorer</i>.
|
||||
</div>
|
||||
<p>The result will look something for this when you press the <kbd>right-click</kbd> in an empty place on the desktop:</p>
|
||||
<div class="has-text-centered my-5">
|
||||
<img class="preview" src="/docs/images/helloworld.png" title="">
|
||||
</div>
|
||||
<p><b>Congratulations</b> You have now added the first time a menu item to the context menu</p>
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 54 KiB |
@@ -0,0 +1,26 @@
|
||||
<h4>Introduction</h4>
|
||||
<br>
|
||||
<h5>What is Shell?</h5>
|
||||
<p>
|
||||
<b>Shell</b> is an extension of Windows File Explorer that can be used to create high-performance context menu items.
|
||||
And gives user a high level of control over context menu of Windows File Explorer.
|
||||
</p>
|
||||
<p>The Right Click Menu or the Context Menu is the menu, which appears when you right-click on the desktop, file, folder or taskbar in Windows. This menu gives you added functionality by offering you actions you can take with the item.</p>
|
||||
<p><b>Shell</b> is all you need to customize or add new items with several functions to Windows File Explorer Context menu and Much More.(cascade menus, advanced menus, multi-level menus, command menus, separator).</p>
|
||||
<div class="has-text-centered my-6">
|
||||
<img class="preview" src="/docs/images/dark/goto.png">
|
||||
</div>
|
||||
<h5>Why Use Shell</h5>
|
||||
<ul>
|
||||
<li>Is portable, fun and easy to learn!</li>
|
||||
<li>Configuration in plain text.</li>
|
||||
<li>Quick loading.</li>
|
||||
<li>Minimal resource usage.</li>
|
||||
<li>No limitations.</li>
|
||||
<li>Embedded expressions syntax.</li>
|
||||
<li>Built-in functions and predefined variables.</li>
|
||||
<li>Multiple sources of images (embedded icons, image files, svg, glyphs, and colors).</li>
|
||||
<li>Dynamic search and filter.</li>
|
||||
<li>Support Taskbar context menu.</li>
|
||||
<li>Full management of the context menu.</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,218 @@
|
||||
<h4>Installation</h4>
|
||||
<br>
|
||||
<div class="notification is-warning mt-5" role="alert">
|
||||
<i>Info:</i> Administrative permissions are required for installation.
|
||||
</div>
|
||||
<br>
|
||||
<p>Shell can be installed in the following ways:</p>
|
||||
<ul>
|
||||
<li><a href="#installer">Installer</a></li>
|
||||
<li><a href="#portable">Portable</a></li>
|
||||
<li><a href="#winget">Windows Package Manager</a></li>
|
||||
<li><a href="#scoop">Scoop</a></li>
|
||||
<li><a href="#chocolatey">Chocolatey</a></li>
|
||||
</ul><br>
|
||||
<p>Please also note the following reference sections:</p>
|
||||
<ul>
|
||||
<li><a href="#cli">Command-Line Help</a></li>
|
||||
<li><a href="#keys">Keys to enable/disable Shell functionalities</a></li>
|
||||
</ul>
|
||||
<br>
|
||||
<div id="installer">
|
||||
<h5>Installer version</h5>
|
||||
<div id="installer-install">
|
||||
<h5>Install</h5>
|
||||
<p><a href="/download">Download</a> the installation file (Installer/Portable),
|
||||
run <code>setup.exe</code>, follow the installation steps, and agree to restart Windows File Explorer.</p>
|
||||
<p>The program will be installed to <code>C:\Program Files\Nilesoft Shell\</code>, unless you have chosen
|
||||
a different installation path during the installation steps.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="installer-uninstall">
|
||||
<h5>Uninstall</h5>
|
||||
<p>Inside the Shell program folder (<code>C:\Program Files\Nilesoft Shell\</code> by default), run the <code>unst000.exe</code>
|
||||
or <code>unstall.exe</code> file, then follow the steps, and then agree to restart Windows File Explorer.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div id="portable">
|
||||
<h5>Portable version</h5>
|
||||
<div id="portable-install">
|
||||
<h5>Install</h5>
|
||||
<p><a href="/download">Download</a> the
|
||||
installation file (Installer/Portable),
|
||||
run <code>setup.exe</code>,
|
||||
click Next, chose the folder you want the program to be extracted
|
||||
to, <strong>Check the option Portable Mode</strong>, and click
|
||||
Extract.</p>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), change to the directory you have extracted the program to, and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">Administrator: Command Prompt</div>
|
||||
<div class="console-body">shell -register -restart</div>
|
||||
</div>
|
||||
<p>For further details, see the chapter <a href="#cli">Command-Line Help</a> below.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="portable-uninstall">
|
||||
<h5>Uninstall</h5>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), change to the directory you have extracted the program to, and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">Administrator: Command Prompt</div>
|
||||
<div class="console-body">shell -unregister -restart</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="notification is-info mt-5">
|
||||
<i>Tip:</i> Close all instances of Windows File Explorer before uninstalling to avoid needing a reboot after
|
||||
it (Shell) has been uninstalled.
|
||||
</div>
|
||||
<br>
|
||||
<p>For further details see the chapter <a href="#cli">Command-Line Help</a> below.</p>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div id="winget">
|
||||
<h5>Windows Package Manager</h5>
|
||||
<p>Windows Package Manager is available from Windows 10 version 1809.</p>
|
||||
<div id="winget-install">
|
||||
<h5>Install</h5>
|
||||
<p>Open a command prompt, and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">winget install Nilesoft.Shell</div>
|
||||
</div>
|
||||
<p>The program will be installed to <code>C:\Program Files\Nilesoft Shell\</code>.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="winget-uninstall">
|
||||
<h5>Uninstall</h5>
|
||||
<p>Open a command prompt, and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">winget uninstall Nilesoft.Shell</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div id="scoop">
|
||||
<h5>Scoop</h5>
|
||||
<p>Scoop can be installed following the instructions at <a href="https://scoop.sh/">scoop.sh</a>.</p>
|
||||
<div id="scoop-install">
|
||||
<h5>Install</h5>
|
||||
<p>Open a command prompt, and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">scoop install nilesoft-shell</div>
|
||||
</div>
|
||||
<p>The program will be installed to <code>%USERPROFILE%\scoop\apps\nilesoft-shell\current\</code>.</p>
|
||||
<div class="notification is-info mt-5">
|
||||
<i>Tip:</i> If you get the error <code>Couldn't find manifest for 'nilesoft-shell'</code>, please run first
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">scoop bucket add extras</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">Administrator: Command Prompt</div>
|
||||
<div class="console-body">shell -register -restart</div>
|
||||
</div>
|
||||
<p>For further details see the chapter <a href="#cli">Command-Line Help</a> below.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="scoop-uninstall">
|
||||
<h5>Uninstall</h5>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">Administrator: Command Prompt</div>
|
||||
<div class="console-body">shell -unregister -restart</div>
|
||||
</div>
|
||||
<p>Then run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">Administrator: Command Prompt</div>
|
||||
<div class="console-body">scoop uninstall nilesoft-shell</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div id="chocolatey">
|
||||
<h5>Chocolatey</h5>
|
||||
<p>Chocolatey can be installed following the instructions at <a href="https://chocolatey.org/install#individual">chocolatey.org</a>.</p>
|
||||
<div id="chocolatey-install">
|
||||
<h5>Install</h5>
|
||||
<div class="notification is-info mt-5">
|
||||
<i>Notice:</i> Until the package has been moderated, you need to add the specific version string to the
|
||||
installer, adding e.g.<br/>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">
|
||||
choco install nilesoft.shell --version=1.8.1
|
||||
</div>
|
||||
</div>
|
||||
Please find the latest published version at <a href="https://community.chocolatey.org/packages/nilesoft.shell#versionhistory">
|
||||
Chocolatey's Version History</a> and use the latest version number (replacing <code>1.8.1</code>).
|
||||
</div>
|
||||
<br>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">
|
||||
choco install nilesoft.shell
|
||||
</div>
|
||||
</div>
|
||||
<p>The program will be installed to <code>C:\Program Files\Nilesoft Shell\</code>.</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="chocolatey-uninstall">
|
||||
<h5>Uninstall</h5>
|
||||
<p>Open an <strong>elevated command prompt</strong> (or use <a href="https://github.com/gerardog/gsudo">gsudo</a>), and run</p>
|
||||
<div class="console">
|
||||
<div class="console-title">COMMAND PROMPT</div>
|
||||
<div class="console-body">choco uninstall nilesoft.shell</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<div id="cli">
|
||||
<h5 id="cli-help">Command-Line Help</h5><br>
|
||||
<code>shell -[options]</code>
|
||||
<br><br>
|
||||
<h5 id="cli-options">Options</h5>
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<td class="syntax-keyword w-25">-register (-r)</td>
|
||||
<td>Registering.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">-unregister (-u)</td>
|
||||
<td>Unregistering.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">-restart (-re)</td>
|
||||
<td>Restart Windows Explorer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">-treat</td>
|
||||
<td>Disable Windows 11 context menu.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">-silent (-s)</td>
|
||||
<td>Prevents displaying messages.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="syntax-keyword">-?</td>
|
||||
<td>Display this help message.</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="keys">
|
||||
<h5>Use the following keys to enable/disable</h5>
|
||||
<p>These keys are used when you press <kbd>right-click</kbd> or press <kbd>Shift</kbd>+<kbd>F10</kbd> keys</p>
|
||||
<kbd>CTRL</kbd> To enable and reload the configuration file <code>shell.nss</code><br/>
|
||||
<kbd>WIN</kbd> To make priority to the modern context menu for Windows 11<br>
|
||||
<kbd>CTRL</kbd>+<kbd>WIN</kbd> To disable Shell and Enable Classic Context Menu<br>
|
||||
<kbd>RIGHT-CLICK</kbd>+<kbd>LEFT-CLICK</kbd> To reload the configuration file <code>shell.nss</code><br/>
|
||||
</div>
|
||||
@@ -0,0 +1,59 @@
|
||||
[
|
||||
{"title":"Introduction", "link":"/docs"},
|
||||
{"title":"Installation", "link":"/docs/installation"},
|
||||
{"title":"Get Started", "link":"/docs/get-started"},
|
||||
{
|
||||
"title":"Configuration", "link":"/docs/configuration",
|
||||
"items": [
|
||||
{"title":"Settings", "link":"/docs/configuration/settings"},
|
||||
{"title":"Themes", "link":"/docs/configuration/themes"},
|
||||
{"title":"Modify items", "link":"/docs/configuration/modify-items"},
|
||||
{"title":"New items", "link":"/docs/configuration/new-items"},
|
||||
{"title":"Properties", "link":"/docs/configuration/properties" }
|
||||
]
|
||||
},{
|
||||
"title":"Expressions", "link":"/docs/expressions",
|
||||
"items": [
|
||||
{"title":"Comments", "link":"/docs/expressions/comments"},
|
||||
{"title":"Variables", "link":"/docs/expressions/variables"},
|
||||
{"title":"String literal", "link":"/docs/expressions/string"},
|
||||
{"title":"Numeric literal", "link":"/docs/expressions/numeric"},
|
||||
{"title":"Color literal", "link":"/docs/expressions/color"},
|
||||
{"title":"Operators", "link":"/docs/expressions/operators"},
|
||||
{"title":"Identifier", "link":"/docs/expressions/identifier"}
|
||||
]
|
||||
},{
|
||||
"title":"Functions", "link":"/docs/functions",
|
||||
"items": [
|
||||
{"title":"app", "link":"/docs/functions/app"},
|
||||
{"title":"appx", "link":"/docs/functions/appx"},
|
||||
{"title":"color", "link":"/docs/functions/color"},
|
||||
{"title":"command", "link":"/docs/functions/command"},
|
||||
{"title":"id", "link":"/docs/functions/id"},
|
||||
{"title":"image", "link":"/docs/functions/image"},
|
||||
{"title":"io", "link":"/docs/functions/io"},
|
||||
{"title":"key", "link":"/docs/functions/key"},
|
||||
{"title":"msg", "link":"/docs/functions/msg"},
|
||||
{"title":"path", "link":"/docs/functions/path"},
|
||||
{"title":"process", "link":"/docs/functions/process"},
|
||||
{"title":"reg", "link":"/docs/functions/reg"},
|
||||
{"title":"sel", "link":"/docs/functions/sel"},
|
||||
{"title":"str", "link":"/docs/functions/str"},
|
||||
{"title":"sys", "link":"/docs/functions/sys"},
|
||||
{"title":"this", "link":"/docs/functions/this"},
|
||||
{"title":"user", "link":"/docs/functions/user"},
|
||||
{"title":"window", "link":"/docs/functions/window"},
|
||||
{"title":"clipboard", "link":"/docs/functions/clipboard"},
|
||||
{"title":"input", "link":"/docs/functions/input"},
|
||||
{"title":"ini", "link":"/docs/functions/ini"},
|
||||
{"title":"regex", "link":"/docs/functions/regex"}
|
||||
]
|
||||
},{
|
||||
"title":"Examples", "link":"/docs/examples",
|
||||
"items": [
|
||||
{"title":"Copy path", "link":"/docs/examples/copy-path"},
|
||||
{"title":"Favorites", "link":"/docs/examples/favorites"},
|
||||
{"title":"Go to", "link":"/docs/examples/goto"}
|
||||
]
|
||||
}
|
||||
]
|
||||