trial on Dual Window Manager

This commit is contained in:
EverythingWindows 2022-11-20 21:53:17 +07:00
parent 9d384be175
commit 3f4edf1b79
15 changed files with 474 additions and 5 deletions

View file

@ -263,10 +263,15 @@ Module TerminalAPI
Case "shutdown", "shut down" Case "shutdown", "shut down"
TerminateShiftOS() TerminateShiftOS()
Case "startx" Case "startx"
Undeveloped()
StartX() StartX()
Console_Windowed() Console_Windowed()
DuWM_FirstWindowSet(Console)
Case "shiftertest"
DuWM_SecondWindowSet(Shifter)
Case "stopx" Case "stopx"
StopX() StopX()
Undeveloped()
Case "textpad" Case "textpad"
If Strings.AvailableFeature(17) = "1" Then If Strings.AvailableFeature(17) = "1" Then
TextPad_WarnFile() TextPad_WarnFile()

View file

@ -7,6 +7,7 @@
Public Shared CLIInterpreter As String Public Shared CLIInterpreter As String
Public Shared SaveFile As String Public Shared SaveFile As String
Public Shared Achievement As String Public Shared Achievement As String
Public Shared ProcessID(2) As String
'STRING CATEGORIZATION WRITING RULES! 'STRING CATEGORIZATION WRITING RULES!
'THIS IS IN ORDER TO REMAIN COMPATIBLE WITH OLDER VERSIONS! 'THIS IS IN ORDER TO REMAIN COMPATIBLE WITH OLDER VERSIONS!

View file

@ -60,7 +60,7 @@ Module SaveLoadSystem
Strings.ComputerInfo(0) = "shiftos" Strings.ComputerInfo(0) = "shiftos"
Strings.ComputerInfo(1) = "user" Strings.ComputerInfo(1) = "user"
Strings.ComputerInfo(2) = "0" Strings.ComputerInfo(2) = "0"
Strings.ComputerInfo(4) = "31" Strings.ComputerInfo(4) = "34"
Strings.AvailableFeature(0) = "1" Strings.AvailableFeature(0) = "1"
Strings.AvailableFeature(1) = "1" Strings.AvailableFeature(1) = "1"
Strings.AvailableFeature(2) = "1" Strings.AvailableFeature(2) = "1"

View file

@ -17,6 +17,7 @@ Public Class Console
Public ShOSKey As String 'DOSKEY tracking string for ShiftOS Public ShOSKey As String 'DOSKEY tracking string for ShiftOS
Public Secure As Boolean 'Define either Secure Text mode is enabled or not (experimental!) Public Secure As Boolean 'Define either Secure Text mode is enabled or not (experimental!)
Public SecureString As String 'String for Secure Text mode (experimental) Public SecureString As String 'String for Secure Text mode (experimental)
Public DuWM_PID As Integer 'DuWM Process ID
Private Sub Console_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub Console_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With ShortcutHandler With ShortcutHandler
@ -223,7 +224,7 @@ Public Class Console
End If End If
End If End If
End If End If
If Strings.OnceInfo(0) = "Yes" Then If Strings.OnceInfo(0) = "Yes" Then
InfoBar.Text = InfoBar.Text & " root |" InfoBar.Text = InfoBar.Text & " root |"
Else Else
InfoBar.Text = InfoBar.Text & " user |" InfoBar.Text = InfoBar.Text & " user |"

View file

@ -0,0 +1,55 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class Shifter
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label()
Me.SuspendLayout()
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(12, 9)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(40, 13)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Shifter!"
'
'Shifter
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.Label1)
Me.ForeColor = System.Drawing.Color.Black
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Me.Name = "Shifter"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Shifter"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Label1 As Label
End Class

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,13 @@
Public Class Shifter
Public DuWM_PID As Integer 'DuWM Process ID
Private Sub Shifter_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub DuWM_Tick(sender As Object, e As EventArgs)
If Strings.ProcessID(DuWM_PID) = 0 Then
Close()
End If
End Sub
End Class

View file

@ -4,10 +4,12 @@
Desktop.TopMost = False Desktop.TopMost = False
Desktop.FormBorderStyle = FormBorderStyle.None Desktop.FormBorderStyle = FormBorderStyle.None
Desktop.WindowState = FormWindowState.Maximized Desktop.WindowState = FormWindowState.Maximized
Cursor.Show()
End Sub End Sub
Public Sub StopX() Public Sub StopX()
Desktop.Close() Desktop.Close()
Cursor.Hide()
Console_Full() Console_Full()
End Sub End Sub
End Module End Module

View file

@ -0,0 +1,57 @@
Module DuWM_Main
Public IsDual As Boolean
Public Sub DuWM_FirstWindowSet(WindowName As Form)
WindowName.Height = Desktop.Height - 20
WindowName.Width = (Desktop.Width / 2) - 20
WindowName.Location = New Point(10, 10)
End Sub
Public Sub DuWM_SecondWindowSet(WindowName As Form)
WindowName.Show()
WindowName.Height = Desktop.Height - 20
WindowName.Width = (Desktop.Width / 2) - 20
WindowName.Location = New Point((Desktop.Width / 2) + 10, 10)
End Sub
'Public Sub DuWM_GenerateWindowSet(WindowName As Form, PID As Integer)
' Dim NewWContainer As New DuWM_WindowContainer
' NewWContainer.Width = (Desktop.Width / 2) - 10
' NewWContainer.Height = Desktop.Height - 20
' NewWContainer.ChildForm = WindowName
' NewWContainer.ChildForm.TopLevel = False
' NewWContainer.ChildForm.FormBorderStyle = FormBorderStyle.None
' NewWContainer.ChildForm.Size = New Size((Desktop.Width / 2) - 10, Desktop.Height - 20)
' Select Case PID
' Case 0
' NewWContainer.Location = New Point(10, 10)
' Case 1
' NewWContainer.Location = New Point((Desktop.Width / 2) + 10, 10)
' End Select
' NewWContainer.ChildForm.WindowState = FormWindowState.Normal
' NewWContainer.ChildForm.Visible = False
' NewWContainer.DuWM_ContainerPanel.Controls.Add(NewWContainer.ChildForm)
' Select Case NewWContainer.ChildForm.Visible
' Case False
' NewWContainer.ChildForm.Visible = True
' Case Else
' NewWContainer.ChildForm.Visible = False
' End Select
' Dim WindowNameStr As String = Convert.ToString(WindowName)
' Select Case WindowNameStr
' Case "Console"
' NewWContainer.DuWM_PID = 0
' Strings.ProcessID(0) = 1
' Case "Shifter"
' NewWContainer.DuWM_PID = 1
' Strings.ProcessID(1) = 1
' End Select
' NewWContainer.Show()
' NewWContainer.DuWM_WMCheck.Start()
'End Sub
'Public Sub DuWM_KillAllWindow()
' Strings.ProcessID(0) = 0
' Strings.ProcessID(1) = 0
'End Sub
End Module

View file

@ -0,0 +1,57 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class DuWM_WindowContainer
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.DuWM_ContainerPanel = New System.Windows.Forms.Panel()
Me.DuWM_WMCheck = New System.Windows.Forms.Timer(Me.components)
Me.SuspendLayout()
'
'DuWM_ContainerPanel
'
Me.DuWM_ContainerPanel.Dock = System.Windows.Forms.DockStyle.Fill
Me.DuWM_ContainerPanel.Location = New System.Drawing.Point(0, 0)
Me.DuWM_ContainerPanel.Name = "DuWM_ContainerPanel"
Me.DuWM_ContainerPanel.Size = New System.Drawing.Size(800, 450)
Me.DuWM_ContainerPanel.TabIndex = 0
'
'DuWM_WMCheck
'
'
'DuWM_WindowContainer
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.DuWM_ContainerPanel)
Me.ForeColor = System.Drawing.Color.Black
Me.Name = "DuWM_WindowContainer"
Me.Text = "DuWM_WindowContainer"
Me.ResumeLayout(False)
End Sub
Friend WithEvents DuWM_ContainerPanel As Panel
Friend WithEvents DuWM_WMCheck As Timer
End Class

View file

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="DuWM_WMCheck.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View file

@ -0,0 +1,14 @@
Public Class DuWM_WindowContainer
Public ChildForm As Form
Public DuWM_PID As Integer
Private Sub DuWM_WindowContainer_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub DuWM_WMCheck_Tick(sender As Object, e As EventArgs) Handles DuWM_WMCheck.Tick
If Strings.ProcessID(DuWM_PID) = 0 Then
Close()
End If
End Sub
End Class

View file

@ -98,6 +98,12 @@
<Compile Include="Functions\InGame\Hardwares\KeyboardHandler.vb" /> <Compile Include="Functions\InGame\Hardwares\KeyboardHandler.vb" />
<Compile Include="Functions\InGame\SystemManager\CodepointSystem.vb" /> <Compile Include="Functions\InGame\SystemManager\CodepointSystem.vb" />
<Compile Include="Functions\InGame\SystemManager\Terminate.vb" /> <Compile Include="Functions\InGame\SystemManager\Terminate.vb" />
<Compile Include="MainForms\Applications\Shifter.Designer.vb">
<DependentUpon>Shifter.vb</DependentUpon>
</Compile>
<Compile Include="MainForms\Applications\Shifter.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForms\BugSlap.Designer.vb"> <Compile Include="MainForms\BugSlap.Designer.vb">
<DependentUpon>BugSlap.vb</DependentUpon> <DependentUpon>BugSlap.vb</DependentUpon>
</Compile> </Compile>
@ -168,6 +174,13 @@
</Compile> </Compile>
<Compile Include="API\ConsoleAPI.vb" /> <Compile Include="API\ConsoleAPI.vb" />
<Compile Include="API\TerminalAPI.vb" /> <Compile Include="API\TerminalAPI.vb" />
<Compile Include="MainForms\WindowManager\DualWindowManager\DuWM_Main.vb" />
<Compile Include="MainForms\WindowManager\DualWindowManager\DuWM_WindowContainer.Designer.vb">
<DependentUpon>DuWM_WindowContainer.vb</DependentUpon>
</Compile>
<Compile Include="MainForms\WindowManager\DualWindowManager\DuWM_WindowContainer.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="TerminalApplications\External\BasicCalculator\App_BC.vb" /> <Compile Include="TerminalApplications\External\BasicCalculator\App_BC.vb" />
<Compile Include="TerminalApplications\External\GuessTheNumber\App_Guess.vb" /> <Compile Include="TerminalApplications\External\GuessTheNumber\App_Guess.vb" />
<Compile Include="TerminalApplications\External\MathQuiz\App_MathQuiz.vb" /> <Compile Include="TerminalApplications\External\MathQuiz\App_MathQuiz.vb" />
@ -220,6 +233,9 @@
<Compile Include="TerminalApplications\Internal\Com_Zip.vb" /> <Compile Include="TerminalApplications\Internal\Com_Zip.vb" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="MainForms\Applications\Shifter.resx">
<DependentUpon>Shifter.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForms\BugSlap.resx"> <EmbeddedResource Include="MainForms\BugSlap.resx">
<DependentUpon>BugSlap.vb</DependentUpon> <DependentUpon>BugSlap.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@ -247,6 +263,9 @@
<EmbeddedResource Include="MainForms\Applications\Console.resx"> <EmbeddedResource Include="MainForms\Applications\Console.resx">
<DependentUpon>Console.vb</DependentUpon> <DependentUpon>Console.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="MainForms\WindowManager\DualWindowManager\DuWM_WindowContainer.resx">
<DependentUpon>DuWM_WindowContainer.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx"> <EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator> <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput> <LastGenOutput>Resources.Designer.vb</LastGenOutput>
@ -272,7 +291,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="DevOnlyRes\" /> <Folder Include="DevOnlyRes\" />
<Folder Include="MainForms\WindowManager\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Resources\ShiftOSBuildLab.txt" /> <None Include="Resources\ShiftOSBuildLab.txt" />

View file

@ -26,7 +26,7 @@
MQ_Operation = " + " MQ_Operation = " + "
MQ_ShouldResult = MQ_1stNum + MQ_2ndNum MQ_ShouldResult = MQ_1stNum + MQ_2ndNum
Case 2 Case 2
While MQ_2ndNum > MQ_1stNum While MQ_2ndNum >= MQ_1stNum
MQ_2ndNum = RandomNum.Next(1, 10) MQ_2ndNum = RandomNum.Next(1, 10)
End While End While
MQ_Operation = " - " MQ_Operation = " - "
@ -35,6 +35,9 @@
MQ_Operation = " * " MQ_Operation = " * "
MQ_ShouldResult = MQ_1stNum * MQ_2ndNum MQ_ShouldResult = MQ_1stNum * MQ_2ndNum
Case 4 Case 4
While MQ_2ndNum > MQ_1stNum
MQ_2ndNum = RandomNum.Next(1, 10)
End While
MQ_Operation = " / " MQ_Operation = " / "
MQ_ShouldResult = MQ_1stNum / MQ_2ndNum MQ_ShouldResult = MQ_1stNum / MQ_2ndNum
Case Else Case Else

View file

@ -84,7 +84,7 @@ Module Com_Unzip
' copy all the sub-directories by recursively calling this same routine ' copy all the sub-directories by recursively calling this same routine
Dim SubDir As DirectoryInfo Dim SubDir As DirectoryInfo
For Each SubDir In SourceDir.GetDirectories() For Each SubDir In SourceDir.GetDirectories()
NewLine("Copying " & SubDir.Name & "...") NewLine("Copying '" & SubDir.Name & "' directory ...")
CopyDirectory(SubDir.FullName, Path.Combine(DestDir.FullName, CopyDirectory(SubDir.FullName, Path.Combine(DestDir.FullName,
SubDir.Name), Overwrite) SubDir.Name), Overwrite)
AddLine(" OK") AddLine(" OK")