The Start of a GUI/Control Panel for NeoStats. Of course, still heavily in progress, and written in VS2008, so needs to be downgraded eventually.

This commit is contained in:
Fish 2008-04-23 09:56:59 +00:00
parent e2e4f4ddb1
commit a1afd460a5
12 changed files with 1024 additions and 0 deletions

11
.gitattributes vendored
View file

@ -557,6 +557,17 @@ src/neostats.pm.h -text
src/neostats.vcproj -text
src/nsevents.c -text
src/typemap -text
src/win32/Gui/AssemblyInfo.cpp -text
src/win32/Gui/Form1.h -text
src/win32/Gui/Form1.resx -text
src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.cpp -text
src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.sln -text
src/win32/Gui/NeoStats[!!-~]Control[!!-~]Panel.vcproj -text
src/win32/Gui/app.ico -text
src/win32/Gui/app.rc -text
src/win32/Gui/resource.h -text
src/win32/Gui/stdafx.cpp -text
src/win32/Gui/stdafx.h -text
src/win32/Rules.rules -text
src/win32/icon1.ico -text
src/win32/neostats.bmp -text

View file

@ -0,0 +1,40 @@
#include "stdafx.h"
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly:AssemblyTitleAttribute("NeoStatsControlPanel")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("")];
[assembly:AssemblyProductAttribute("NeoStatsControlPanel")];
[assembly:AssemblyCopyrightAttribute("Copyright (c) 2008")];
[assembly:AssemblyTrademarkAttribute("")];
[assembly:AssemblyCultureAttribute("")];
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the value or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly:AssemblyVersionAttribute("1.0.*")];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

395
src/win32/Gui/Form1.h Normal file
View file

@ -0,0 +1,395 @@
#pragma once
namespace NeoStatsControlPanel {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//import System::ServiceProcess::ServiceControllerStatus;
//
//TODO: Add the constructor code here
//
notifyIcon1->BalloonTipText = "NeoStats Stopped";
notifyIcon1->BalloonTipTitle = "Status";
notifyIcon1->ContextMenuStrip = contextMenuStrip1;
notifyIcon1->ShowBalloonTip(10);
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
Application::Exit();
}
private: System::Windows::Forms::NotifyIcon^ notifyIcon1;
private: System::Windows::Forms::ContextMenuStrip^ contextMenuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^ openControlPanelToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ exitToolStripMenuItem;
private: System::ServiceProcess::ServiceController^ serviceController1;
private: System::Diagnostics::PerformanceCounter^ performanceCounter1;
private: System::Windows::Forms::Timer^ PerfUpdate;
private: System::Windows::Forms::ProgressBar^ PerfCPU;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Diagnostics::PerformanceCounter^ performanceCounter2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::MenuStrip^ menuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^ serviceToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ startToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ stopToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ debugToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ installToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ unInstallToolStripMenuItem;
private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator1;
private: System::Windows::Forms::ToolStripMenuItem^ quitNeoStatsControlPanelToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ logViewerToolStripMenuItem;
protected:
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
/// Required designer variable.
/// </summary>
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
this->notifyIcon1 = (gcnew System::Windows::Forms::NotifyIcon(this->components));
this->contextMenuStrip1 = (gcnew System::Windows::Forms::ContextMenuStrip(this->components));
this->openControlPanelToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->exitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->serviceController1 = (gcnew System::ServiceProcess::ServiceController());
this->performanceCounter1 = (gcnew System::Diagnostics::PerformanceCounter());
this->PerfUpdate = (gcnew System::Windows::Forms::Timer(this->components));
this->PerfCPU = (gcnew System::Windows::Forms::ProgressBar());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->performanceCounter2 = (gcnew System::Diagnostics::PerformanceCounter());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->serviceToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->startToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->stopToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->debugToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->installToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->unInstallToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStripSeparator1 = (gcnew System::Windows::Forms::ToolStripSeparator());
this->quitNeoStatsControlPanelToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->logViewerToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->contextMenuStrip1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->performanceCounter1))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->performanceCounter2))->BeginInit();
this->menuStrip1->SuspendLayout();
this->SuspendLayout();
//
// notifyIcon1
//
this->notifyIcon1->Icon = (cli::safe_cast<System::Drawing::Icon^ >(resources->GetObject(L"notifyIcon1.Icon")));
this->notifyIcon1->Text = L"NeoStats Control Panel";
this->notifyIcon1->Visible = true;
this->notifyIcon1->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::notifyIcon1_MouseDoubleClick);
//
// contextMenuStrip1
//
this->contextMenuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->openControlPanelToolStripMenuItem,
this->exitToolStripMenuItem});
this->contextMenuStrip1->Name = L"contextMenuStrip1";
this->contextMenuStrip1->Size = System::Drawing::Size(179, 48);
//
// openControlPanelToolStripMenuItem
//
this->openControlPanelToolStripMenuItem->Name = L"openControlPanelToolStripMenuItem";
this->openControlPanelToolStripMenuItem->Size = System::Drawing::Size(178, 22);
this->openControlPanelToolStripMenuItem->Text = L"&Open Control Panel";
this->openControlPanelToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::openControlPanelToolStripMenuItem_Click);
//
// exitToolStripMenuItem
//
this->exitToolStripMenuItem->Name = L"exitToolStripMenuItem";
this->exitToolStripMenuItem->Size = System::Drawing::Size(178, 22);
this->exitToolStripMenuItem->Text = L"E&xit";
this->exitToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::exitToolStripMenuItem_Click);
//
// serviceController1
//
this->serviceController1->ServiceName = L"McShield";
//
// performanceCounter1
//
this->performanceCounter1->CategoryName = L"Process";
this->performanceCounter1->CounterName = L"% Processor Time";
this->performanceCounter1->InstanceName = L"taskmgr";
//
// PerfUpdate
//
this->PerfUpdate->Interval = 1000;
this->PerfUpdate->Tick += gcnew System::EventHandler(this, &Form1::PerfUpdate_Tick);
//
// PerfCPU
//
this->PerfCPU->Location = System::Drawing::Point(2, 238);
this->PerfCPU->Name = L"PerfCPU";
this->PerfCPU->Size = System::Drawing::Size(283, 23);
this->PerfCPU->TabIndex = 1;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(80, 222);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(13, 13);
this->label1->TabIndex = 2;
this->label1->Text = L"0";
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(8, 221);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(66, 13);
this->label2->TabIndex = 3;
this->label2->Text = L"CPU Usage:";
//
// performanceCounter2
//
this->performanceCounter2->CategoryName = L"Process";
this->performanceCounter2->CounterName = L"Working Set";
this->performanceCounter2->InstanceName = L"taskmgr";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(99, 222);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(81, 13);
this->label3->TabIndex = 4;
this->label3->Text = L"Memory Usage:";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(187, 222);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(13, 13);
this->label4->TabIndex = 5;
this->label4->Text = L"0";
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->serviceToolStripMenuItem,
this->logViewerToolStripMenuItem});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(284, 24);
this->menuStrip1->TabIndex = 6;
this->menuStrip1->Text = L"menuStrip1";
//
// serviceToolStripMenuItem
//
this->serviceToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(7) {this->startToolStripMenuItem,
this->stopToolStripMenuItem, this->debugToolStripMenuItem, this->installToolStripMenuItem, this->unInstallToolStripMenuItem,
this->toolStripSeparator1, this->quitNeoStatsControlPanelToolStripMenuItem});
this->serviceToolStripMenuItem->Name = L"serviceToolStripMenuItem";
this->serviceToolStripMenuItem->Size = System::Drawing::Size(56, 20);
this->serviceToolStripMenuItem->Text = L"Service";
//
// startToolStripMenuItem
//
this->startToolStripMenuItem->Enabled = false;
this->startToolStripMenuItem->Name = L"startToolStripMenuItem";
this->startToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->startToolStripMenuItem->Text = L"Start";
this->startToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::startToolStripMenuItem_Click);
//
// stopToolStripMenuItem
//
this->stopToolStripMenuItem->Enabled = false;
this->stopToolStripMenuItem->Name = L"stopToolStripMenuItem";
this->stopToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->stopToolStripMenuItem->Text = L"Stop";
this->stopToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::stopToolStripMenuItem_Click);
//
// debugToolStripMenuItem
//
this->debugToolStripMenuItem->Name = L"debugToolStripMenuItem";
this->debugToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->debugToolStripMenuItem->Text = L"Debug";
//
// installToolStripMenuItem
//
this->installToolStripMenuItem->Enabled = false;
this->installToolStripMenuItem->Name = L"installToolStripMenuItem";
this->installToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->installToolStripMenuItem->Text = L"Install";
//
// unInstallToolStripMenuItem
//
this->unInstallToolStripMenuItem->Enabled = false;
this->unInstallToolStripMenuItem->Name = L"unInstallToolStripMenuItem";
this->unInstallToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->unInstallToolStripMenuItem->Text = L"Uninstall";
//
// toolStripSeparator1
//
this->toolStripSeparator1->Name = L"toolStripSeparator1";
this->toolStripSeparator1->Size = System::Drawing::Size(219, 6);
//
// quitNeoStatsControlPanelToolStripMenuItem
//
this->quitNeoStatsControlPanelToolStripMenuItem->Name = L"quitNeoStatsControlPanelToolStripMenuItem";
this->quitNeoStatsControlPanelToolStripMenuItem->Size = System::Drawing::Size(222, 22);
this->quitNeoStatsControlPanelToolStripMenuItem->Text = L"Quit NeoStats Control Panel";
this->quitNeoStatsControlPanelToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::quitNeoStatsControlPanelToolStripMenuItem_Click);
//
// logViewerToolStripMenuItem
//
this->logViewerToolStripMenuItem->Name = L"logViewerToolStripMenuItem";
this->logViewerToolStripMenuItem->Size = System::Drawing::Size(77, 20);
this->logViewerToolStripMenuItem->Text = L"Log Viewer";
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 264);
this->Controls->Add(this->menuStrip1);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->PerfCPU);
this->Controls->Add(this->label1);
this->Icon = (cli::safe_cast<System::Drawing::Icon^ >(resources->GetObject(L"$this.Icon")));
this->MainMenuStrip = this->menuStrip1;
this->MinimizeBox = false;
this->Name = L"Form1";
this->Text = L"NeoStats Control Panel";
this->contextMenuStrip1->ResumeLayout(false);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->performanceCounter1))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->performanceCounter2))->EndInit();
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void openControlPanelToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if (this->Visible == true) {
this->Hide();
this->openControlPanelToolStripMenuItem->Text = L"&Open Control Panel";
this->PerfUpdate->Enabled = false;
} else {
this->openControlPanelToolStripMenuItem->Text = L"&Close Control Panel";
this->Show();
this->PerfUpdate->Enabled = true;
}
}
private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
this->Close();
Application::Exit();
};
private: System::Void notifyIcon1_MouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
openControlPanelToolStripMenuItem_Click(sender, e);
}
private: System::Void PerfUpdate_Tick(System::Object^ sender, System::EventArgs^ e) {
try {
this->PerfCPU->Value = this->performanceCounter1->NextValue();
} catch(...) {
this->PerfCPU->Value = 0;
}
try {
this->label4->Text = (this->performanceCounter2->NextValue()/1024/1024).ToString("N01") + "Mb";
} catch(...) {
this->label4->Text = "0";
}
this->label1->Text= this->PerfCPU->Value.ToString();
switch (serviceController1->Status) {
case System::ServiceProcess::ServiceControllerStatus::Running:
notifyIcon1->BalloonTipText = "NeoStats Running";
this->PerfUpdate->Enabled = true;
this->startToolStripMenuItem->Enabled = false;
this->stopToolStripMenuItem->Enabled = true;
this->debugToolStripMenuItem->Enabled = false;
this->installToolStripMenuItem->Enabled = false;
this->unInstallToolStripMenuItem->Enabled = false;
break;
case System::ServiceProcess::ServiceControllerStatus::StartPending:
notifyIcon1->BalloonTipText = "NeoStats Starting";
this->PerfUpdate->Enabled = true;
this->startToolStripMenuItem->Enabled = false;
this->stopToolStripMenuItem->Enabled = true;
this->debugToolStripMenuItem->Enabled = false;
this->installToolStripMenuItem->Enabled = false;
this->unInstallToolStripMenuItem->Enabled = false;
break;
default:
notifyIcon1->BalloonTipText = "NeoStats Stopped";
this->startToolStripMenuItem->Enabled = true;
this->stopToolStripMenuItem->Enabled = false;
this->debugToolStripMenuItem->Enabled = true;
this->installToolStripMenuItem->Enabled = false;
this->unInstallToolStripMenuItem->Enabled = true;
this->PerfUpdate->Enabled = false;
}
}
private: System::Void quitNeoStatsControlPanelToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
exitToolStripMenuItem_Click(sender, e);
}
private: System::Void stopToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
try {
serviceController1->Stop();
} catch(InvalidOperationException^ e ) {
MessageBox::Show(e->Message + ":\r\n" + e->InnerException->Message, "Error Stopping Service");
}
}
private: System::Void startToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
try {
serviceController1->Start();
} catch(InvalidOperationException^ e ) {
MessageBox::Show(e->Message + ":\r\n" + e->InnerException->Message, "Error Starting Service");
}
}
};
}

179
src/win32/Gui/Form1.resx Normal file
View file

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

View file

@ -0,0 +1,23 @@
// NeoStats Control Panel.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace NeoStatsControlPanel;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
Form1 ^ NeoStatsGui;
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
NeoStatsGui = gcnew Form1();
NeoStatsGui->Hide();
Application::Run();
// Application::Run(gcnew Form1());
return 0;
}

View file

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NeoStats Control Panel", "NeoStats Control Panel.vcproj", "{FACB5498-CC3E-415A-96E5-91737F986A52}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FACB5498-CC3E-415A-96E5-91737F986A52}.Debug|Win32.ActiveCfg = Debug|Win32
{FACB5498-CC3E-415A-96E5-91737F986A52}.Debug|Win32.Build.0 = Debug|Win32
{FACB5498-CC3E-415A-96E5-91737F986A52}.Release|Win32.ActiveCfg = Release|Win32
{FACB5498-CC3E-415A-96E5-91737F986A52}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,277 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="NeoStats Control Panel"
ProjectGUID="{FACB5498-CC3E-415A-96E5-91737F986A52}"
RootNamespace="NeoStatsControlPanel"
Keyword="ManagedCProj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
ManagedExtensions="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(NoInherit)"
LinkIncremental="2"
GenerateDebugInformation="true"
AssemblyDebug="1"
SubSystem="2"
EntryPointSymbol="main"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
ManagedExtensions="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG"
RuntimeLibrary="2"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(NoInherit)"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
EntryPointSymbol="main"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
<AssemblyReference
RelativePath="System.dll"
AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
MinFrameworkVersion="131072"
/>
<AssemblyReference
RelativePath="System.Data.dll"
AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
MinFrameworkVersion="131072"
/>
<AssemblyReference
RelativePath="System.Drawing.dll"
AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
MinFrameworkVersion="131072"
/>
<AssemblyReference
RelativePath="System.Windows.Forms.dll"
AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
MinFrameworkVersion="131072"
/>
<AssemblyReference
RelativePath="System.XML.dll"
AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
MinFrameworkVersion="131072"
/>
<AssemblyReference
RelativePath="System.ServiceProcess.dll"
AssemblyName="System.ServiceProcess, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
MinFrameworkVersion="131072"
/>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\AssemblyInfo.cpp"
>
</File>
<File
RelativePath=".\NeoStats Control Panel.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\Form1.h"
FileType="3"
>
<File
RelativePath=".\Form1.resX"
SubType="Designer"
>
</File>
</File>
<File
RelativePath=".\resource.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\app.ico"
>
</File>
<File
RelativePath=".\app.rc"
>
</File>
</Filter>
<File
RelativePath=".\ReadMe.txt"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

BIN
src/win32/Gui/app.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

63
src/win32/Gui/app.rc Normal file
View file

@ -0,0 +1,63 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon placed first or with lowest ID value becomes application icon
LANGUAGE 9, 18
#pragma code_page(1252)
1 ICON "app.ico"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
"\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

3
src/win32/Gui/resource.h Normal file
View file

@ -0,0 +1,3 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by app.rc

7
src/win32/Gui/stdafx.cpp Normal file
View file

@ -0,0 +1,7 @@
// stdafx.cpp : source file that includes just the standard includes
// NeoStats Control Panel.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

6
src/win32/Gui/stdafx.h Normal file
View file

@ -0,0 +1,6 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
#pragma once
// TODO: reference additional headers your program requires here