update to latest version

This commit is contained in:
Merith 2025-02-28 11:27:06 -08:00
parent b69a6ae4a1
commit ddd2ea9eb5
41 changed files with 7918 additions and 7943 deletions

8
.gitignore vendored
View file

@ -1,5 +1,5 @@
.vs .vs
bin/ bin/
obj/ obj/
vendor/ vendor/
*.exe *.exe

View file

@ -1,24 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.5.2.0 VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlApp", "ControlApp.csproj", "{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlApp", "ControlApp.csproj", "{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Debug|Any CPU.Build.0 = Debug|Any CPU {6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Release|Any CPU.ActiveCfg = Release|Any CPU {6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Release|Any CPU.Build.0 = Release|Any CPU {6AE5ADEB-26FF-95F6-EDB2-48A49EBE4352}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4F317106-6E0C-4E08-96A3-A093625C9743} SolutionGuid = {4F317106-6E0C-4E08-96A3-A093625C9743}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,61 +1,43 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup> <PropertyGroup>
<AssemblyName>ControlApp</AssemblyName> <AssemblyName>ControlApp</AssemblyName>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo> <GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<UseWindowsForms>True</UseWindowsForms> <UseWindowsForms>True</UseWindowsForms>
<TargetFramework>net8.0-windows</TargetFramework> <TargetFramework>netcoreapp8.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<LangVersion>12.0</LangVersion> <LangVersion>12.0</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<RootNamespace /> <RootNamespace />
<ApplicationIcon>App.ico</ApplicationIcon> </PropertyGroup>
<PlatformTarget>x64</PlatformTarget> <ItemGroup />
</PropertyGroup> <ItemGroup>
<ItemGroup> <Reference Include="HtmlAgilityPack">
<Compile Remove="ControlAppMonolith.cs" /> <HintPath>C:\ControlApp\HtmlAgilityPack.dll</HintPath>
</ItemGroup> </Reference>
<ItemGroup> <Reference Include="AxInterop.WMPLib">
<None Include="ControlAppMonolith.cs" /> <HintPath>C:\ControlApp\AxInterop.WMPLib.dll</HintPath>
</ItemGroup> </Reference>
<ItemGroup> <Reference Include="Vlc.DotNet.Forms">
<PackageReference Include="System.Drawing.Common" Version="9.0.0" /> <HintPath>C:\ControlApp\Vlc.DotNet.Forms.dll</HintPath>
</ItemGroup> </Reference>
<ItemGroup> <Reference Include="Vlc.DotNet.Core">
<Reference Include="HtmlAgilityPack"> <HintPath>C:\ControlApp\Vlc.DotNet.Core.dll</HintPath>
<HintPath>C:\ControlApp\HtmlAgilityPack.dll</HintPath> </Reference>
</Reference> <Reference Include="Interop.WMPLib">
<Reference Include="AxInterop.WMPLib"> <HintPath>C:\ControlApp\Interop.WMPLib.dll</HintPath>
<HintPath>C:\ControlApp\AxInterop.WMPLib.dll</HintPath> </Reference>
</Reference> <Reference Include="System.Speech">
<Reference Include="Vlc.DotNet.Forms"> <HintPath>C:\ControlApp\System.Speech.dll</HintPath>
<HintPath>C:\ControlApp\Vlc.DotNet.Forms.dll</HintPath> </Reference>
</Reference> <Reference Include="Emgu.CV">
<Reference Include="Vlc.DotNet.Core"> <HintPath>C:\ControlApp\Emgu.CV.dll</HintPath>
<HintPath>C:\ControlApp\Vlc.DotNet.Core.dll</HintPath> </Reference>
</Reference> <Reference Include="Emgu.CV.Bitmap">
<Reference Include="Interop.WMPLib"> <HintPath>C:\ControlApp\Emgu.CV.Bitmap.dll</HintPath>
<HintPath>C:\ControlApp\Interop.WMPLib.dll</HintPath> </Reference>
</Reference> </ItemGroup>
<Reference Include="System.Speech">
<HintPath>C:\ControlApp\System.Speech.dll</HintPath>
</Reference>
<Reference Include="Emgu.CV">
<HintPath>C:\ControlApp\Emgu.CV.dll</HintPath>
</Reference>
<Reference Include="Emgu.CV.Bitmap">
<HintPath>C:\ControlApp\Emgu.CV.Bitmap.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Update="App.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Readme.md">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project> </Project>

View file

@ -1,51 +1,51 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup /> <PropertyGroup />
<ItemGroup> <ItemGroup>
<Compile Update="ControlApp\Audiopop.cs"> <Compile Update="ControlApp\Audiopop.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\Blank.cs"> <Compile Update="ControlApp\Blank.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\ComForm.cs"> <Compile Update="ControlApp\ComForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\ConfigSettingsForm.cs"> <Compile Update="ControlApp\ConfigSettingsForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\ControlApp.cs"> <Compile Update="ControlApp\ControlApp.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\CustomMessage.cs"> <Compile Update="ControlApp\CustomMessage.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\Options.cs"> <Compile Update="ControlApp\Options.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\Other.cs"> <Compile Update="ControlApp\Other.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\PopUp.cs"> <Compile Update="ControlApp\PopUp.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\sendcmd.cs"> <Compile Update="ControlApp\sendcmd.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\SendOrDelete.cs"> <Compile Update="ControlApp\SendOrDelete.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\Subliminal.cs"> <Compile Update="ControlApp\Subliminal.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\WatchForMe.cs"> <Compile Update="ControlApp\WatchForMe.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\Webform.cs"> <Compile Update="ControlApp\Webform.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="ControlApp\WriteForMe.cs"> <Compile Update="ControlApp\WriteForMe.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -1,15 +1,15 @@
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
[CompilerGenerated] [CompilerGenerated]
internal static class ApplicationConfiguration internal static class ApplicationConfiguration
{ {
public static void Initialize() public static void Initialize()
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(defaultValue: false); Application.SetCompatibleTextRenderingDefault(defaultValue: false);
Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.SetHighDpiMode(HighDpiMode.SystemAware);
} }
} }

View file

@ -1,59 +1,59 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Media; using System.Media;
using System.Windows.Forms; using System.Windows.Forms;
using WMPLib; using WMPLib;
namespace ControlApp; namespace ControlApp;
public class Audiopop : Form public class Audiopop : Form
{ {
private string whatlocal; private string whatlocal;
private IContainer components; private IContainer components;
public Audiopop(string what) public Audiopop(string what)
{ {
whatlocal = what; whatlocal = what;
InitializeComponent(); InitializeComponent();
} }
private void Audiopop_Load(object sender, EventArgs e) private void Audiopop_Load(object sender, EventArgs e)
{ {
if (whatlocal.Substring(whatlocal.Length - 3, 3) == "wav") if (whatlocal.Substring(whatlocal.Length - 3, 3) == "wav")
{ {
new SoundPlayer(whatlocal).Play(); new SoundPlayer(whatlocal).Play();
Close(); Close();
return; return;
} }
WindowsMediaPlayerClass windowsMediaPlayerClass = new WindowsMediaPlayerClass(); WindowsMediaPlayerClass windowsMediaPlayerClass = new WindowsMediaPlayerClass();
((IWMPPlayer4)windowsMediaPlayerClass).URL = whatlocal; ((IWMPPlayer4)windowsMediaPlayerClass).URL = whatlocal;
((IWMPPlayer4)windowsMediaPlayerClass).controls.play(); ((IWMPPlayer4)windowsMediaPlayerClass).controls.play();
Close(); Close();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
base.SuspendLayout(); base.SuspendLayout();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.Name = "Audiopop"; base.Name = "Audiopop";
base.Opacity = 0.0; base.Opacity = 0.0;
base.ShowIcon = false; base.ShowIcon = false;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
this.Text = "Audiopop"; this.Text = "Audiopop";
base.Load += new System.EventHandler(Audiopop_Load); base.Load += new System.EventHandler(Audiopop_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,108 +1,108 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class Blank : Form public class Blank : Form
{ {
private int count; private int count;
private int whatlock; private int whatlock;
private Timer tmr; private Timer tmr;
private LockMouse lockMouse; private LockMouse lockMouse;
private LockKeyboard LockKeyboard; private LockKeyboard LockKeyboard;
private IContainer components; private IContainer components;
public Blank(int what) public Blank(int what)
{ {
tmr = new Timer(); tmr = new Timer();
tmr.Interval = (int)TimeSpan.FromSeconds(10.0).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromSeconds(10.0).TotalMilliseconds;
tmr.Tick += closewindow; tmr.Tick += closewindow;
lockMouse = new LockMouse(); lockMouse = new LockMouse();
LockKeyboard = new LockKeyboard(); LockKeyboard = new LockKeyboard();
whatlock = what; whatlock = what;
InitializeComponent(); InitializeComponent();
count = 1; count = 1;
} }
public void closewindow(object sender, EventArgs e) public void closewindow(object sender, EventArgs e)
{ {
count--; count--;
if (count == 0) if (count == 0)
{ {
if (whatlock == 1) if (whatlock == 1)
{ {
lockMouse.Unlock(); lockMouse.Unlock();
} }
else if (whatlock == 2) else if (whatlock == 2)
{ {
lockMouse.Unlock(); lockMouse.Unlock();
LockKeyboard.Unlock(); LockKeyboard.Unlock();
} }
Close(); Close();
} }
} }
public void add_time(int what) public void add_time(int what)
{ {
if (whatlock < what) if (whatlock < what)
{ {
whatlock = what; whatlock = what;
} }
count++; count++;
} }
private void Blank_Load(object sender, EventArgs e) private void Blank_Load(object sender, EventArgs e)
{ {
base.Opacity = 0.001; base.Opacity = 0.001;
base.StartPosition = FormStartPosition.CenterScreen; base.StartPosition = FormStartPosition.CenterScreen;
Screen[] my = Screen.AllScreens; Screen[] my = Screen.AllScreens;
base.Size = my[0].Bounds.Size; base.Size = my[0].Bounds.Size;
base.FormBorderStyle = FormBorderStyle.None; base.FormBorderStyle = FormBorderStyle.None;
base.TopMost = true; base.TopMost = true;
base.Visible = true; base.Visible = true;
if (whatlock == 1) if (whatlock == 1)
{ {
lockMouse.Lock(); lockMouse.Lock();
} }
else if (whatlock == 2) else if (whatlock == 2)
{ {
lockMouse.Lock(); lockMouse.Lock();
LockKeyboard.Lock(); LockKeyboard.Lock();
} }
tmr.Start(); tmr.Start();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
base.SuspendLayout(); base.SuspendLayout();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.ControlBox = false; base.ControlBox = false;
this.Cursor = System.Windows.Forms.Cursors.No; this.Cursor = System.Windows.Forms.Cursors.No;
base.Name = "Blank"; base.Name = "Blank";
base.Opacity = 0.001; base.Opacity = 0.001;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
this.Text = "Blank"; this.Text = "Blank";
base.TopMost = true; base.TopMost = true;
base.WindowState = System.Windows.Forms.FormWindowState.Maximized; base.WindowState = System.Windows.Forms.FormWindowState.Maximized;
base.Load += new System.EventHandler(Blank_Load); base.Load += new System.EventHandler(Blank_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,84 +1,84 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using HtmlAgilityPack; using HtmlAgilityPack;
namespace ControlApp; namespace ControlApp;
public class ComForm : Form public class ComForm : Form
{ {
private string formtype; private string formtype;
private IContainer components; private IContainer components;
public string[] ReturnedData { get; private set; } public string[] ReturnedData { get; private set; }
public ComForm(string Url, string type) public ComForm(string Url, string type)
{ {
formtype = type; formtype = type;
ReturnedData = new string[3] { "", "", "" }; ReturnedData = new string[3] { "", "", "" };
WebBrowser wb = new WebBrowser(); WebBrowser wb = new WebBrowser();
wb.Name = "TheWebBrowser"; wb.Name = "TheWebBrowser";
wb.Navigate(Url); wb.Navigate(Url);
wb.Dock = DockStyle.Fill; wb.Dock = DockStyle.Fill;
wb.DocumentCompleted += TheWebBrowser_DocumentCompleted; wb.DocumentCompleted += TheWebBrowser_DocumentCompleted;
base.Controls.Add(wb); base.Controls.Add(wb);
InitializeComponent(); InitializeComponent();
} }
private void ComForm_Load(object sender, EventArgs e) private void ComForm_Load(object sender, EventArgs e)
{ {
} }
private void TheWebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) private void TheWebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{ {
if (base.Controls["TheWebBrowser"] != null) if (base.Controls["TheWebBrowser"] != null)
{ {
string htmlContent = ((WebBrowser)base.Controls["TheWebBrowser"]).DocumentText; string htmlContent = ((WebBrowser)base.Controls["TheWebBrowser"]).DocumentText;
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlContent); doc.LoadHtml(htmlContent);
HtmlNode labelNode = doc.GetElementbyId("result"); HtmlNode labelNode = doc.GetElementbyId("result");
if (labelNode != null) if (labelNode != null)
{ {
ReturnedData[0] = labelNode.InnerText; ReturnedData[0] = labelNode.InnerText;
} }
if (formtype == "CheckNext") if (formtype == "CheckNext")
{ {
labelNode = doc.GetElementbyId("next"); labelNode = doc.GetElementbyId("next");
if (labelNode != null) if (labelNode != null)
{ {
ReturnedData[1] = labelNode.InnerText; ReturnedData[1] = labelNode.InnerText;
} }
labelNode = doc.GetElementbyId("vari"); labelNode = doc.GetElementbyId("vari");
if (labelNode != null) if (labelNode != null)
{ {
ReturnedData[2] = labelNode.InnerText; ReturnedData[2] = labelNode.InnerText;
} }
} }
} }
Close(); Close();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
base.SuspendLayout(); base.SuspendLayout();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.Name = "ComForm"; base.Name = "ComForm";
base.Opacity = 0.0; base.Opacity = 0.0;
this.Text = "ComForm"; this.Text = "ComForm";
base.Load += new System.EventHandler(ComForm_Load); base.Load += new System.EventHandler(ComForm_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,319 +1,319 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using Microsoft.Win32; using Microsoft.Win32;
namespace ControlApp; namespace ControlApp;
public class ConfigSettingsForm : Form public class ConfigSettingsForm : Form
{ {
private IContainer components; private IContainer components;
private CheckBox checkBox1; private CheckBox checkBox1;
private TextBox textBox1; private TextBox textBox1;
private Label label1; private Label label1;
private Button button1; private Button button1;
private TextBox textBox2; private TextBox textBox2;
private Label label2; private Label label2;
private Label label3; private Label label3;
private TextBox textBox3; private TextBox textBox3;
private CheckBox checkBox2; private CheckBox checkBox2;
private Button button2; private Button button2;
private Button button3; private Button button3;
private Panel panel1; private Panel panel1;
private Button button4; private Button button4;
private Label label4; private Label label4;
private ComboBox delaycmb; private ComboBox delaycmb;
private Label label5; private Label label5;
public ConfigSettingsForm() public ConfigSettingsForm()
{ {
InitializeComponent(); InitializeComponent();
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection apps = configuration.AppSettings.Settings; KeyValueConfigurationCollection apps = configuration.AppSettings.Settings;
apps.Remove("LocalDrive"); apps.Remove("LocalDrive");
apps.Remove("AutoRun"); apps.Remove("AutoRun");
apps.Remove("UserName"); apps.Remove("UserName");
apps.Remove("Password"); apps.Remove("Password");
apps.Remove("Delay"); apps.Remove("Delay");
apps.Remove("RunAll"); apps.Remove("RunAll");
apps.Add("LocalDrive", textBox1.Text); apps.Add("LocalDrive", textBox1.Text);
if (checkBox1.Checked) if (checkBox1.Checked)
{ {
apps.Add("AutoRun", "True"); apps.Add("AutoRun", "True");
} }
else else
{ {
apps.Add("AutoRun", "False"); apps.Add("AutoRun", "False");
} }
apps.Add("UserName", textBox2.Text); apps.Add("UserName", textBox2.Text);
apps.Add("Password", textBox3.Text); apps.Add("Password", textBox3.Text);
if (checkBox2.Checked) if (checkBox2.Checked)
{ {
apps.Add("RunAll", "True"); apps.Add("RunAll", "True");
} }
else else
{ {
apps.Add("RunAll", "False"); apps.Add("RunAll", "False");
} }
if (delaycmb.SelectedIndex == 0) if (delaycmb.SelectedIndex == 0)
{ {
apps.Add("Delay", "30"); apps.Add("Delay", "30");
} }
else if (delaycmb.SelectedIndex == 1) else if (delaycmb.SelectedIndex == 1)
{ {
apps.Add("Delay", "60"); apps.Add("Delay", "60");
} }
else if (delaycmb.SelectedIndex == 2) else if (delaycmb.SelectedIndex == 2)
{ {
apps.Add("Delay", "120"); apps.Add("Delay", "120");
} }
configuration.Save(ConfigurationSaveMode.Full); configuration.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection(configuration.AppSettings.SectionInformation.Name); ConfigurationManager.RefreshSection(configuration.AppSettings.SectionInformation.Name);
Close(); Close();
} }
protected override void OnLoad(EventArgs e) protected override void OnLoad(EventArgs e)
{ {
base.OnLoad(e); base.OnLoad(e);
textBox1.Text = ConfigurationManager.AppSettings["LocalDrive"]; textBox1.Text = ConfigurationManager.AppSettings["LocalDrive"];
textBox2.Text = ConfigurationManager.AppSettings["UserName"]; textBox2.Text = ConfigurationManager.AppSettings["UserName"];
textBox3.Text = ConfigurationManager.AppSettings["Password"]; textBox3.Text = ConfigurationManager.AppSettings["Password"];
if (ConfigurationManager.AppSettings["AutoRun"] == "True") if (ConfigurationManager.AppSettings["AutoRun"] == "True")
{ {
checkBox1.Checked = true; checkBox1.Checked = true;
} }
else else
{ {
checkBox1.Checked = false; checkBox1.Checked = false;
} }
if (ConfigurationManager.AppSettings["RunAll"] == "True") if (ConfigurationManager.AppSettings["RunAll"] == "True")
{ {
checkBox2.Checked = true; checkBox2.Checked = true;
} }
else else
{ {
checkBox2.Checked = false; checkBox2.Checked = false;
} }
switch (ConfigurationManager.AppSettings["Delay"]) switch (ConfigurationManager.AppSettings["Delay"])
{ {
case "30": case "30":
delaycmb.SelectedIndex = 0; delaycmb.SelectedIndex = 0;
break; break;
case "60": case "60":
delaycmb.SelectedIndex = 1; delaycmb.SelectedIndex = 1;
break; break;
case "120": case "120":
delaycmb.SelectedIndex = 2; delaycmb.SelectedIndex = 2;
break; break;
} }
} }
private void ConfigSettingsForm_Load(object sender, EventArgs e) private void ConfigSettingsForm_Load(object sender, EventArgs e)
{ {
} }
private void button2_Click(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e)
{ {
string Password = ConfigurationManager.AppSettings["Password"]; string Password = ConfigurationManager.AppSettings["Password"];
if (Password != null || Password == "") if (Password != null || Password == "")
{ {
Password = textBox3.Text; Password = textBox3.Text;
} }
string user = ConfigurationManager.AppSettings["UserName"]; string user = ConfigurationManager.AppSettings["UserName"];
if (user != null || user == "") if (user != null || user == "")
{ {
user = textBox2.Text; user = textBox2.Text;
} }
Process.Start(new ProcessStartInfo Process.Start(new ProcessStartInfo
{ {
FileName = "https://www.thecontrolapp.co.uk/Pages/Sub/SubSettings.aspx?user=" + user + "&password=" + Password, FileName = "https://www.thecontrolapp.co.uk/Pages/Sub/SubSettings.aspx?user=" + user + "&password=" + Password,
UseShellExecute = true UseShellExecute = true
}); });
} }
private void button3_Click(object sender, EventArgs e) private void button3_Click(object sender, EventArgs e)
{ {
using RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", writable: true); using RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", writable: true);
key.SetValue("ControlApp", "\"" + Application.ExecutablePath + "\""); key.SetValue("ControlApp", "\"" + Application.ExecutablePath + "\"");
} }
private void button4_Click(object sender, EventArgs e) private void button4_Click(object sender, EventArgs e)
{ {
using RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", writable: true); using RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", writable: true);
key.DeleteValue("My Program", throwOnMissingValue: false); key.DeleteValue("My Program", throwOnMissingValue: false);
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.checkBox1 = new System.Windows.Forms.CheckBox(); this.checkBox1 = new System.Windows.Forms.CheckBox();
this.textBox1 = new System.Windows.Forms.TextBox(); this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox2 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
this.textBox3 = new System.Windows.Forms.TextBox(); this.textBox3 = new System.Windows.Forms.TextBox();
this.checkBox2 = new System.Windows.Forms.CheckBox(); this.checkBox2 = new System.Windows.Forms.CheckBox();
this.button2 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.button4 = new System.Windows.Forms.Button(); this.button4 = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label();
this.delaycmb = new System.Windows.Forms.ComboBox(); this.delaycmb = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label();
this.panel1.SuspendLayout(); this.panel1.SuspendLayout();
base.SuspendLayout(); base.SuspendLayout();
this.checkBox1.AutoSize = true; this.checkBox1.AutoSize = true;
this.checkBox1.Location = new System.Drawing.Point(12, 22); this.checkBox1.Location = new System.Drawing.Point(12, 22);
this.checkBox1.Name = "checkBox1"; this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(119, 19); this.checkBox1.Size = new System.Drawing.Size(119, 19);
this.checkBox1.TabIndex = 0; this.checkBox1.TabIndex = 0;
this.checkBox1.Text = "Auto run sent exe"; this.checkBox1.Text = "Auto run sent exe";
this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.UseVisualStyleBackColor = true;
this.textBox1.Location = new System.Drawing.Point(6, 47); this.textBox1.Location = new System.Drawing.Point(6, 47);
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(103, 23); this.textBox1.Size = new System.Drawing.Size(103, 23);
this.textBox1.TabIndex = 1; this.textBox1.TabIndex = 1;
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(115, 50); this.label1.Location = new System.Drawing.Point(115, 50);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(74, 15); this.label1.Size = new System.Drawing.Size(74, 15);
this.label1.TabIndex = 2; this.label1.TabIndex = 2;
this.label1.Text = "File Location"; this.label1.Text = "File Location";
this.button1.Location = new System.Drawing.Point(114, 351); this.button1.Location = new System.Drawing.Point(114, 351);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23); this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 3; this.button1.TabIndex = 3;
this.button1.Text = "Ok"; this.button1.Text = "Ok";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(button1_Click); this.button1.Click += new System.EventHandler(button1_Click);
this.textBox2.Location = new System.Drawing.Point(6, 76); this.textBox2.Location = new System.Drawing.Point(6, 76);
this.textBox2.Name = "textBox2"; this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 23); this.textBox2.Size = new System.Drawing.Size(100, 23);
this.textBox2.TabIndex = 4; this.textBox2.TabIndex = 4;
this.label2.AutoSize = true; this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(115, 79); this.label2.Location = new System.Drawing.Point(115, 79);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(65, 15); this.label2.Size = new System.Drawing.Size(65, 15);
this.label2.TabIndex = 5; this.label2.TabIndex = 5;
this.label2.Text = "User Name"; this.label2.Text = "User Name";
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(115, 108); this.label3.Location = new System.Drawing.Point(115, 108);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(57, 15); this.label3.Size = new System.Drawing.Size(57, 15);
this.label3.TabIndex = 7; this.label3.TabIndex = 7;
this.label3.Text = "Password"; this.label3.Text = "Password";
this.textBox3.Location = new System.Drawing.Point(6, 105); this.textBox3.Location = new System.Drawing.Point(6, 105);
this.textBox3.Name = "textBox3"; this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(100, 23); this.textBox3.Size = new System.Drawing.Size(100, 23);
this.textBox3.TabIndex = 6; this.textBox3.TabIndex = 6;
this.checkBox2.AutoSize = true; this.checkBox2.AutoSize = true;
this.checkBox2.Location = new System.Drawing.Point(12, 138); this.checkBox2.Location = new System.Drawing.Point(12, 138);
this.checkBox2.Name = "checkBox2"; this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(133, 19); this.checkBox2.Size = new System.Drawing.Size(133, 19);
this.checkBox2.TabIndex = 12; this.checkBox2.TabIndex = 12;
this.checkBox2.Text = "Run All Outstanding"; this.checkBox2.Text = "Run All Outstanding";
this.checkBox2.UseVisualStyleBackColor = true; this.checkBox2.UseVisualStyleBackColor = true;
this.button2.Location = new System.Drawing.Point(6, 321); this.button2.Location = new System.Drawing.Point(6, 321);
this.button2.Name = "button2"; this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(183, 23); this.button2.Size = new System.Drawing.Size(183, 23);
this.button2.TabIndex = 13; this.button2.TabIndex = 13;
this.button2.Text = "Change Server Settings"; this.button2.Text = "Change Server Settings";
this.button2.UseVisualStyleBackColor = true; this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(button2_Click); this.button2.Click += new System.EventHandler(button2_Click);
this.button3.Location = new System.Drawing.Point(14, 27); this.button3.Location = new System.Drawing.Point(14, 27);
this.button3.Name = "button3"; this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(54, 23); this.button3.Size = new System.Drawing.Size(54, 23);
this.button3.TabIndex = 17; this.button3.TabIndex = 17;
this.button3.Text = "Add"; this.button3.Text = "Add";
this.button3.UseVisualStyleBackColor = true; this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(button3_Click); this.button3.Click += new System.EventHandler(button3_Click);
this.panel1.Controls.Add(this.button4); this.panel1.Controls.Add(this.button4);
this.panel1.Controls.Add(this.label4); this.panel1.Controls.Add(this.label4);
this.panel1.Controls.Add(this.button3); this.panel1.Controls.Add(this.button3);
this.panel1.Location = new System.Drawing.Point(9, 248); this.panel1.Location = new System.Drawing.Point(9, 248);
this.panel1.Name = "panel1"; this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(175, 63); this.panel1.Size = new System.Drawing.Size(175, 63);
this.panel1.TabIndex = 18; this.panel1.TabIndex = 18;
this.button4.Location = new System.Drawing.Point(88, 27); this.button4.Location = new System.Drawing.Point(88, 27);
this.button4.Name = "button4"; this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(65, 23); this.button4.Size = new System.Drawing.Size(65, 23);
this.button4.TabIndex = 18; this.button4.TabIndex = 18;
this.button4.Text = "Remove"; this.button4.Text = "Remove";
this.button4.UseVisualStyleBackColor = true; this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(button4_Click); this.button4.Click += new System.EventHandler(button4_Click);
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(39, 0); this.label4.Location = new System.Drawing.Point(39, 0);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(97, 15); this.label4.Size = new System.Drawing.Size(97, 15);
this.label4.TabIndex = 0; this.label4.TabIndex = 0;
this.label4.Text = "Windows Startup"; this.label4.Text = "Windows Startup";
this.delaycmb.FormattingEnabled = true; this.delaycmb.FormattingEnabled = true;
this.delaycmb.Items.AddRange(new object[3] { "30s", "60s", "120s" }); this.delaycmb.Items.AddRange(new object[3] { "30s", "60s", "120s" });
this.delaycmb.Location = new System.Drawing.Point(12, 163); this.delaycmb.Location = new System.Drawing.Point(12, 163);
this.delaycmb.Name = "delaycmb"; this.delaycmb.Name = "delaycmb";
this.delaycmb.Size = new System.Drawing.Size(94, 23); this.delaycmb.Size = new System.Drawing.Size(94, 23);
this.delaycmb.TabIndex = 19; this.delaycmb.TabIndex = 19;
this.label5.AutoSize = true; this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(115, 166); this.label5.Location = new System.Drawing.Point(115, 166);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(36, 15); this.label5.Size = new System.Drawing.Size(36, 15);
this.label5.TabIndex = 20; this.label5.TabIndex = 20;
this.label5.Text = "Delay"; this.label5.Text = "Delay";
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(196, 382); base.ClientSize = new System.Drawing.Size(196, 382);
base.Controls.Add(this.label5); base.Controls.Add(this.label5);
base.Controls.Add(this.delaycmb); base.Controls.Add(this.delaycmb);
base.Controls.Add(this.panel1); base.Controls.Add(this.panel1);
base.Controls.Add(this.button2); base.Controls.Add(this.button2);
base.Controls.Add(this.checkBox2); base.Controls.Add(this.checkBox2);
base.Controls.Add(this.label3); base.Controls.Add(this.label3);
base.Controls.Add(this.textBox3); base.Controls.Add(this.textBox3);
base.Controls.Add(this.label2); base.Controls.Add(this.label2);
base.Controls.Add(this.textBox2); base.Controls.Add(this.textBox2);
base.Controls.Add(this.button1); base.Controls.Add(this.button1);
base.Controls.Add(this.label1); base.Controls.Add(this.label1);
base.Controls.Add(this.textBox1); base.Controls.Add(this.textBox1);
base.Controls.Add(this.checkBox1); base.Controls.Add(this.checkBox1);
base.Name = "ConfigSettingsForm"; base.Name = "ConfigSettingsForm";
this.Text = "ConfigSettingsForm"; this.Text = "ConfigSettingsForm";
base.Load += new System.EventHandler(ConfigSettingsForm_Load); base.Load += new System.EventHandler(ConfigSettingsForm_Load);
this.panel1.ResumeLayout(false); this.panel1.ResumeLayout(false);
this.panel1.PerformLayout(); this.panel1.PerformLayout();
base.ResumeLayout(false); base.ResumeLayout(false);
base.PerformLayout(); base.PerformLayout();
} }
} }

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

@ -1,122 +1,122 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Speech.Synthesis; using System.Speech.Synthesis;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class CustomMessage : Form public class CustomMessage : Form
{ {
private string msg; private string msg;
private string btn; private string btn;
private int time; private int time;
private bool ttspeech; private bool ttspeech;
private Timer tmr; private Timer tmr;
private IContainer components; private IContainer components;
private Label label1; private Label label1;
private Button button1; private Button button1;
public CustomMessage(string message, string button, int timeopen, bool tts) public CustomMessage(string message, string button, int timeopen, bool tts)
{ {
InitializeComponent(); InitializeComponent();
msg = message; msg = message;
btn = button; btn = button;
ttspeech = tts; ttspeech = tts;
time = timeopen; time = timeopen;
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
Close(); Close();
} }
private void CustomMessage_Load(object sender, EventArgs e) private void CustomMessage_Load(object sender, EventArgs e)
{ {
if (ttspeech) if (ttspeech)
{ {
base.Opacity = 0.0; base.Opacity = 0.0;
SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(); SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.SetOutputToDefaultAudioDevice(); speechSynthesizer.SetOutputToDefaultAudioDevice();
speechSynthesizer.Speak(msg); speechSynthesizer.Speak(msg);
speechSynthesizer.Dispose(); speechSynthesizer.Dispose();
try try
{ {
Close(); Close();
return; return;
} }
catch catch
{ {
return; return;
} }
} }
label1.Text = msg; label1.Text = msg;
if (btn != "") if (btn != "")
{ {
button1.Text = btn; button1.Text = btn;
} }
if (time != 0) if (time != 0)
{ {
tmr = new Timer(); tmr = new Timer();
tmr.Tick += delegate tmr.Tick += delegate
{ {
Close(); Close();
}; };
tmr.Interval = (int)TimeSpan.FromSeconds(time).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromSeconds(time).TotalMilliseconds;
tmr.Start(); tmr.Start();
} }
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
base.SuspendLayout(); base.SuspendLayout();
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Segoe UI", 25f, System.Drawing.FontStyle.Bold); this.label1.Font = new System.Drawing.Font("Segoe UI", 25f, System.Drawing.FontStyle.Bold);
this.label1.Location = new System.Drawing.Point(32, 79); this.label1.Location = new System.Drawing.Point(32, 79);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(117, 46); this.label1.Size = new System.Drawing.Size(117, 46);
this.label1.TabIndex = 0; this.label1.TabIndex = 0;
this.label1.Text = "label1"; this.label1.Text = "label1";
this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right; this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
this.button1.AutoSize = true; this.button1.AutoSize = true;
this.button1.Location = new System.Drawing.Point(251, 177); this.button1.Location = new System.Drawing.Point(251, 177);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 25); this.button1.Size = new System.Drawing.Size(75, 25);
this.button1.TabIndex = 1; this.button1.TabIndex = 1;
this.button1.Text = "Close"; this.button1.Text = "Close";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(button1_Click); this.button1.Click += new System.EventHandler(button1_Click);
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoSize = true; this.AutoSize = true;
base.ClientSize = new System.Drawing.Size(563, 214); base.ClientSize = new System.Drawing.Size(563, 214);
base.ControlBox = false; base.ControlBox = false;
base.Controls.Add(this.button1); base.Controls.Add(this.button1);
base.Controls.Add(this.label1); base.Controls.Add(this.label1);
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
base.Name = "CustomMessage"; base.Name = "CustomMessage";
this.Text = "CustomMessage"; this.Text = "CustomMessage";
base.TopMost = true; base.TopMost = true;
base.Load += new System.EventHandler(CustomMessage_Load); base.Load += new System.EventHandler(CustomMessage_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
base.PerformLayout(); base.PerformLayout();
} }
} }

View file

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

View file

@ -1,55 +1,55 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace ControlApp; namespace ControlApp;
internal class LockKeyboard internal class LockKeyboard
{ {
private delegate nint LowLevelKeyboardProc(int nCode, nint wParam, nint lParam); private delegate nint LowLevelKeyboardProc(int nCode, nint wParam, nint lParam);
private const int WH_KEYBOARD_LL = 13; private const int WH_KEYBOARD_LL = 13;
private static LowLevelKeyboardProc _proc = HookCallback; private static LowLevelKeyboardProc _proc = HookCallback;
private static nint _hookID = IntPtr.Zero; private static nint _hookID = IntPtr.Zero;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, nint hMod, uint dwThreadId); private static extern nint SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, nint hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnhookWindowsHookEx(nint hhk); private static extern bool UnhookWindowsHookEx(nint hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam); private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint GetModuleHandle(string lpModuleName); private static extern nint GetModuleHandle(string lpModuleName);
private static nint SetHook(LowLevelKeyboardProc proc) private static nint SetHook(LowLevelKeyboardProc proc)
{ {
using Process curProcess = Process.GetCurrentProcess(); using Process curProcess = Process.GetCurrentProcess();
using ProcessModule curModule = curProcess.MainModule; using ProcessModule curModule = curProcess.MainModule;
return SetWindowsHookEx(13, proc, GetModuleHandle(curModule.ModuleName), 0u); return SetWindowsHookEx(13, proc, GetModuleHandle(curModule.ModuleName), 0u);
} }
private static nint HookCallback(int nCode, nint wParam, nint lParam) private static nint HookCallback(int nCode, nint wParam, nint lParam)
{ {
if (nCode >= 0) if (nCode >= 0)
{ {
return 1; return 1;
} }
return CallNextHookEx(_hookID, nCode, wParam, lParam); return CallNextHookEx(_hookID, nCode, wParam, lParam);
} }
public void Lock() public void Lock()
{ {
_hookID = SetHook(_proc); _hookID = SetHook(_proc);
} }
public void Unlock() public void Unlock()
{ {
UnhookWindowsHookEx(_hookID); UnhookWindowsHookEx(_hookID);
} }
} }

View file

@ -1,55 +1,55 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace ControlApp; namespace ControlApp;
internal class LockMouse internal class LockMouse
{ {
private delegate nint LowLevelMouseProc(int nCode, nint wParam, nint lParam); private delegate nint LowLevelMouseProc(int nCode, nint wParam, nint lParam);
private const int WH_MOUSE_LL = 14; private const int WH_MOUSE_LL = 14;
private static LowLevelMouseProc _mouseProc = MouseHookCallback; private static LowLevelMouseProc _mouseProc = MouseHookCallback;
private static nint _mouseHookID = IntPtr.Zero; private static nint _mouseHookID = IntPtr.Zero;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint SetWindowsHookEx(int idHook, LowLevelMouseProc lpfn, nint hMod, uint dwThreadId); private static extern nint SetWindowsHookEx(int idHook, LowLevelMouseProc lpfn, nint hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnhookWindowsHookEx(nint hhk); private static extern bool UnhookWindowsHookEx(nint hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam); private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint GetModuleHandle(string lpModuleName); private static extern nint GetModuleHandle(string lpModuleName);
private static nint SetMouseHook(LowLevelMouseProc proc) private static nint SetMouseHook(LowLevelMouseProc proc)
{ {
using Process curProcess = Process.GetCurrentProcess(); using Process curProcess = Process.GetCurrentProcess();
using ProcessModule curModule = curProcess.MainModule; using ProcessModule curModule = curProcess.MainModule;
return SetWindowsHookEx(14, proc, GetModuleHandle(curModule.ModuleName), 0u); return SetWindowsHookEx(14, proc, GetModuleHandle(curModule.ModuleName), 0u);
} }
private static nint MouseHookCallback(int nCode, nint wParam, nint lParam) private static nint MouseHookCallback(int nCode, nint wParam, nint lParam)
{ {
if (nCode >= 0) if (nCode >= 0)
{ {
return 1; return 1;
} }
return CallNextHookEx(_mouseHookID, nCode, wParam, lParam); return CallNextHookEx(_mouseHookID, nCode, wParam, lParam);
} }
public void Lock() public void Lock()
{ {
_mouseHookID = SetMouseHook(_mouseProc); _mouseHookID = SetMouseHook(_mouseProc);
} }
public void Unlock() public void Unlock()
{ {
UnhookWindowsHookEx(_mouseHookID); UnhookWindowsHookEx(_mouseHookID);
} }
} }

View file

@ -1,41 +1,41 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class MyCustomApplicationContext : ApplicationContext public class MyCustomApplicationContext : ApplicationContext
{ {
private NotifyIcon trayIcon; private NotifyIcon trayIcon;
public MyCustomApplicationContext() public MyCustomApplicationContext()
{ {
trayIcon = new NotifyIcon(); trayIcon = new NotifyIcon();
trayIcon.Icon = new Icon("App.ico"); trayIcon.Icon = new Icon("App.ico");
trayIcon.ContextMenuStrip = new ContextMenuStrip(); trayIcon.ContextMenuStrip = new ContextMenuStrip();
trayIcon.ContextMenuStrip.Items.Add("Exit", null, Exit); trayIcon.ContextMenuStrip.Items.Add("Exit", null, Exit);
trayIcon.ContextMenuStrip.Items.Add("Open", null, Open); trayIcon.ContextMenuStrip.Items.Add("Open", null, Open);
trayIcon.ContextMenuStrip.Items.Add("Panic", null, Panic); trayIcon.ContextMenuStrip.Items.Add("Panic", null, Panic);
trayIcon.Visible = true; trayIcon.Visible = true;
} }
private void Exit(object sender, EventArgs e) private void Exit(object sender, EventArgs e)
{ {
trayIcon.Visible = false; trayIcon.Visible = false;
Application.Exit(); Application.Exit();
} }
private void Open(object sender, EventArgs e) private void Open(object sender, EventArgs e)
{ {
using ControlApp myform = new ControlApp(); using ControlApp myform = new ControlApp();
myform.ShowDialog(); myform.ShowDialog();
} }
private void Panic(object sender, EventArgs e) private void Panic(object sender, EventArgs e)
{ {
foreach (Form openForm in Application.OpenForms) foreach (Form openForm in Application.OpenForms)
{ {
openForm.Close(); openForm.Close();
} }
} }
} }

File diff suppressed because it is too large Load diff

View file

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

View file

@ -1,123 +1,129 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class Other : Form public class Other : Form
{ {
private IContainer components; private IContainer components;
private Button svncls; private Button svncls;
private Label label1; private Label label1;
private TextBox textBox1; private TextBox textBox1;
private TextBox textBox2; private TextBox textBox2;
private Label label2; private Label label2;
public Other() public Other()
{ {
InitializeComponent(); InitializeComponent();
} }
private void svncls_Click(object sender, EventArgs e) private void svncls_Click(object sender, EventArgs e)
{ {
Configuration myconfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Configuration myconfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection apps = myconfig.AppSettings.Settings; KeyValueConfigurationCollection apps = myconfig.AppSettings.Settings;
apps.Remove("CommonUsers"); apps.Remove("CommonUsers");
string userlist = ""; string userlist = "";
string[] lines = textBox1.Lines; string[] lines = textBox1.Lines;
foreach (string line in lines) foreach (string line in lines)
{ {
userlist = ((!(userlist == "")) ? (userlist + ",[" + line + "]") : (userlist + "[" + line + "]")); userlist = ((!(userlist == "")) ? (userlist + ",[" + line + "]") : (userlist + "[" + line + "]"));
} }
apps.Add("CommonUsers", userlist); apps.Add("CommonUsers", userlist);
apps.Remove("BlackList"); apps.Remove("BlackList");
string blist = ""; string blist = "";
lines = textBox2.Lines; lines = textBox2.Lines;
foreach (string line2 in lines) foreach (string line2 in lines)
{ {
blist = ((!(blist == "")) ? (blist + ",[" + line2 + "]") : (blist + "[" + line2 + "]")); blist = ((!(blist == "")) ? (blist + ",[" + line2 + "]") : (blist + "[" + line2 + "]"));
} }
apps.Add("BlackList", blist); apps.Add("BlackList", blist);
myconfig.Save(ConfigurationSaveMode.Full); myconfig.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection(myconfig.AppSettings.SectionInformation.Name); ConfigurationManager.RefreshSection(myconfig.AppSettings.SectionInformation.Name);
Close(); Close();
} }
private void Other_Load(object sender, EventArgs e) private void Other_Load(object sender, EventArgs e)
{ {
string userlist = ConfigurationManager.AppSettings["CommonUsers"]; string userlist = ConfigurationManager.AppSettings["CommonUsers"];
if (userlist != null) string blist = ConfigurationManager.AppSettings["BlackList"];
{ if (userlist != null)
string[] users = new Utils().seperate_string(userlist); {
textBox1.Lines = users; string[] users = new Utils().seperate_string(userlist);
} textBox1.Lines = users;
} }
if (blist != null)
protected override void Dispose(bool disposing) {
{ string[] blists = new Utils().seperate_string(blist);
if (disposing && components != null) textBox1.Lines = blists;
{ }
components.Dispose(); }
}
base.Dispose(disposing); protected override void Dispose(bool disposing)
} {
if (disposing && components != null)
private void InitializeComponent() {
{ components.Dispose();
this.svncls = new System.Windows.Forms.Button(); }
this.label1 = new System.Windows.Forms.Label(); base.Dispose(disposing);
this.textBox1 = new System.Windows.Forms.TextBox(); }
this.textBox2 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label(); private void InitializeComponent()
base.SuspendLayout(); {
this.svncls.Location = new System.Drawing.Point(277, 246); this.svncls = new System.Windows.Forms.Button();
this.svncls.Name = "svncls"; this.label1 = new System.Windows.Forms.Label();
this.svncls.Size = new System.Drawing.Size(84, 23); this.textBox1 = new System.Windows.Forms.TextBox();
this.svncls.TabIndex = 0; this.textBox2 = new System.Windows.Forms.TextBox();
this.svncls.Text = "Save & Close"; this.label2 = new System.Windows.Forms.Label();
this.svncls.UseVisualStyleBackColor = true; base.SuspendLayout();
this.svncls.Click += new System.EventHandler(svncls_Click); this.svncls.Location = new System.Drawing.Point(277, 246);
this.label1.AutoSize = true; this.svncls.Name = "svncls";
this.label1.Location = new System.Drawing.Point(22, 9); this.svncls.Size = new System.Drawing.Size(84, 23);
this.label1.Name = "label1"; this.svncls.TabIndex = 0;
this.label1.Size = new System.Drawing.Size(89, 15); this.svncls.Text = "Save & Close";
this.label1.TabIndex = 1; this.svncls.UseVisualStyleBackColor = true;
this.label1.Text = "Common Users"; this.svncls.Click += new System.EventHandler(svncls_Click);
this.textBox1.Location = new System.Drawing.Point(11, 27); this.label1.AutoSize = true;
this.textBox1.Multiline = true; this.label1.Location = new System.Drawing.Point(22, 9);
this.textBox1.Name = "textBox1"; this.label1.Name = "label1";
this.textBox1.Size = new System.Drawing.Size(123, 189); this.label1.Size = new System.Drawing.Size(89, 15);
this.textBox1.TabIndex = 2; this.label1.TabIndex = 1;
this.textBox2.Location = new System.Drawing.Point(154, 27); this.label1.Text = "Common Users";
this.textBox2.Multiline = true; this.textBox1.Location = new System.Drawing.Point(11, 27);
this.textBox2.Name = "textBox2"; this.textBox1.Multiline = true;
this.textBox2.Size = new System.Drawing.Size(123, 189); this.textBox1.Name = "textBox1";
this.textBox2.TabIndex = 4; this.textBox1.Size = new System.Drawing.Size(123, 189);
this.label2.AutoSize = true; this.textBox1.TabIndex = 2;
this.label2.Location = new System.Drawing.Point(165, 9); this.textBox2.Location = new System.Drawing.Point(154, 27);
this.label2.Name = "label2"; this.textBox2.Multiline = true;
this.label2.Size = new System.Drawing.Size(77, 15); this.textBox2.Name = "textBox2";
this.label2.TabIndex = 3; this.textBox2.Size = new System.Drawing.Size(123, 189);
this.label2.Text = "Web blacklist"; this.textBox2.TabIndex = 4;
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); this.label2.AutoSize = true;
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.label2.Location = new System.Drawing.Point(165, 9);
base.ClientSize = new System.Drawing.Size(373, 281); this.label2.Name = "label2";
base.Controls.Add(this.textBox2); this.label2.Size = new System.Drawing.Size(77, 15);
base.Controls.Add(this.label2); this.label2.TabIndex = 3;
base.Controls.Add(this.textBox1); this.label2.Text = "Web blacklist";
base.Controls.Add(this.label1); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.Controls.Add(this.svncls); base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.Name = "Other"; base.ClientSize = new System.Drawing.Size(373, 281);
this.Text = "Other"; base.Controls.Add(this.textBox2);
base.Load += new System.EventHandler(Other_Load); base.Controls.Add(this.label2);
base.ResumeLayout(false); base.Controls.Add(this.textBox1);
base.PerformLayout(); base.Controls.Add(this.label1);
} base.Controls.Add(this.svncls);
} base.Name = "Other";
this.Text = "Other";
base.Load += new System.EventHandler(Other_Load);
base.ResumeLayout(false);
base.PerformLayout();
}
}

View file

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

View file

@ -1,153 +1,153 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
using AxWMPLib; using AxWMPLib;
namespace ControlApp; namespace ControlApp;
public class PopUp : Form public class PopUp : Form
{ {
public string run_url; public string run_url;
private Timer tmr; private Timer tmr;
private const int GWL_STYLE = -20; private const int GWL_STYLE = -20;
private const uint WS_POPUP = 2147483648u; private const uint WS_POPUP = 2147483648u;
private const uint WS_CHILD = 536870912u; private const uint WS_CHILD = 536870912u;
private List<string> urls; private List<string> urls;
private IContainer components; private IContainer components;
private AxWindowsMediaPlayer axWindowsMediaPlayer1; private AxWindowsMediaPlayer axWindowsMediaPlayer1;
[DllImport("user32.dll", SetLastError = true)] [DllImport("user32.dll", SetLastError = true)]
private static extern uint GetWindowLong(nint hWnd, int nIndex); private static extern uint GetWindowLong(nint hWnd, int nIndex);
[DllImport("user32.dll")] [DllImport("user32.dll")]
private static extern int SetWindowLong(nint hWnd, int nIndex, uint dwNewLong); private static extern int SetWindowLong(nint hWnd, int nIndex, uint dwNewLong);
public PopUp(string url) public PopUp(string url)
{ {
urls = new List<string>(); urls = new List<string>();
InitializeComponent(); InitializeComponent();
if (ConfigurationManager.AppSettings["Clickthroughpop"] == "True") if (ConfigurationManager.AppSettings["Clickthroughpop"] == "True")
{ {
base.Opacity = 0.5; base.Opacity = 0.5;
uint initialStyle = GetWindowLong(base.Handle, -20); uint initialStyle = GetWindowLong(base.Handle, -20);
SetWindowLong(base.Handle, -20, initialStyle | 0x80000 | 0x20); SetWindowLong(base.Handle, -20, initialStyle | 0x80000 | 0x20);
} }
run_url = url; run_url = url;
switch (run_url.Substring(run_url.Length - 3, 3)) switch (run_url.Substring(run_url.Length - 3, 3))
{ {
case "com": case "com":
case ".uk": case ".uk":
case "org": case "org":
Process.Start(new ProcessStartInfo Process.Start(new ProcessStartInfo
{ {
FileName = url, FileName = url,
UseShellExecute = true UseShellExecute = true
}); });
Close(); Close();
break; break;
} }
tmr = new Timer(); tmr = new Timer();
tmr.Tick += popup_tick; tmr.Tick += popup_tick;
Random rand = new Random(); Random rand = new Random();
if (ConfigurationManager.AppSettings["PopSet"] != null && "Long" == ConfigurationManager.AppSettings["PopSet"].ToString()) if (ConfigurationManager.AppSettings["PopSet"] != null && "Long" == ConfigurationManager.AppSettings["PopSet"].ToString())
{ {
int mins = rand.Next(11); int mins = rand.Next(11);
tmr.Interval = (int)TimeSpan.FromMinutes(mins).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromMinutes(mins).TotalMilliseconds;
} }
else else
{ {
int mins2 = rand.Next(55) + 5; int mins2 = rand.Next(55) + 5;
tmr.Interval = (int)TimeSpan.FromSeconds(mins2).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromSeconds(mins2).TotalMilliseconds;
} }
} }
public void add_url(string url) public void add_url(string url)
{ {
urls.Add(url); urls.Add(url);
} }
public void popup_tick(object sender, EventArgs e) public void popup_tick(object sender, EventArgs e)
{ {
if (urls.Count > 0) if (urls.Count > 0)
{ {
run_url = urls[0]; run_url = urls[0];
urls.RemoveAt(0); urls.RemoveAt(0);
axWindowsMediaPlayer1.URL = run_url; axWindowsMediaPlayer1.URL = run_url;
axWindowsMediaPlayer1.Ctlenabled = false; axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.uiMode = "None"; axWindowsMediaPlayer1.uiMode = "None";
axWindowsMediaPlayer1.settings.autoStart = true; axWindowsMediaPlayer1.settings.autoStart = true;
axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true); axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true);
} }
else else
{ {
Close(); Close();
} }
} }
private void PopUp_Load(object sender, EventArgs e) private void PopUp_Load(object sender, EventArgs e)
{ {
Random random = new Random(); Random random = new Random();
int screenWidth = Screen.PrimaryScreen.Bounds.Width; int screenWidth = Screen.PrimaryScreen.Bounds.Width;
int screenHeight = Screen.PrimaryScreen.Bounds.Height; int screenHeight = Screen.PrimaryScreen.Bounds.Height;
int randomX = random.Next(0, screenWidth - base.Width); int randomX = random.Next(0, screenWidth - base.Width);
int randomY = random.Next(0, screenHeight - base.Height); int randomY = random.Next(0, screenHeight - base.Height);
base.StartPosition = FormStartPosition.Manual; base.StartPosition = FormStartPosition.Manual;
base.Location = new Point(randomX, randomY); base.Location = new Point(randomX, randomY);
axWindowsMediaPlayer1.URL = run_url; axWindowsMediaPlayer1.URL = run_url;
axWindowsMediaPlayer1.Ctlenabled = false; axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.uiMode = "None"; axWindowsMediaPlayer1.uiMode = "None";
axWindowsMediaPlayer1.settings.autoStart = true; axWindowsMediaPlayer1.settings.autoStart = true;
axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true); axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true);
tmr.Start(); tmr.Start();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PopUp)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PopUp));
this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer(); this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit(); ((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit();
base.SuspendLayout(); base.SuspendLayout();
this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill; this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.axWindowsMediaPlayer1.Enabled = true; this.axWindowsMediaPlayer1.Enabled = true;
this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0); this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1"; this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1";
this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState"); this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState");
this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450); this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450);
this.axWindowsMediaPlayer1.TabIndex = 0; this.axWindowsMediaPlayer1.TabIndex = 0;
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.ControlBox = false; base.ControlBox = false;
base.Controls.Add(this.axWindowsMediaPlayer1); base.Controls.Add(this.axWindowsMediaPlayer1);
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
base.Name = "PopUp"; base.Name = "PopUp";
base.ShowIcon = false; base.ShowIcon = false;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
this.Text = "PopUp"; this.Text = "PopUp";
base.TopMost = true; base.TopMost = true;
base.Load += new System.EventHandler(PopUp_Load); base.Load += new System.EventHandler(PopUp_Load);
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).EndInit(); ((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).EndInit();
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,16 +1,16 @@
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
internal static class Program internal static class Program
{ {
[STAThread] [STAThread]
private static void Main() private static void Main()
{ {
ApplicationConfiguration.Initialize(); ApplicationConfiguration.Initialize();
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(defaultValue: false); Application.SetCompatibleTextRenderingDefault(defaultValue: false);
Application.Run(new MyCustomApplicationContext()); Application.Run(new MyCustomApplicationContext());
} }
} }

View file

@ -1,144 +1,144 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using AxWMPLib; using AxWMPLib;
namespace ControlApp; namespace ControlApp;
public class SendOrDelete : Form public class SendOrDelete : Form
{ {
private string thefile; private string thefile;
private string senderstr; private string senderstr;
private IContainer components; private IContainer components;
private AxWindowsMediaPlayer axWindowsMediaPlayer1; private AxWindowsMediaPlayer axWindowsMediaPlayer1;
private Button Sendbtn; private Button Sendbtn;
private Button Deletebtn; private Button Deletebtn;
public SendOrDelete(string senderid) public SendOrDelete(string senderid)
{ {
InitializeComponent(); InitializeComponent();
string location = ConfigurationManager.AppSettings["LocalDrive"]; string location = ConfigurationManager.AppSettings["LocalDrive"];
string[] filetypes = new string[9] { ".jpg", ".jpeg", ".gif", ".mov", ".mpg", ".mpeg", ".avi", ".png", ".mp4" }; string[] filetypes = new string[9] { ".jpg", ".jpeg", ".gif", ".mov", ".mpg", ".mpeg", ".avi", ".png", ".mp4" };
List<string> acceptablefiles = new List<string>(); List<string> acceptablefiles = new List<string>();
if (location != null) if (location != null)
{ {
string[] files = Directory.GetFiles(location); string[] files = Directory.GetFiles(location);
foreach (string file in files) foreach (string file in files)
{ {
FileInfo info = new FileInfo(file); FileInfo info = new FileInfo(file);
if (filetypes.Contains(info.Extension) && info.Length < 1000000) if (filetypes.Contains(info.Extension) && info.Length < 1000000)
{ {
acceptablefiles.Add(file); acceptablefiles.Add(file);
} }
} }
} }
int max = acceptablefiles.Count(); int max = acceptablefiles.Count();
if (max > 0) if (max > 0)
{ {
Random rnd = new Random(); Random rnd = new Random();
thefile = acceptablefiles[rnd.Next(max)]; thefile = acceptablefiles[rnd.Next(max)];
senderstr = senderid; senderstr = senderid;
} }
} }
private void Deletebtn_Click(object sender, EventArgs e) private void Deletebtn_Click(object sender, EventArgs e)
{ {
if (thefile != null) if (thefile != null)
{ {
File.Delete(thefile); File.Delete(thefile);
} }
Utils utils = new Utils(); Utils utils = new Utils();
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString(); string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
string line1 = "M=" + usrnm + " chose to delete."; string line1 = "M=" + usrnm + " chose to delete.";
utils.sendcmd(senderstr, utils.Ecrypt(line1), all: false); utils.sendcmd(senderstr, utils.Ecrypt(line1), all: false);
Close(); Close();
} }
private void SendOrDelete_Load(object sender, EventArgs e) private void SendOrDelete_Load(object sender, EventArgs e)
{ {
axWindowsMediaPlayer1.URL = thefile; axWindowsMediaPlayer1.URL = thefile;
axWindowsMediaPlayer1.Ctlenabled = false; axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.uiMode = "None"; axWindowsMediaPlayer1.uiMode = "None";
axWindowsMediaPlayer1.settings.autoStart = true; axWindowsMediaPlayer1.settings.autoStart = true;
axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true); axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true);
} }
private void Sendbtn_Click(object sender, EventArgs e) private void Sendbtn_Click(object sender, EventArgs e)
{ {
Utils utils = new Utils(); Utils utils = new Utils();
if (utils.sendftpfile(thefile)) if (utils.sendftpfile(thefile))
{ {
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString(); string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
string line1 = "M=" + usrnm + " chose to send."; string line1 = "M=" + usrnm + " chose to send.";
string line2 = "U=FTP" + Path.GetFileName(thefile); string line2 = "U=FTP" + Path.GetFileName(thefile);
utils.sendcmd(senderstr, utils.Ecrypt(line1) + "|||" + utils.Ecrypt(line2), all: false); utils.sendcmd(senderstr, utils.Ecrypt(line1) + "|||" + utils.Ecrypt(line2), all: false);
} }
Close(); Close();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SendOrDelete)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SendOrDelete));
this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer(); this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
this.Sendbtn = new System.Windows.Forms.Button(); this.Sendbtn = new System.Windows.Forms.Button();
this.Deletebtn = new System.Windows.Forms.Button(); this.Deletebtn = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit(); ((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit();
base.SuspendLayout(); base.SuspendLayout();
this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Top; this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Top;
this.axWindowsMediaPlayer1.Enabled = true; this.axWindowsMediaPlayer1.Enabled = true;
this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0); this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1"; this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1";
this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState"); this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState");
this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450); this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450);
this.axWindowsMediaPlayer1.TabIndex = 1; this.axWindowsMediaPlayer1.TabIndex = 1;
this.Sendbtn.Location = new System.Drawing.Point(279, 468); this.Sendbtn.Location = new System.Drawing.Point(279, 468);
this.Sendbtn.Name = "Sendbtn"; this.Sendbtn.Name = "Sendbtn";
this.Sendbtn.Size = new System.Drawing.Size(75, 23); this.Sendbtn.Size = new System.Drawing.Size(75, 23);
this.Sendbtn.TabIndex = 2; this.Sendbtn.TabIndex = 2;
this.Sendbtn.Text = "Send"; this.Sendbtn.Text = "Send";
this.Sendbtn.UseVisualStyleBackColor = true; this.Sendbtn.UseVisualStyleBackColor = true;
this.Sendbtn.Click += new System.EventHandler(Sendbtn_Click); this.Sendbtn.Click += new System.EventHandler(Sendbtn_Click);
this.Deletebtn.Location = new System.Drawing.Point(384, 468); this.Deletebtn.Location = new System.Drawing.Point(384, 468);
this.Deletebtn.Name = "Deletebtn"; this.Deletebtn.Name = "Deletebtn";
this.Deletebtn.Size = new System.Drawing.Size(75, 23); this.Deletebtn.Size = new System.Drawing.Size(75, 23);
this.Deletebtn.TabIndex = 3; this.Deletebtn.TabIndex = 3;
this.Deletebtn.Text = "Delete"; this.Deletebtn.Text = "Delete";
this.Deletebtn.UseVisualStyleBackColor = true; this.Deletebtn.UseVisualStyleBackColor = true;
this.Deletebtn.Click += new System.EventHandler(Deletebtn_Click); this.Deletebtn.Click += new System.EventHandler(Deletebtn_Click);
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 503); base.ClientSize = new System.Drawing.Size(800, 503);
base.ControlBox = false; base.ControlBox = false;
base.Controls.Add(this.Deletebtn); base.Controls.Add(this.Deletebtn);
base.Controls.Add(this.Sendbtn); base.Controls.Add(this.Sendbtn);
base.Controls.Add(this.axWindowsMediaPlayer1); base.Controls.Add(this.axWindowsMediaPlayer1);
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
base.Name = "SendOrDelete"; base.Name = "SendOrDelete";
base.ShowIcon = false; base.ShowIcon = false;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
this.Text = "SendOrDelete"; this.Text = "SendOrDelete";
base.TopMost = true; base.TopMost = true;
base.Load += new System.EventHandler(SendOrDelete_Load); base.Load += new System.EventHandler(SendOrDelete_Load);
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).EndInit(); ((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).EndInit();
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,123 +1,123 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Drawing; using System.Drawing;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
using AxWMPLib; using AxWMPLib;
namespace ControlApp; namespace ControlApp;
public class Subliminal : Form public class Subliminal : Form
{ {
private Timer tmr; private Timer tmr;
private const int GWL_STYLE = -20; private const int GWL_STYLE = -20;
private const uint WS_POPUP = 2147483648u; private const uint WS_POPUP = 2147483648u;
private const uint WS_CHILD = 536870912u; private const uint WS_CHILD = 536870912u;
private IContainer components; private IContainer components;
private AxWindowsMediaPlayer axWindowsMediaPlayer1; private AxWindowsMediaPlayer axWindowsMediaPlayer1;
private Label label1; private Label label1;
[DllImport("user32.dll", SetLastError = true)] [DllImport("user32.dll", SetLastError = true)]
private static extern uint GetWindowLong(nint hWnd, int nIndex); private static extern uint GetWindowLong(nint hWnd, int nIndex);
[DllImport("user32.dll")] [DllImport("user32.dll")]
private static extern int SetWindowLong(nint hWnd, int nIndex, uint dwNewLong); private static extern int SetWindowLong(nint hWnd, int nIndex, uint dwNewLong);
public Subliminal(string what, bool message) public Subliminal(string what, bool message)
{ {
InitializeComponent(); InitializeComponent();
base.StartPosition = FormStartPosition.CenterScreen; base.StartPosition = FormStartPosition.CenterScreen;
Screen[] my = Screen.AllScreens; Screen[] my = Screen.AllScreens;
base.Size = my[0].Bounds.Size; base.Size = my[0].Bounds.Size;
base.FormBorderStyle = FormBorderStyle.None; base.FormBorderStyle = FormBorderStyle.None;
base.TopMost = true; base.TopMost = true;
base.Visible = true; base.Visible = true;
uint initialStyle = GetWindowLong(base.Handle, -20); uint initialStyle = GetWindowLong(base.Handle, -20);
SetWindowLong(base.Handle, -20, initialStyle | 0x80000 | 0x20); SetWindowLong(base.Handle, -20, initialStyle | 0x80000 | 0x20);
tmr = new Timer(); tmr = new Timer();
tmr.Tick += delegate tmr.Tick += delegate
{ {
Close(); Close();
}; };
Random rand = new Random(); Random rand = new Random();
if (ConfigurationManager.AppSettings["PopSet"] != null && "Long" == ConfigurationManager.AppSettings["PopSet"].ToString()) if (ConfigurationManager.AppSettings["PopSet"] != null && "Long" == ConfigurationManager.AppSettings["PopSet"].ToString())
{ {
int mins = rand.Next(11); int mins = rand.Next(11);
tmr.Interval = (int)TimeSpan.FromMinutes(mins).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromMinutes(mins).TotalMilliseconds;
} }
else else
{ {
int mins2 = rand.Next(55) + 5; int mins2 = rand.Next(55) + 5;
tmr.Interval = (int)TimeSpan.FromSeconds(mins2).TotalMilliseconds; tmr.Interval = (int)TimeSpan.FromSeconds(mins2).TotalMilliseconds;
} }
tmr.Start(); tmr.Start();
if (message) if (message)
{ {
label1.Text = what; label1.Text = what;
axWindowsMediaPlayer1.Visible = false; axWindowsMediaPlayer1.Visible = false;
return; return;
} }
label1.Visible = false; label1.Visible = false;
axWindowsMediaPlayer1.URL = what; axWindowsMediaPlayer1.URL = what;
axWindowsMediaPlayer1.Ctlenabled = false; axWindowsMediaPlayer1.Ctlenabled = false;
axWindowsMediaPlayer1.uiMode = "None"; axWindowsMediaPlayer1.uiMode = "None";
axWindowsMediaPlayer1.settings.autoStart = true; axWindowsMediaPlayer1.settings.autoStart = true;
axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true); axWindowsMediaPlayer1.settings.setMode("loop", varfMode: true);
} }
private void Subliminal_Load(object sender, EventArgs e) private void Subliminal_Load(object sender, EventArgs e)
{ {
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PopUp)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ControlApp.PopUp));
this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer(); this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer();
((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit(); ((System.ComponentModel.ISupportInitialize)this.axWindowsMediaPlayer1).BeginInit();
base.SuspendLayout(); base.SuspendLayout();
this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill; this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.axWindowsMediaPlayer1.Enabled = true; this.axWindowsMediaPlayer1.Enabled = true;
this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0); this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0);
this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1"; this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1";
this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState"); this.axWindowsMediaPlayer1.OcxState = (System.Windows.Forms.AxHost.State)resources.GetObject("axWindowsMediaPlayer1.OcxState");
this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450); this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(800, 450);
this.axWindowsMediaPlayer1.TabIndex = 0; this.axWindowsMediaPlayer1.TabIndex = 0;
this.label1.Dock = System.Windows.Forms.DockStyle.Fill; this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Font = new System.Drawing.Font("Showcard Gothic", 50f); this.label1.Font = new System.Drawing.Font("Showcard Gothic", 50f);
this.label1.Location = new System.Drawing.Point(0, 0); this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(800, 450); this.label1.Size = new System.Drawing.Size(800, 450);
this.label1.TabIndex = 0; this.label1.TabIndex = 0;
this.label1.Text = "label1"; this.label1.Text = "label1";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.Controls.Add(this.label1); base.Controls.Add(this.label1);
base.Controls.Add(this.axWindowsMediaPlayer1); base.Controls.Add(this.axWindowsMediaPlayer1);
base.Name = "Subliminal"; base.Name = "Subliminal";
base.ShowIcon = false; base.ShowIcon = false;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
base.Opacity = 0.05; base.Opacity = 0.05;
this.Text = "Subliminal"; this.Text = "Subliminal";
base.Load += new System.EventHandler(Subliminal_Load); base.Load += new System.EventHandler(Subliminal_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

File diff suppressed because it is too large Load diff

View file

@ -1,256 +1,256 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using Vlc.DotNet.Core; using Vlc.DotNet.Core;
using Vlc.DotNet.Forms; using Vlc.DotNet.Forms;
namespace ControlApp; namespace ControlApp;
public class WatchForMe : Form public class WatchForMe : Form
{ {
private string senderstr; private string senderstr;
private string pub_Url; private string pub_Url;
private Utils u; private Utils u;
private int timewatched; private int timewatched;
private int timecensored; private int timecensored;
private bool isdeactive; private bool isdeactive;
private int losefocus; private int losefocus;
private bool censored; private bool censored;
private IContainer components; private IContainer components;
private Timer WatchTime; private Timer WatchTime;
private Timer CensorTime; private Timer CensorTime;
private VlcControl vlcControl1; private VlcControl vlcControl1;
private static bool IsWebPage(string input) private static bool IsWebPage(string input)
{ {
if (Uri.TryCreate(input, UriKind.Absolute, out Uri uriResult)) if (Uri.TryCreate(input, UriKind.Absolute, out Uri uriResult))
{ {
if (!(uriResult.Scheme == Uri.UriSchemeHttp)) if (!(uriResult.Scheme == Uri.UriSchemeHttp))
{ {
return uriResult.Scheme == Uri.UriSchemeHttps; return uriResult.Scheme == Uri.UriSchemeHttps;
} }
return true; return true;
} }
return false; return false;
} }
public WatchForMe(string Url, string senderid) public WatchForMe(string Url, string senderid)
{ {
u = new Utils(); u = new Utils();
senderstr = senderid; senderstr = senderid;
InitializeComponent(); InitializeComponent();
switch (Path.GetExtension(Url)) switch (Path.GetExtension(Url))
{ {
case ".mp4": case ".mp4":
case ".webm": case ".webm":
case ".webp": case ".webp":
case ".gif": case ".gif":
{ {
pub_Url = Url; pub_Url = Url;
string[] mediaOptions = new string[1] { "input-repeat=50" }; string[] mediaOptions = new string[1] { "input-repeat=50" };
if (IsWebPage(Url)) if (IsWebPage(Url))
{ {
if (u.Get_File(Url) != "FAILED") if (u.Get_File(Url) != "FAILED")
{ {
FileInfo fileInfo = new FileInfo(Url); FileInfo fileInfo = new FileInfo(Url);
vlcControl1.SetMedia(fileInfo, mediaOptions); vlcControl1.SetMedia(fileInfo, mediaOptions);
} }
else else
{ {
vlcControl1.SetMedia(new Uri(Url), mediaOptions); vlcControl1.SetMedia(new Uri(Url), mediaOptions);
} }
} }
else else
{ {
FileInfo fileInfo2 = new FileInfo(Url); FileInfo fileInfo2 = new FileInfo(Url);
vlcControl1.SetMedia(fileInfo2, mediaOptions); vlcControl1.SetMedia(fileInfo2, mediaOptions);
} }
vlcControl1.Play(); vlcControl1.Play();
break; break;
} }
case ".png": case ".png":
case ".jpg": case ".jpg":
case ".jepg": case ".jepg":
{ {
string file = ""; string file = "";
file = u.Get_File(Url); file = u.Get_File(Url);
if (file == "FAILED") if (file == "FAILED")
{ {
Close(); Close();
break; break;
} }
Image i = Image.FromFile(file); Image i = Image.FromFile(file);
Screen my = Screen.AllScreens[0]; Screen my = Screen.AllScreens[0];
if (i.Width > my.Bounds.Width) if (i.Width > my.Bounds.Width)
{ {
base.Width = my.Bounds.Width; base.Width = my.Bounds.Width;
} }
else else
{ {
base.Width = i.Width; base.Width = i.Width;
} }
if (i.Height > my.Bounds.Height) if (i.Height > my.Bounds.Height)
{ {
base.Height = my.Bounds.Height; base.Height = my.Bounds.Height;
} }
else else
{ {
base.Height = i.Height; base.Height = i.Height;
} }
vlcControl1.Visible = false; vlcControl1.Visible = false;
PictureBox pictureBox = new PictureBox PictureBox pictureBox = new PictureBox
{ {
Dock = DockStyle.Fill, Dock = DockStyle.Fill,
Image = i Image = i
}; };
base.Controls.Add(pictureBox); base.Controls.Add(pictureBox);
break; break;
} }
default: default:
{ {
vlcControl1.Visible = false; vlcControl1.Visible = false;
WebBrowser wb = new WebBrowser(); WebBrowser wb = new WebBrowser();
wb.Navigate(Url); wb.Navigate(Url);
wb.Dock = DockStyle.Fill; wb.Dock = DockStyle.Fill;
wb.ScriptErrorsSuppressed = true; wb.ScriptErrorsSuppressed = true;
base.Controls.Add(wb); base.Controls.Add(wb);
break; break;
} }
} }
AutoSize = true; AutoSize = true;
timewatched = 0; timewatched = 0;
timecensored = 0; timecensored = 0;
losefocus = 0; losefocus = 0;
WatchTime.Interval = 1000; WatchTime.Interval = 1000;
WatchTime.Tick += Timer1_Tick; WatchTime.Tick += Timer1_Tick;
WatchTime.Start(); WatchTime.Start();
CensorTime.Interval = 1000; CensorTime.Interval = 1000;
CensorTime.Tick += Censored_Tick; CensorTime.Tick += Censored_Tick;
isdeactive = false; isdeactive = false;
base.Deactivate += Form1_Deactivate; base.Deactivate += Form1_Deactivate;
base.Activated += Form1_Reactivate; base.Activated += Form1_Reactivate;
base.FormClosing += Form1_FormClosing; base.FormClosing += Form1_FormClosing;
} }
private void WatchForMe_Load(object sender, EventArgs e) private void WatchForMe_Load(object sender, EventArgs e)
{ {
censored = false; censored = false;
} }
private void Censored_Tick(object sender, EventArgs e) private void Censored_Tick(object sender, EventArgs e)
{ {
timecensored++; timecensored++;
} }
private void Timer1_Tick(object sender, EventArgs e) private void Timer1_Tick(object sender, EventArgs e)
{ {
if (!isdeactive) if (!isdeactive)
{ {
timewatched++; timewatched++;
Text = "Watch for me Time=" + timewatched + ": Censored for=" + timecensored + ": Lost focus=" + losefocus; Text = "Watch for me Time=" + timewatched + ": Censored for=" + timecensored + ": Lost focus=" + losefocus;
} }
} }
private void Form1_Deactivate(object sender, EventArgs e) private void Form1_Deactivate(object sender, EventArgs e)
{ {
losefocus++; losefocus++;
isdeactive = true; isdeactive = true;
} }
private void Form1_Reactivate(object sender, EventArgs e) private void Form1_Reactivate(object sender, EventArgs e)
{ {
if (isdeactive) if (isdeactive)
{ {
isdeactive = false; isdeactive = false;
} }
} }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ {
if (e.CloseReason == CloseReason.UserClosing) if (e.CloseReason == CloseReason.UserClosing)
{ {
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString(); string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
Utils utils = new Utils(); Utils utils = new Utils();
utils.sendcmd(senderstr, utils.Ecrypt("M=User : " + usrnm + " Watched for : " + timewatched + " seconds. Censored for : " + timecensored + ". Form lost focus :" + losefocus + " times"), all: false); utils.sendcmd(senderstr, utils.Ecrypt("M=User : " + usrnm + " Watched for : " + timewatched + " seconds. Censored for : " + timecensored + ". Form lost focus :" + losefocus + " times"), all: false);
} }
} }
private void WFM_KeyDown(object sender, KeyEventArgs e) private void WFM_KeyDown(object sender, KeyEventArgs e)
{ {
if (e.KeyCode == Keys.Space) if (e.KeyCode == Keys.Space)
{ {
if (censored) if (censored)
{ {
base.Opacity = 1.0; base.Opacity = 1.0;
censored = false; censored = false;
CensorTime.Stop(); CensorTime.Stop();
} }
else else
{ {
base.Opacity = 0.0; base.Opacity = 0.0;
censored = true; censored = true;
CensorTime.Start(); CensorTime.Start();
} }
} }
} }
private void Replay(object sender, VlcMediaPlayerEndReachedEventArgs e) private void Replay(object sender, VlcMediaPlayerEndReachedEventArgs e)
{ {
vlcControl1.Position = 0f; vlcControl1.Position = 0f;
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
this.WatchTime = new System.Windows.Forms.Timer(this.components); this.WatchTime = new System.Windows.Forms.Timer(this.components);
this.CensorTime = new System.Windows.Forms.Timer(this.components); this.CensorTime = new System.Windows.Forms.Timer(this.components);
this.vlcControl1 = new Vlc.DotNet.Forms.VlcControl(); this.vlcControl1 = new Vlc.DotNet.Forms.VlcControl();
((System.ComponentModel.ISupportInitialize)this.vlcControl1).BeginInit(); ((System.ComponentModel.ISupportInitialize)this.vlcControl1).BeginInit();
base.SuspendLayout(); base.SuspendLayout();
this.vlcControl1.BackColor = System.Drawing.Color.Black; this.vlcControl1.BackColor = System.Drawing.Color.Black;
this.vlcControl1.Dock = System.Windows.Forms.DockStyle.Fill; this.vlcControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.vlcControl1.Location = new System.Drawing.Point(0, 0); this.vlcControl1.Location = new System.Drawing.Point(0, 0);
this.vlcControl1.Name = "vlcControl1"; this.vlcControl1.Name = "vlcControl1";
this.vlcControl1.Size = new System.Drawing.Size(1044, 647); this.vlcControl1.Size = new System.Drawing.Size(1044, 647);
this.vlcControl1.Spu = -1; this.vlcControl1.Spu = -1;
this.vlcControl1.TabIndex = 0; this.vlcControl1.TabIndex = 0;
this.vlcControl1.Visible = true; this.vlcControl1.Visible = true;
this.vlcControl1.Text = "vlcControl1"; this.vlcControl1.Text = "vlcControl1";
this.vlcControl1.VlcLibDirectory = new System.IO.DirectoryInfo("C:\\Program Files\\VideoLAN\\VLC"); this.vlcControl1.VlcLibDirectory = new System.IO.DirectoryInfo("C:\\Program Files\\VideoLAN\\VLC");
this.vlcControl1.EndReached += new System.EventHandler<Vlc.DotNet.Core.VlcMediaPlayerEndReachedEventArgs>(Replay); this.vlcControl1.EndReached += new System.EventHandler<Vlc.DotNet.Core.VlcMediaPlayerEndReachedEventArgs>(Replay);
this.vlcControl1.KeyDown += new System.Windows.Forms.KeyEventHandler(WFM_KeyDown); this.vlcControl1.KeyDown += new System.Windows.Forms.KeyEventHandler(WFM_KeyDown);
((System.ComponentModel.ISupportInitialize)this.vlcControl1).EndInit(); ((System.ComponentModel.ISupportInitialize)this.vlcControl1).EndInit();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(1044, 647); base.ClientSize = new System.Drawing.Size(1044, 647);
base.Controls.Add(this.vlcControl1); base.Controls.Add(this.vlcControl1);
base.Name = "WatchForMe"; base.Name = "WatchForMe";
this.Text = "WatchForMe"; this.Text = "WatchForMe";
base.Load += new System.EventHandler(WatchForMe_Load); base.Load += new System.EventHandler(WatchForMe_Load);
base.KeyDown += new System.Windows.Forms.KeyEventHandler(WFM_KeyDown); base.KeyDown += new System.Windows.Forms.KeyEventHandler(WFM_KeyDown);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,43 +1,43 @@
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class Webform : Form public class Webform : Form
{ {
private IContainer components; private IContainer components;
public Webform(string Url) public Webform(string Url)
{ {
WebBrowser wb = new WebBrowser(); WebBrowser wb = new WebBrowser();
wb.Navigate(Url); wb.Navigate(Url);
wb.Dock = DockStyle.Fill; wb.Dock = DockStyle.Fill;
base.Controls.Add(wb); base.Controls.Add(wb);
InitializeComponent(); InitializeComponent();
} }
protected override void OnFormClosing(FormClosingEventArgs e) protected override void OnFormClosing(FormClosingEventArgs e)
{ {
base.OnFormClosing(e); base.OnFormClosing(e);
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
base.SuspendLayout(); base.SuspendLayout();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.Name = "Webform"; base.Name = "Webform";
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,212 +1,212 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Configuration; using System.Configuration;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class WriteForMe : Form public class WriteForMe : Form
{ {
private int seconds; private int seconds;
private int mistakes; private int mistakes;
private int count; private int count;
private string senderstr; private string senderstr;
private IContainer components; private IContainer components;
private Button button1; private Button button1;
private Label label1; private Label label1;
private Label writelbl; private Label writelbl;
private TextBox wfmtextb; private TextBox wfmtextb;
private Label timelbl; private Label timelbl;
private Label label3; private Label label3;
private Label label4; private Label label4;
private Label mistakelbl; private Label mistakelbl;
private Label label6; private Label label6;
private Label countlbl; private Label countlbl;
private Timer timer1; private Timer timer1;
public WriteForMe(string message, string times, string senderid) public WriteForMe(string message, string times, string senderid)
{ {
InitializeComponent(); InitializeComponent();
writelbl.Text = message; writelbl.Text = message;
count = Convert.ToInt16(times); count = Convert.ToInt16(times);
countlbl.Text = times; countlbl.Text = times;
senderstr = senderid; senderstr = senderid;
} }
private void WriteForMe_Load(object sender, EventArgs e) private void WriteForMe_Load(object sender, EventArgs e)
{ {
seconds = 0; seconds = 0;
mistakes = 0; mistakes = 0;
mistakelbl.Text = mistakes.ToString(); mistakelbl.Text = mistakes.ToString();
timelbl.Text = seconds.ToString(); timelbl.Text = seconds.ToString();
timer1.Interval = 1000; timer1.Interval = 1000;
timer1.Tick += MyTimer_Tick; timer1.Tick += MyTimer_Tick;
timer1.Start(); timer1.Start();
} }
private void MyTimer_Tick(object sender, EventArgs e) private void MyTimer_Tick(object sender, EventArgs e)
{ {
seconds++; seconds++;
} }
private void input_KeyDown(object sender, KeyEventArgs e) private void input_KeyDown(object sender, KeyEventArgs e)
{ {
if (e.KeyData == Keys.Return) if (e.KeyData == Keys.Return)
{ {
if (wfmtextb.Text == writelbl.Text) if (wfmtextb.Text == writelbl.Text)
{ {
count--; count--;
countlbl.Text = count.ToString(); countlbl.Text = count.ToString();
timelbl.Text = seconds.ToString(); timelbl.Text = seconds.ToString();
} }
else else
{ {
mistakes++; mistakes++;
mistakelbl.Text = mistakes.ToString(); mistakelbl.Text = mistakes.ToString();
timelbl.Text = seconds.ToString(); timelbl.Text = seconds.ToString();
} }
wfmtextb.Text = ""; wfmtextb.Text = "";
if (count == 0) if (count == 0)
{ {
Utils ut = new Utils(); Utils ut = new Utils();
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString(); string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
ut.sendcmd(senderstr, ut.Ecrypt("M=" + usrnm + " completed your command in " + timelbl.Text + " seconds with " + mistakelbl.Text + " mistakes.&&&Please Reward"), all: false); ut.sendcmd(senderstr, ut.Ecrypt("M=" + usrnm + " completed your command in " + timelbl.Text + " seconds with " + mistakelbl.Text + " mistakes.&&&Please Reward"), all: false);
Close(); Close();
} }
} }
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
{ {
Utils ut = new Utils(); Utils ut = new Utils();
string usrnm = ConfigurationManager.AppSettings["UserName"].ToString(); string usrnm = ConfigurationManager.AppSettings["UserName"].ToString();
ut.sendcmd(senderstr, ut.Ecrypt("M=" + usrnm + " failed your command after " + timelbl.Text + " seconds with " + mistakelbl.Text + " mistakes.&&&Please Punish"), all: false); ut.sendcmd(senderstr, ut.Ecrypt("M=" + usrnm + " failed your command after " + timelbl.Text + " seconds with " + mistakelbl.Text + " mistakes.&&&Please Punish"), all: false);
Close(); Close();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
this.button1 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.writelbl = new System.Windows.Forms.Label(); this.writelbl = new System.Windows.Forms.Label();
this.wfmtextb = new System.Windows.Forms.TextBox(); this.wfmtextb = new System.Windows.Forms.TextBox();
this.timelbl = new System.Windows.Forms.Label(); this.timelbl = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label();
this.mistakelbl = new System.Windows.Forms.Label(); this.mistakelbl = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label();
this.countlbl = new System.Windows.Forms.Label(); this.countlbl = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components); this.timer1 = new System.Windows.Forms.Timer(this.components);
base.SuspendLayout(); base.SuspendLayout();
this.button1.Location = new System.Drawing.Point(398, 136); this.button1.Location = new System.Drawing.Point(398, 136);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23); this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0; this.button1.TabIndex = 0;
this.button1.Text = "Fail"; this.button1.Text = "Fail";
this.button1.UseVisualStyleBackColor = true; this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(button1_Click); this.button1.Click += new System.EventHandler(button1_Click);
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Segoe UI", 14f, System.Drawing.FontStyle.Bold); this.label1.Font = new System.Drawing.Font("Segoe UI", 14f, System.Drawing.FontStyle.Bold);
this.label1.Location = new System.Drawing.Point(21, 19); this.label1.Location = new System.Drawing.Point(21, 19);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(125, 25); this.label1.Size = new System.Drawing.Size(125, 25);
this.label1.TabIndex = 1; this.label1.TabIndex = 1;
this.label1.Text = "Write for me"; this.label1.Text = "Write for me";
this.writelbl.AutoSize = true; this.writelbl.AutoSize = true;
this.writelbl.Location = new System.Drawing.Point(21, 59); this.writelbl.Location = new System.Drawing.Point(21, 59);
this.writelbl.Name = "writelbl"; this.writelbl.Name = "writelbl";
this.writelbl.Size = new System.Drawing.Size(38, 15); this.writelbl.Size = new System.Drawing.Size(38, 15);
this.writelbl.TabIndex = 2; this.writelbl.TabIndex = 2;
this.writelbl.Text = "label2"; this.writelbl.Text = "label2";
this.wfmtextb.Location = new System.Drawing.Point(21, 95); this.wfmtextb.Location = new System.Drawing.Point(21, 95);
this.wfmtextb.Name = "wfmtextb"; this.wfmtextb.Name = "wfmtextb";
this.wfmtextb.Size = new System.Drawing.Size(452, 23); this.wfmtextb.Size = new System.Drawing.Size(452, 23);
this.wfmtextb.TabIndex = 3; this.wfmtextb.TabIndex = 3;
this.wfmtextb.KeyDown += new System.Windows.Forms.KeyEventHandler(input_KeyDown); this.wfmtextb.KeyDown += new System.Windows.Forms.KeyEventHandler(input_KeyDown);
this.timelbl.AutoSize = true; this.timelbl.AutoSize = true;
this.timelbl.Location = new System.Drawing.Point(420, 19); this.timelbl.Location = new System.Drawing.Point(420, 19);
this.timelbl.Name = "timelbl"; this.timelbl.Name = "timelbl";
this.timelbl.Size = new System.Drawing.Size(38, 15); this.timelbl.Size = new System.Drawing.Size(38, 15);
this.timelbl.TabIndex = 4; this.timelbl.TabIndex = 4;
this.timelbl.Text = "label2"; this.timelbl.Text = "label2";
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(366, 19); this.label3.Location = new System.Drawing.Point(366, 19);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(33, 15); this.label3.Size = new System.Drawing.Size(33, 15);
this.label3.TabIndex = 5; this.label3.TabIndex = 5;
this.label3.Text = "Time"; this.label3.Text = "Time";
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(366, 34); this.label4.Location = new System.Drawing.Point(366, 34);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(53, 15); this.label4.Size = new System.Drawing.Size(53, 15);
this.label4.TabIndex = 6; this.label4.TabIndex = 6;
this.label4.Text = "Mistakes"; this.label4.Text = "Mistakes";
this.mistakelbl.AutoSize = true; this.mistakelbl.AutoSize = true;
this.mistakelbl.Location = new System.Drawing.Point(420, 34); this.mistakelbl.Location = new System.Drawing.Point(420, 34);
this.mistakelbl.Name = "mistakelbl"; this.mistakelbl.Name = "mistakelbl";
this.mistakelbl.Size = new System.Drawing.Size(38, 15); this.mistakelbl.Size = new System.Drawing.Size(38, 15);
this.mistakelbl.TabIndex = 7; this.mistakelbl.TabIndex = 7;
this.mistakelbl.Text = "label5"; this.mistakelbl.Text = "label5";
this.label6.AutoSize = true; this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(366, 49); this.label6.Location = new System.Drawing.Point(366, 49);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(27, 15); this.label6.Size = new System.Drawing.Size(27, 15);
this.label6.TabIndex = 8; this.label6.TabIndex = 8;
this.label6.Text = "Left"; this.label6.Text = "Left";
this.countlbl.AutoSize = true; this.countlbl.AutoSize = true;
this.countlbl.Location = new System.Drawing.Point(420, 49); this.countlbl.Location = new System.Drawing.Point(420, 49);
this.countlbl.Name = "countlbl"; this.countlbl.Name = "countlbl";
this.countlbl.Size = new System.Drawing.Size(38, 15); this.countlbl.Size = new System.Drawing.Size(38, 15);
this.countlbl.TabIndex = 9; this.countlbl.TabIndex = 9;
this.countlbl.Text = "label7"; this.countlbl.Text = "label7";
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(492, 173); base.ClientSize = new System.Drawing.Size(492, 173);
base.ControlBox = false; base.ControlBox = false;
base.Controls.Add(this.countlbl); base.Controls.Add(this.countlbl);
base.Controls.Add(this.label6); base.Controls.Add(this.label6);
base.Controls.Add(this.mistakelbl); base.Controls.Add(this.mistakelbl);
base.Controls.Add(this.label4); base.Controls.Add(this.label4);
base.Controls.Add(this.label3); base.Controls.Add(this.label3);
base.Controls.Add(this.timelbl); base.Controls.Add(this.timelbl);
base.Controls.Add(this.wfmtextb); base.Controls.Add(this.wfmtextb);
base.Controls.Add(this.writelbl); base.Controls.Add(this.writelbl);
base.Controls.Add(this.label1); base.Controls.Add(this.label1);
base.Controls.Add(this.button1); base.Controls.Add(this.button1);
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
base.Name = "WriteForMe"; base.Name = "WriteForMe";
base.ShowIcon = false; base.ShowIcon = false;
base.ShowInTaskbar = false; base.ShowInTaskbar = false;
this.Text = "WriteForMe"; this.Text = "WriteForMe";
base.TopMost = true; base.TopMost = true;
base.Load += new System.EventHandler(WriteForMe_Load); base.Load += new System.EventHandler(WriteForMe_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
base.PerformLayout(); base.PerformLayout();
} }
} }

View file

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

View file

@ -1,49 +1,49 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace ControlApp; namespace ControlApp;
public class sendcmd : Form public class sendcmd : Form
{ {
private IContainer components; private IContainer components;
public sendcmd(string Url) public sendcmd(string Url)
{ {
WebBrowser wb = new WebBrowser(); WebBrowser wb = new WebBrowser();
wb.Navigate(Url); wb.Navigate(Url);
wb.Dock = DockStyle.Fill; wb.Dock = DockStyle.Fill;
base.Controls.Add(wb); base.Controls.Add(wb);
InitializeComponent(); InitializeComponent();
} }
private async void sendcmd_Load(object sender, EventArgs e) private async void sendcmd_Load(object sender, EventArgs e)
{ {
SendToBack(); SendToBack();
await Task.Delay(3000); await Task.Delay(3000);
Close(); Close();
} }
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && components != null) if (disposing && components != null)
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
private void InitializeComponent() private void InitializeComponent()
{ {
base.SuspendLayout(); base.SuspendLayout();
base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f); base.AutoScaleDimensions = new System.Drawing.SizeF(7f, 15f);
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
base.ClientSize = new System.Drawing.Size(800, 450); base.ClientSize = new System.Drawing.Size(800, 450);
base.Name = "sendcmd"; base.Name = "sendcmd";
this.Text = "sendcmd"; this.Text = "sendcmd";
base.Load += new System.EventHandler(sendcmd_Load); base.Load += new System.EventHandler(sendcmd_Load);
base.ResumeLayout(false); base.ResumeLayout(false);
} }
} }

View file

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

View file

@ -1,56 +1,58 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<appSettings file=""> <appSettings file="">
<clear /> <clear />
<add key="Logging" value="On" /> <add key="Logging" value="On" />
<add key="LogLvl" value="1" /> <add key="LogLvl" value="1" />
<add key="Showblocked" value="False" /> <add key="CommonUsers" value="" />
<add key="Clickthroughpop" value="True" /> <add key="BlackList" value="" />
<add key="OutstandRemind" value="True" /> <add key="Showblocked" value="False" />
<add key="Popstyle" value="Serial" /> <add key="Clickthroughpop" value="True" />
<add key="PaperStyle" value="Fit" /> <add key="OutstandRemind" value="True" />
<add key="SendDelete" value="True" /> <add key="Popstyle" value="Serial" />
<add key="twitter" value="False" /> <add key="PaperStyle" value="Fit" />
<add key="Watch4me" value="False" /> <add key="SendDelete" value="True" />
<add key="Screenshots" value="True" /> <add key="twitter" value="False" />
<add key="Audios" value="False" /> <add key="Watch4me" value="False" />
<add key="Writeformes" value="True" /> <add key="Screenshots" value="True" />
<add key="Downloads" value="False" /> <add key="Audios" value="False" />
<add key="Wallpapers" value="False" /> <add key="Writeformes" value="True" />
<add key="Runables" value="False" /> <add key="Downloads" value="False" />
<add key="OpenWeb" value="False" /> <add key="Wallpapers" value="False" />
<add key="PopUps" value="False" /> <add key="Runables" value="False" />
<add key="Messages" value="False" /> <add key="OpenWeb" value="False" />
<add key="Subliminals" value="False" /> <add key="PopUps" value="False" />
<add key="Webcam" value="True" /> <add key="Messages" value="False" />
<add key="TTS" value="False" /> <add key="Subliminals" value="False" />
<add key="DisM" value="True" /> <add key="Webcam" value="True" />
<add key="PopSet" value="Short" /> <add key="TTS" value="False" />
<add key="DClickthroughpop" value="False" /> <add key="DisM" value="True" />
<add key="DPopstyle" value="Serial" /> <add key="PopSet" value="Short" />
<add key="DPaperStyle" value="Fit" /> <add key="DClickthroughpop" value="False" />
<add key="DSendDelete" value="False" /> <add key="DPopstyle" value="Serial" />
<add key="Dtwitter" value="False" /> <add key="DPaperStyle" value="Fit" />
<add key="DWatch4me" value="False" /> <add key="DSendDelete" value="False" />
<add key="DScreenshots" value="False" /> <add key="Dtwitter" value="False" />
<add key="DAudios" value="False" /> <add key="DWatch4me" value="False" />
<add key="DWriteformes" value="False" /> <add key="DScreenshots" value="False" />
<add key="DDownloads" value="False" /> <add key="DAudios" value="False" />
<add key="DWallpapers" value="False" /> <add key="DWriteformes" value="False" />
<add key="DRunables" value="False" /> <add key="DDownloads" value="False" />
<add key="DOpenWeb" value="False" /> <add key="DWallpapers" value="False" />
<add key="DPopUps" value="False" /> <add key="DRunables" value="False" />
<add key="DMessages" value="False" /> <add key="DOpenWeb" value="False" />
<add key="DSubliminals" value="False" /> <add key="DPopUps" value="False" />
<add key="DWebcam" value="False" /> <add key="DMessages" value="False" />
<add key="DTTS" value="False" /> <add key="DSubliminals" value="False" />
<add key="DDisM" value="False" /> <add key="DWebcam" value="False" />
<add key="DPopSet" value="Short" /> <add key="DTTS" value="False" />
<add key="LocalDrive" value="Downloads" /> <add key="DDisM" value="False" />
<add key="AutoRun" value="False" /> <add key="DPopSet" value="Short" />
<add key="UserName" value="" /> <add key="LocalDrive" value="Downloads" />
<add key="Password" value="" /> <add key="AutoRun" value="False" />
<add key="RunAll" value="False" /> <add key="UserName" value="" />
<add key="Delay" value="30" /> <add key="Password" value="" />
</appSettings> <add key="RunAll" value="False" />
<add key="Delay" value="30" />
</appSettings>
</configuration> </configuration>