<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w96.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A01%3AE0A%3A965%3A5320%3AF90D%3A3F24%3A1396%3AD96D</id>
	<title>Wiki96 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://w96.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2A01%3AE0A%3A965%3A5320%3AF90D%3A3F24%3A1396%3AD96D"/>
	<link rel="alternate" type="text/html" href="https://w96.wiki/wiki/Special:Contributions/2A01:E0A:965:5320:F90D:3F24:1396:D96D"/>
	<updated>2026-05-02T11:48:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://w96.wiki/w/index.php?title=How_to_change_the_start_button_text&amp;diff=328</id>
		<title>How to change the start button text</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=How_to_change_the_start_button_text&amp;diff=328"/>
		<updated>2022-08-17T22:38:17Z</updated>

		<summary type="html">&lt;p&gt;2A01:E0A:965:5320:F90D:3F24:1396:D96D: tag the file as TUT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:TUT:How to change the start button text}}&lt;br /&gt;
# Open File Explorer and go to '''&amp;lt;code&amp;gt;C:/system/boot&amp;lt;/code&amp;gt;'''&lt;br /&gt;
# Make a file ending with &amp;lt;code&amp;gt;.css&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the file type &amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;.start_button:after {&amp;lt;br/&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;content: &amp;quot;Your text here&amp;quot;;&amp;lt;br/&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
# Save the file&lt;br /&gt;
# And reboot Windows 96&lt;br /&gt;
# '''Done!'''&lt;br /&gt;
{{DEFAULTSORT:TUT:How_to_change_the_start_button_text}}&lt;/div&gt;</summary>
		<author><name>2A01:E0A:965:5320:F90D:3F24:1396:D96D</name></author>
	</entry>
	<entry>
		<id>https://w96.wiki/w/index.php?title=Developing_Applications&amp;diff=326</id>
		<title>Developing Applications</title>
		<link rel="alternate" type="text/html" href="https://w96.wiki/w/index.php?title=Developing_Applications&amp;diff=326"/>
		<updated>2022-08-17T16:18:43Z</updated>

		<summary type="html">&lt;p&gt;2A01:E0A:965:5320:F90D:3F24:1396:D96D: changed the cli example to the new api&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Windows 96 includes a flexible API for developing your own applications. All applications are ran under WRT, which is a partial sandbox and runtime provided by Windows 96 for applications.&lt;br /&gt;
&lt;br /&gt;
Applications may be referred to as &amp;quot;bins&amp;quot;, &amp;quot;WRT bins&amp;quot;, &amp;quot;application bin&amp;quot;, or &amp;quot;sysbins&amp;quot; depending on the context.&lt;br /&gt;
&lt;br /&gt;
== Structure of an application ==&lt;br /&gt;
Windows 96 applications are simply JavaScript files without the .JS extension that include a WRT shebang (&amp;lt;code&amp;gt;//!wrt&amp;lt;/code&amp;gt;). The shebang denotes that this regular file is a WRT bin, and must be the very first line in any WRT application. It may sometimes include a binary specification (BSPEC) suffix to describe some metadata about the application.&lt;br /&gt;
&lt;br /&gt;
=== The binary specification (BSPEC) ===&lt;br /&gt;
As mentioned before, the binary specification (BSPEC) is a way to describe metadata for a WRT bin. It always follows the shebang on the same line, where the cumulative line size must not exceed 256 characters.&lt;br /&gt;
&lt;br /&gt;
The BSPEC is a simple JSON object prefixed with &amp;lt;code&amp;gt;$BSPEC:&amp;lt;/code&amp;gt; and contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;icn&amp;lt;/code&amp;gt; - The name of the icon to use.&lt;br /&gt;
* &amp;lt;code&amp;gt;cpr&amp;lt;/code&amp;gt; - The copyright holder of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;dsc&amp;lt;/code&amp;gt; - A basic description of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;frn&amp;lt;/code&amp;gt; - The display name of the application.&lt;br /&gt;
* &amp;lt;code&amp;gt;aut&amp;lt;/code&amp;gt; - The application author.&lt;br /&gt;
* &amp;lt;code&amp;gt;ssy&amp;lt;/code&amp;gt; - The subsystem to use for this application. Can either be &amp;lt;code&amp;gt;gui&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;cli&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;ver&amp;lt;/code&amp;gt; - The version of the application.&lt;br /&gt;
&lt;br /&gt;
Below is an example of a binary specification declaration for the File Explorer application.&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt $BSPEC:{&amp;quot;icn&amp;quot;:&amp;quot;apps/explorer&amp;quot;,&amp;quot;cpr&amp;quot;:&amp;quot;Copyright (C) Windows 96 Team 2021.&amp;quot;,&amp;quot;dsc&amp;quot;:&amp;quot;System File Explorer&amp;quot;,&amp;quot;frn&amp;quot;:&amp;quot;Explorer&amp;quot;,&amp;quot;ver&amp;quot;:1}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A GUI example program ===&lt;br /&gt;
&lt;br /&gt;
Here is an example of a very basic Windows 96 GUI program:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt&lt;br /&gt;
const { Theme } = w96.ui;&lt;br /&gt;
&lt;br /&gt;
class GUIApplication extends WApplication {&lt;br /&gt;
    /**&lt;br /&gt;
     * Application constructor.&lt;br /&gt;
     */&lt;br /&gt;
    constructor() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Main entry point.&lt;br /&gt;
     * @param {String[]} argv The program arguments.&lt;br /&gt;
     */&lt;br /&gt;
    async main(argv) {&lt;br /&gt;
        // Create the window&lt;br /&gt;
        const mainwnd = this.createWindow({&lt;br /&gt;
            title: &amp;quot;Sample Application&amp;quot;,&lt;br /&gt;
            body: &amp;quot;Sample text&amp;quot;,&lt;br /&gt;
            bodyClass: &amp;quot;sample-app&amp;quot;,&lt;br /&gt;
            taskbar: true,&lt;br /&gt;
            resizable: true,&lt;br /&gt;
            initialHeight: 480,&lt;br /&gt;
            initialWidth: 640,&lt;br /&gt;
            icon: await Theme.getIconUrl(&amp;quot;mime/executable&amp;quot;, '16x16')&lt;br /&gt;
        }, true);&lt;br /&gt;
        &lt;br /&gt;
        // Show the window&lt;br /&gt;
        mainwnd.show();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return await WApplication.execAsync(new GUIApplication(), this.boxedEnv.args);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Save this file anywhere, without a file extension, and then double click to run it. You may need to refresh your explorer view to allow it to recognize this file as a program.&lt;br /&gt;
&lt;br /&gt;
=== A CLI example program ===&lt;br /&gt;
Here is an example of a very basic Windows 96 terminal program:&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
//!wrt $BSPEC:{&amp;quot;ssy&amp;quot;:&amp;quot;cli&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
const term = this.boxedEnv.term;&lt;br /&gt;
// If the program is not executed in a terminal, exit.&lt;br /&gt;
if (!term) return;&lt;br /&gt;
&lt;br /&gt;
class CLIApplication extends WApplication {&lt;br /&gt;
    /**&lt;br /&gt;
     * Application constructor.&lt;br /&gt;
     */&lt;br /&gt;
    constructor() {&lt;br /&gt;
        super()&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Main entry point.&lt;br /&gt;
     * @param {String[]} argv The program arguments.&lt;br /&gt;
     */&lt;br /&gt;
    async main(argv) {&lt;br /&gt;
        super.main(argv);&lt;br /&gt;
        &lt;br /&gt;
        // Write some text in the terminal.&lt;br /&gt;
        term.writeln(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
        term.writeln(&amp;quot;Welcome to the most useful app!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Get user input and store it in a variable.&lt;br /&gt;
        let e = await term.prompt(&amp;quot;Enter your first name: &amp;quot;);&lt;br /&gt;
        term.writeln(&amp;quot;Nice job &amp;quot; + e + &amp;quot;!&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        let r = await term.prompt(&amp;quot;Last name: &amp;quot;);&lt;br /&gt;
        term.writeln(`Hi there ${e} ${r}!`);&lt;br /&gt;
        &lt;br /&gt;
        // Pause the program.&lt;br /&gt;
        await term.pause()&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return await WApplication.execAsync(new CLIApplication(), this.boxedEnv.args, this);&lt;br /&gt;
class CLIApplication extends WApplication {&lt;br /&gt;
    &lt;br /&gt;
    constructor() {&lt;br /&gt;
        super();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    async main(argv, executionContext) {&lt;br /&gt;
        super.main(argv);&lt;br /&gt;
&lt;br /&gt;
        let term = executionContext.term;&lt;br /&gt;
        &lt;br /&gt;
        if (!term) {&lt;br /&gt;
            return&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // Write some text in the terminal.&lt;br /&gt;
        term.writeln('Hello World!');&lt;br /&gt;
        term.writeln('Welcome to the most useful app!');&lt;br /&gt;
&lt;br /&gt;
        // Get user input and store it in a variable.&lt;br /&gt;
        let firstName = await term.prompt(&amp;quot;Enter your first name: &amp;quot;);&lt;br /&gt;
        term.writeln('Nice job ' + firstName + '!');&lt;br /&gt;
&lt;br /&gt;
        let lastName = await term.prompt('Last name: ');&lt;br /&gt;
        term.writeln(`Hi there ${firstName} ${lastName}!`);&lt;br /&gt;
&lt;br /&gt;
        // Pause the program.&lt;br /&gt;
        await term.pause();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return await WApplication.execAsync(new CLIApplication(), this.boxedEnv.args);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Save this file anywhere, without a file extension, and then enter the path to the file in the terminal to run it.&lt;br /&gt;
&lt;br /&gt;
== Running an application ==&lt;br /&gt;
To run an application, you can either:&lt;br /&gt;
&lt;br /&gt;
* Run it from the Run box or terminal with its executable name, if the binary is present in any directory denoted by the PATH environment variable.&lt;br /&gt;
* Double click it in an explorer window to execute it in the current directory. (Only work for GUI apps).&lt;br /&gt;
* Enter the absolute path of the application bin in a Run box or terminal window.&lt;/div&gt;</summary>
		<author><name>2A01:E0A:965:5320:F90D:3F24:1396:D96D</name></author>
	</entry>
</feed>