first commit
This commit is contained in:
commit
6ba1e5f094
261
.gitignore
vendored
Normal file
261
.gitignore
vendored
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
|
||||||
|
# Visual Studio 2015 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUNIT
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# DNX
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_i.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# JustCode is a .NET coding add-in
|
||||||
|
.JustCode
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
#*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/packages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/packages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/packages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignoreable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
node_modules/
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# JetBrains Rider
|
||||||
|
.idea/
|
||||||
|
*.sln.iml
|
||||||
|
|
||||||
|
# CodeRush
|
||||||
|
.cr/
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
25
MxWManager.sln
Normal file
25
MxWManager.sln
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.14.36414.22 d17.14
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MxWManager", "MxWManager\MxWManager.csproj", "{377DC521-9578-44BC-A856-23CE08E7168E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{377DC521-9578-44BC-A856-23CE08E7168E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{377DC521-9578-44BC-A856-23CE08E7168E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{377DC521-9578-44BC-A856-23CE08E7168E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{377DC521-9578-44BC-A856-23CE08E7168E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {299AE0D6-4F1F-4417-B38C-CA5A963CD6B8}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
6
MxWManager/App.config
Normal file
6
MxWManager/App.config
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
163
MxWManager/MainForm.Designer.cs
generated
Normal file
163
MxWManager/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
namespace MxWManager
|
||||||
|
{
|
||||||
|
partial class MainForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Variable nécessaire au concepteur.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Nettoyage des ressources utilisées.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Code généré par le Concepteur Windows Form
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
|
||||||
|
/// le contenu de cette méthode avec l'éditeur de code.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
|
this.dataGridView_MainForm_EnvList = new System.Windows.Forms.DataGridView();
|
||||||
|
this.timer_MainForm_ProcessWatchDog = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.contextMenuStrip_MainForm_ConfList = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.contextMenuStrip_MainForm_Manage = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.textBox_MainForm_Console = new System.Windows.Forms.TextBox();
|
||||||
|
this.button_MainForm_NewEnv = new System.Windows.Forms.Button();
|
||||||
|
this.button_MainForm_Settings = new System.Windows.Forms.Button();
|
||||||
|
this.button_MainForm_Backup = new System.Windows.Forms.Button();
|
||||||
|
this.label_MainForm_Info = new System.Windows.Forms.Label();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView_MainForm_EnvList)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// dataGridView_MainForm_EnvList
|
||||||
|
//
|
||||||
|
this.dataGridView_MainForm_EnvList.AllowUserToAddRows = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.AllowUserToDeleteRows = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.AllowUserToResizeColumns = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.AllowUserToResizeRows = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView_MainForm_EnvList.ColumnHeadersVisible = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.Location = new System.Drawing.Point(12, 12);
|
||||||
|
this.dataGridView_MainForm_EnvList.Name = "dataGridView_MainForm_EnvList";
|
||||||
|
this.dataGridView_MainForm_EnvList.RowHeadersVisible = false;
|
||||||
|
this.dataGridView_MainForm_EnvList.Size = new System.Drawing.Size(622, 303);
|
||||||
|
this.dataGridView_MainForm_EnvList.TabIndex = 0;
|
||||||
|
this.dataGridView_MainForm_EnvList.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_MainForm_EnvList_CellClick);
|
||||||
|
//
|
||||||
|
// timer_MainForm_ProcessWatchDog
|
||||||
|
//
|
||||||
|
this.timer_MainForm_ProcessWatchDog.Enabled = true;
|
||||||
|
this.timer_MainForm_ProcessWatchDog.Interval = 2000;
|
||||||
|
this.timer_MainForm_ProcessWatchDog.Tick += new System.EventHandler(this.timer_MainForm_ProcessWatchDog_Tick);
|
||||||
|
//
|
||||||
|
// contextMenuStrip_MainForm_ConfList
|
||||||
|
//
|
||||||
|
this.contextMenuStrip_MainForm_ConfList.Name = "contextMenuStrip_MainForm_ConfList";
|
||||||
|
this.contextMenuStrip_MainForm_ConfList.Size = new System.Drawing.Size(61, 4);
|
||||||
|
this.contextMenuStrip_MainForm_ConfList.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStrip_MainForm_ConfList_ItemClicked);
|
||||||
|
//
|
||||||
|
// contextMenuStrip_MainForm_Manage
|
||||||
|
//
|
||||||
|
this.contextMenuStrip_MainForm_Manage.Name = "contextMenuStrip1";
|
||||||
|
this.contextMenuStrip_MainForm_Manage.Size = new System.Drawing.Size(61, 4);
|
||||||
|
this.contextMenuStrip_MainForm_Manage.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStrip_MainForm_Manage_ItemClicked);
|
||||||
|
//
|
||||||
|
// textBox_MainForm_Console
|
||||||
|
//
|
||||||
|
this.textBox_MainForm_Console.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.textBox_MainForm_Console.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.textBox_MainForm_Console.ForeColor = System.Drawing.Color.White;
|
||||||
|
this.textBox_MainForm_Console.Location = new System.Drawing.Point(12, 350);
|
||||||
|
this.textBox_MainForm_Console.Multiline = true;
|
||||||
|
this.textBox_MainForm_Console.Name = "textBox_MainForm_Console";
|
||||||
|
this.textBox_MainForm_Console.Size = new System.Drawing.Size(622, 264);
|
||||||
|
this.textBox_MainForm_Console.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// button_MainForm_NewEnv
|
||||||
|
//
|
||||||
|
this.button_MainForm_NewEnv.Location = new System.Drawing.Point(12, 321);
|
||||||
|
this.button_MainForm_NewEnv.Name = "button_MainForm_NewEnv";
|
||||||
|
this.button_MainForm_NewEnv.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.button_MainForm_NewEnv.TabIndex = 3;
|
||||||
|
this.button_MainForm_NewEnv.Text = "New Env";
|
||||||
|
this.button_MainForm_NewEnv.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// button_MainForm_Settings
|
||||||
|
//
|
||||||
|
this.button_MainForm_Settings.Location = new System.Drawing.Point(559, 321);
|
||||||
|
this.button_MainForm_Settings.Name = "button_MainForm_Settings";
|
||||||
|
this.button_MainForm_Settings.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.button_MainForm_Settings.TabIndex = 5;
|
||||||
|
this.button_MainForm_Settings.Text = "Settings";
|
||||||
|
this.button_MainForm_Settings.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// button_MainForm_Backup
|
||||||
|
//
|
||||||
|
this.button_MainForm_Backup.Location = new System.Drawing.Point(478, 321);
|
||||||
|
this.button_MainForm_Backup.Name = "button_MainForm_Backup";
|
||||||
|
this.button_MainForm_Backup.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.button_MainForm_Backup.TabIndex = 6;
|
||||||
|
this.button_MainForm_Backup.Text = "Backup";
|
||||||
|
this.button_MainForm_Backup.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// label_MainForm_Info
|
||||||
|
//
|
||||||
|
this.label_MainForm_Info.AutoSize = true;
|
||||||
|
this.label_MainForm_Info.Font = new System.Drawing.Font("Verdana", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.label_MainForm_Info.Location = new System.Drawing.Point(93, 325);
|
||||||
|
this.label_MainForm_Info.Name = "label_MainForm_Info";
|
||||||
|
this.label_MainForm_Info.Size = new System.Drawing.Size(137, 14);
|
||||||
|
this.label_MainForm_Info.TabIndex = 7;
|
||||||
|
this.label_MainForm_Info.Text = "Developped by mikx.";
|
||||||
|
//
|
||||||
|
// MainForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.Color.Orange;
|
||||||
|
this.ClientSize = new System.Drawing.Size(647, 626);
|
||||||
|
this.Controls.Add(this.label_MainForm_Info);
|
||||||
|
this.Controls.Add(this.button_MainForm_Backup);
|
||||||
|
this.Controls.Add(this.button_MainForm_Settings);
|
||||||
|
this.Controls.Add(this.button_MainForm_NewEnv);
|
||||||
|
this.Controls.Add(this.textBox_MainForm_Console);
|
||||||
|
this.Controls.Add(this.dataGridView_MainForm_EnvList);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "MainForm";
|
||||||
|
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||||
|
this.Text = "MxWManager";
|
||||||
|
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView_MainForm_EnvList)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.DataGridView dataGridView_MainForm_EnvList;
|
||||||
|
private System.Windows.Forms.Timer timer_MainForm_ProcessWatchDog;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip contextMenuStrip_MainForm_ConfList;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip contextMenuStrip_MainForm_Manage;
|
||||||
|
private System.Windows.Forms.TextBox textBox_MainForm_Console;
|
||||||
|
private System.Windows.Forms.Button button_MainForm_NewEnv;
|
||||||
|
private System.Windows.Forms.Button button_MainForm_Settings;
|
||||||
|
private System.Windows.Forms.Button button_MainForm_Backup;
|
||||||
|
private System.Windows.Forms.Label label_MainForm_Info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
465
MxWManager/MainForm.cs
Normal file
465
MxWManager/MainForm.cs
Normal file
@ -0,0 +1,465 @@
|
|||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MxWManager
|
||||||
|
{
|
||||||
|
public partial class MainForm : Form
|
||||||
|
{
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
static extern bool GenerateConsoleCtrlEvent(int dwCtrlEvent, int dwProcessGroupId);
|
||||||
|
|
||||||
|
// P/Invoke declarations for Windows API functions
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
|
||||||
|
|
||||||
|
// Constant to restore a minimized window
|
||||||
|
private const int SW_RESTORE = 9;
|
||||||
|
|
||||||
|
public static string version = "1.0.0";
|
||||||
|
public Stopwatch stopwatch = new Stopwatch();
|
||||||
|
public TimeSpan ts;
|
||||||
|
public string elapsedTime = "";
|
||||||
|
|
||||||
|
private static string contextMenuEnv = "";
|
||||||
|
|
||||||
|
public MainForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
label_MainForm_Info.Text = $"Developped by mikx. Version: {version}";
|
||||||
|
dataGridView_MainForm_EnvList.BackgroundColor = Color.FromArgb(22,23,23);
|
||||||
|
textBox_MainForm_Console.BackColor = Color.FromArgb(22, 23, 23);
|
||||||
|
int envc = 0;
|
||||||
|
var env = Directory.GetDirectories(Directory.GetCurrentDirectory());
|
||||||
|
foreach (var dir in env)
|
||||||
|
{
|
||||||
|
bool envcheck = File.Exists($@"{dir}\env.json");
|
||||||
|
if (envcheck)
|
||||||
|
{
|
||||||
|
envc++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
MainConsole("System",$"MxWManager Launched with {envc} managed env.");
|
||||||
|
UpdateEnvList();
|
||||||
|
dataGridView_MainForm_EnvList.ClearSelection();
|
||||||
|
dataGridView_MainForm_EnvList.CurrentCell = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dataGridView_MainForm_EnvList_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||||
|
{
|
||||||
|
if (dataGridView_MainForm_EnvList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
|
||||||
|
{
|
||||||
|
string clickedButtonText = dataGridView_MainForm_EnvList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
|
||||||
|
string envName = dataGridView_MainForm_EnvList.Rows[e.RowIndex].Cells[2].Value.ToString();
|
||||||
|
|
||||||
|
Process p = new Process();
|
||||||
|
|
||||||
|
switch (clickedButtonText)
|
||||||
|
{
|
||||||
|
case "Browse":
|
||||||
|
Process.Start(new ProcessStartInfo($@"{envName}"));
|
||||||
|
MainConsole($"{envName}", $"Browsing {envName}.");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "IDE":
|
||||||
|
MainConsole($"{envName}", $"Starting IDE for {envName}.");
|
||||||
|
p.StartInfo.FileName = "devenv.exe";
|
||||||
|
p.StartInfo.Arguments = $@"{envName}/build/AzerothCore.sln";
|
||||||
|
p.Start();
|
||||||
|
UpdateEnvList();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Manage":
|
||||||
|
contextMenuStrip_MainForm_Manage.Items.Clear();
|
||||||
|
contextMenuEnv = envName;
|
||||||
|
contextMenuStrip_MainForm_Manage.Items.Add($@"CC|{envName}| Copy built Core");
|
||||||
|
var env = Directory.GetDirectories(Directory.GetCurrentDirectory());
|
||||||
|
foreach (var dir in env)
|
||||||
|
{
|
||||||
|
bool envcheck = File.Exists($@"{dir}\env.json");
|
||||||
|
if (envcheck && Path.GetFileName(dir) != envName && !envName.Contains("DEV"))
|
||||||
|
{
|
||||||
|
contextMenuStrip_MainForm_Manage.Items.Add($@"GS|{Path.GetFileName(dir)}| Get Sources From");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contextMenuStrip_MainForm_Manage.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Config":
|
||||||
|
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
|
||||||
|
{
|
||||||
|
MainConsole($"{envName}", $"Opening {envName} env config...");
|
||||||
|
p.StartInfo.FileName = @"code";
|
||||||
|
p.StartInfo.Arguments = $@"{envName}\env.json";
|
||||||
|
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
|
p.Start();
|
||||||
|
dataGridView_MainForm_EnvList.ClearSelection();
|
||||||
|
dataGridView_MainForm_EnvList.CurrentCell = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
stopwatch.Start();
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $"/C cd {envName}/build && cmake ..\\sources -G \"Visual Studio 17 2022\" -A x64 -DWITH_WARNINGS=0 -DTOOLS_BUILD=none -DSCRIPTS=static -DMODULES=static -DMYSQL_LIBRARY=\"..\\..\\_DEPS\\mysql\\lib\\libmysql.lib\" -DMYSQL_INCLUDE_DIR=\"..\\..\\_DEPS\\mysql\\include\"";
|
||||||
|
p.Start();
|
||||||
|
MainConsole($"{envName}", $"Configuring {envName}...");
|
||||||
|
p.WaitForExit();
|
||||||
|
stopwatch.Stop();
|
||||||
|
ts = stopwatch.Elapsed;
|
||||||
|
elapsedTime = String.Format("{0:00}:{1:00}:{2:00}", ts.Hours, ts.Minutes, ts.Seconds);
|
||||||
|
MainConsole($"{envName}", $"Configured {envName} in {elapsedTime}.");
|
||||||
|
UpdateEnvList();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "Clean":
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $"/C cd {envName}/build && cmake --build . --target clean --config RelWithDebInfo";
|
||||||
|
MainConsole($"{envName}", $"Cleaned {envName}.");
|
||||||
|
p.Start();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "Build":
|
||||||
|
stopwatch.Start();
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $"/C cd {envName}/build && cmake --build . --config RelWithDebInfo";
|
||||||
|
p.Start();
|
||||||
|
MainConsole($"{envName}", $"Building {envName}...");
|
||||||
|
p.WaitForExit();
|
||||||
|
stopwatch.Stop();
|
||||||
|
ts = stopwatch.Elapsed;
|
||||||
|
elapsedTime = String.Format("{0:00}:{1:00}:{2:00}", ts.Hours, ts.Minutes, ts.Seconds);
|
||||||
|
MainConsole($"{envName}", $"Built {envName} in {elapsedTime}.");
|
||||||
|
stopwatch.Reset();
|
||||||
|
UpdateEnvList();
|
||||||
|
break;
|
||||||
|
case "Auth":
|
||||||
|
int apid = GetEnvProcessID(envName, "auth");
|
||||||
|
if (apid == 0 || !ProcessExists(apid))
|
||||||
|
{
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $@"/C cd {Directory.GetCurrentDirectory()}\{envName}\core && authserver.exe";
|
||||||
|
p.Start();
|
||||||
|
SetEnvProcessID(envName, "auth", p.Id);
|
||||||
|
MainConsole($"{envName}", $"Started Auth with pid {p.Id}.");
|
||||||
|
UpdateEnvList();
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
MainConsole($"{envName}", $"Auth is running with pid {apid}, focusing.");
|
||||||
|
SetActiveWindowByProcessId(apid);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "World":
|
||||||
|
int wpid = GetEnvProcessID(envName, "world");
|
||||||
|
if (wpid == 0 || !ProcessExists(wpid))
|
||||||
|
{
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $@"/C cd {Directory.GetCurrentDirectory()}\{envName}\core && worldserver.exe";
|
||||||
|
p.Start();
|
||||||
|
SetEnvProcessID(envName, "world", p.Id);
|
||||||
|
MainConsole($"{envName}", $"Started World with pid {p.Id}.");
|
||||||
|
UpdateEnvList();
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
MainConsole($"{envName}", $"World is running with pid {wpid}, focusing.");
|
||||||
|
SetActiveWindowByProcessId(wpid);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Configs":
|
||||||
|
contextMenuStrip_MainForm_ConfList.Items.Clear();
|
||||||
|
contextMenuEnv = envName;
|
||||||
|
var configs = Directory.GetFiles($@"{envName}\core\configs", "*.conf");
|
||||||
|
foreach (var c in configs)
|
||||||
|
{
|
||||||
|
contextMenuStrip_MainForm_ConfList.Items.Add(Path.GetFileName(c));
|
||||||
|
}
|
||||||
|
contextMenuStrip_MainForm_ConfList.Show(Cursor.Position.X, Cursor.Position.Y);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateEnvList()
|
||||||
|
{
|
||||||
|
dataGridView_MainForm_EnvList.Rows.Clear();
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Clear();
|
||||||
|
DataGridViewImageColumn imgColumn = new DataGridViewImageColumn();
|
||||||
|
dataGridView_MainForm_EnvList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
|
||||||
|
dataGridView_MainForm_EnvList.RowTemplate.Height = 31;
|
||||||
|
dataGridView_MainForm_EnvList.ReadOnly = true;
|
||||||
|
//dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewImageColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewImageColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewTextBoxColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewTextBoxColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewImageColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewImageColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
dataGridView_MainForm_EnvList.Columns.Add(new DataGridViewButtonColumn());
|
||||||
|
|
||||||
|
var env = Directory.GetDirectories(Directory.GetCurrentDirectory());
|
||||||
|
foreach (var dir in env)
|
||||||
|
{
|
||||||
|
bool envcheck = File.Exists($@"{dir}\env.json");
|
||||||
|
if (envcheck)
|
||||||
|
{
|
||||||
|
Image imgSource = Image.FromFile(@"_DATA\img\Source_Off.png");
|
||||||
|
if (Directory.GetFileSystemEntries($@"{dir}\sources").Length == 0)
|
||||||
|
{
|
||||||
|
imgSource = Image.FromFile(@"_DATA\img\Source_Off.png");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
imgSource = Image.FromFile(@"_DATA\img\Source_On.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
Image imgBuild = Image.FromFile(@"_DATA\img\Build_Off.png");
|
||||||
|
if (Directory.GetFileSystemEntries($@"{dir}\build\bin").Length == 0)
|
||||||
|
{
|
||||||
|
imgBuild = Image.FromFile(@"_DATA\img\Build_Off.png");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
imgBuild = Image.FromFile(@"_DATA\img\Build_On.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
Image imgAuth = Image.FromFile(@"_DATA\img\Auth_Off.png");
|
||||||
|
int authpid = GetEnvProcessID(Path.GetFileName(dir), "auth");
|
||||||
|
if (authpid != 0 && ProcessExists(authpid))
|
||||||
|
{
|
||||||
|
imgAuth = Image.FromFile(@"_DATA\img\Auth_On.png");
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
imgAuth = Image.FromFile(@"_DATA\img\Auth_Off.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
Image imgWorld = Image.FromFile(@"_DATA\img\World_Off.png");
|
||||||
|
int worldpid = GetEnvProcessID(Path.GetFileName(dir), "world");
|
||||||
|
if (worldpid != 0 && ProcessExists(worldpid))
|
||||||
|
{
|
||||||
|
imgWorld = Image.FromFile(@"_DATA\img\World_On.png");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
imgWorld = Image.FromFile(@"_DATA\img\World_Off.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add env to datagridview
|
||||||
|
DataGridViewRow rowEnv = new DataGridViewRow();
|
||||||
|
//rowEnv.Cells.Add(new DataGridViewImageCell { Value = imgSource });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewImageCell { Value = imgBuild });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewTextBoxCell { Value = $"{GetEnvTag(Path.GetFileName(dir))[0]}:{GetEnvTag(Path.GetFileName(dir))[1]}" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewTextBoxCell { Value = Path.GetFileName(dir) });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Browse" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "IDE" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Manage" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Config" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Clean" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Build" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewImageCell { Value = imgAuth });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Auth" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewImageCell { Value = imgWorld });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "World" });
|
||||||
|
rowEnv.Cells.Add(new DataGridViewButtonCell { Value = "Configs" });
|
||||||
|
dataGridView_MainForm_EnvList.Rows.Add(rowEnv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool ProcessExists(int pid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process.GetProcessById(pid);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (ArgumentException)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetEnvProcessID(string env, string type)
|
||||||
|
{
|
||||||
|
string jsonFilePath = $@"{env}/env.json";
|
||||||
|
string jsonContent = File.ReadAllText(jsonFilePath);
|
||||||
|
JObject jsonObject = JObject.Parse(jsonContent);
|
||||||
|
if (type == "auth") { return jsonObject["authpid"].Value<int>(); }
|
||||||
|
if (type == "world") { return jsonObject["worldpid"].Value<int>(); }
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string[] GetEnvTag(string env)
|
||||||
|
{
|
||||||
|
string jsonFilePath = $@"{env}/env.json";
|
||||||
|
string jsonContent = File.ReadAllText(jsonFilePath);
|
||||||
|
JObject jsonObject = JObject.Parse(jsonContent);
|
||||||
|
string[] tags = { jsonObject["tag"].ToString().Split('|')[0], jsonObject["tag"].ToString().Split('|')[1] };
|
||||||
|
return tags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetEnvProcessID(string env, string type, int pid)
|
||||||
|
{
|
||||||
|
string jsonFilePath = $@"{env}/env.json";
|
||||||
|
string jsonContent = File.ReadAllText(jsonFilePath);
|
||||||
|
JObject jsonObject = JObject.Parse(jsonContent);
|
||||||
|
if (type == "auth") { jsonObject["authpid"] = pid; }
|
||||||
|
if (type == "world") { jsonObject["worldpid"] = pid; }
|
||||||
|
string updatedJson = jsonObject.ToString(Newtonsoft.Json.Formatting.Indented);
|
||||||
|
File.WriteAllText(jsonFilePath, updatedJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetActiveWindowByProcessId(int processId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process process = Process.GetProcessById(processId);
|
||||||
|
|
||||||
|
// Check if the process has a main window
|
||||||
|
if (process.MainWindowHandle == IntPtr.Zero)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Process with ID {processId} has no main window.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IntPtr handle = process.MainWindowHandle;
|
||||||
|
|
||||||
|
// Restore the window if it's minimized
|
||||||
|
ShowWindowAsync(handle, SW_RESTORE);
|
||||||
|
|
||||||
|
// Bring the window to the foreground and activate it
|
||||||
|
SetForegroundWindow(handle);
|
||||||
|
|
||||||
|
Console.WriteLine($"Window for process with ID {processId} has been activated.");
|
||||||
|
}
|
||||||
|
catch (ArgumentException)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error: A process with ID {processId} does not exist.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void timer_MainForm_ProcessWatchDog_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var env = Directory.GetDirectories(Directory.GetCurrentDirectory());
|
||||||
|
foreach (var dir in env)
|
||||||
|
{
|
||||||
|
bool envcheck = File.Exists($@"{dir}\env.json");
|
||||||
|
if (envcheck)
|
||||||
|
{
|
||||||
|
string envName = Path.GetFileName(dir);
|
||||||
|
int apid = GetEnvProcessID(Path.GetFileName(dir), "auth");
|
||||||
|
if (apid == 0 || !ProcessExists(apid))
|
||||||
|
{
|
||||||
|
SetEnvProcessID(envName, "auth", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int wpid = GetEnvProcessID(Path.GetFileName(dir), "world");
|
||||||
|
if (wpid == 0 || !ProcessExists(wpid))
|
||||||
|
{
|
||||||
|
SetEnvProcessID(envName, "world", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contextMenuStrip_MainForm_ConfList_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||||
|
{
|
||||||
|
ToolStripItem item = e.ClickedItem;
|
||||||
|
MainConsole($"{contextMenuEnv}", $"Opening {item.Text}...");
|
||||||
|
Process p = new Process();
|
||||||
|
p.StartInfo.FileName = @"code";
|
||||||
|
p.StartInfo.Arguments = $@"{contextMenuEnv}\core\configs\{item.Text}";
|
||||||
|
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
|
p.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void contextMenuStrip_MainForm_Manage_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
|
||||||
|
{
|
||||||
|
ToolStripItem item = e.ClickedItem;
|
||||||
|
string clickedType = item.Text.Split('|')[0];
|
||||||
|
string clickedEnv = item.Text.Split('|')[1];
|
||||||
|
switch (clickedType)
|
||||||
|
{
|
||||||
|
case "CC":
|
||||||
|
File.Copy($@"{clickedEnv}\build\bin\RelWithDebInfo\worldserver.exe", $@"{clickedEnv}\core\worldserver.exe", true);
|
||||||
|
break;
|
||||||
|
case "GS":
|
||||||
|
// Get sources from another env
|
||||||
|
Process p = new Process();
|
||||||
|
p.StartInfo.FileName = "cmd.exe";
|
||||||
|
p.StartInfo.Arguments = $@"/C xcopy {Directory.GetCurrentDirectory()}\{clickedEnv}\sources\src {Directory.GetCurrentDirectory()}\{contextMenuEnv}\sources\src /S /E /H /Y && xcopy {Directory.GetCurrentDirectory()}\{clickedEnv}\sources\modules {Directory.GetCurrentDirectory()}\{contextMenuEnv}\sources\modules /S /E /H /Y";
|
||||||
|
p.Start();
|
||||||
|
p.WaitForExit();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MainConsole(string env, string msg)
|
||||||
|
{
|
||||||
|
string seconds = "";
|
||||||
|
string minutes = "";
|
||||||
|
string hours = "";
|
||||||
|
if (DateTime.Now.Second < 10)
|
||||||
|
{
|
||||||
|
seconds = String.Format("0{0}", DateTime.Now.Second);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
seconds = DateTime.Now.Second.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DateTime.Now.Minute < 10)
|
||||||
|
{
|
||||||
|
minutes = String.Format("0{0}", DateTime.Now.Minute);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
minutes = DateTime.Now.Minute.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DateTime.Now.Hour < 10)
|
||||||
|
{
|
||||||
|
hours = String.Format("0{0}", DateTime.Now.Hour);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hours = DateTime.Now.Hour.ToString();
|
||||||
|
}
|
||||||
|
if (textBox_MainForm_Console.Text == "")
|
||||||
|
{
|
||||||
|
textBox_MainForm_Console.Text = $"[{hours}:{minutes}:{seconds}][{env}] {msg}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
textBox_MainForm_Console.AppendText("\r\n" + $"[{hours}:{minutes}:{seconds}][{env}] {msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
206
MxWManager/MainForm.resx
Normal file
206
MxWManager/MainForm.resx
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="timer_MainForm_ProcessWatchDog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="contextMenuStrip_MainForm_ConfList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>260, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="contextMenuStrip_MainForm_Manage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>517, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
AAPAAAADwAAAA8AAAAP8AAA//wAA///AA/8=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
93
MxWManager/MxWManager.csproj
Normal file
93
MxWManager/MxWManager.csproj
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{377DC521-9578-44BC-A856-23CE08E7168E}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<RootNamespace>MxWManager</RootNamespace>
|
||||||
|
<AssemblyName>MxWManager</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>\\192.168.1.160\MxWCore\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>WoW_icon.svg.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="MainForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.Designer.cs">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<EmbeddedResource Include="MainForm.resx">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="WoW_icon.svg.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
22
MxWManager/Program.cs
Normal file
22
MxWManager/Program.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MxWManager
|
||||||
|
{
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Point d'entrée principal de l'application.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new MainForm());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
MxWManager/Properties/AssemblyInfo.cs
Normal file
33
MxWManager/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// Les informations générales relatives à un assembly dépendent de
|
||||||
|
// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
|
||||||
|
// associées à un assembly.
|
||||||
|
[assembly: AssemblyTitle("MxWManager")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("MxWManager")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
|
||||||
|
// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
|
||||||
|
// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
|
||||||
|
[assembly: Guid("377dc521-9578-44bc-a856-23ce08e7168e")]
|
||||||
|
|
||||||
|
// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
|
||||||
|
//
|
||||||
|
// Version principale
|
||||||
|
// Version secondaire
|
||||||
|
// Numéro de build
|
||||||
|
// Révision
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
71
MxWManager/Properties/Resources.Designer.cs
generated
Normal file
71
MxWManager/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// Ce code a été généré par un outil.
|
||||||
|
// Version du runtime :4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
|
||||||
|
// le code est régénéré.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MxWManager.Properties
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
|
||||||
|
/// </summary>
|
||||||
|
// Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
|
||||||
|
// à l'aide d'un outil, tel que ResGen ou Visual Studio.
|
||||||
|
// Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
|
||||||
|
// avec l'option /str ou régénérez votre projet VS.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources
|
||||||
|
{
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if ((resourceMan == null))
|
||||||
|
{
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MxWManager.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remplace la propriété CurrentUICulture du thread actuel pour toutes
|
||||||
|
/// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
117
MxWManager/Properties/Resources.resx
Normal file
117
MxWManager/Properties/Resources.resx
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?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.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: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" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
</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" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
</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>
|
||||||
|
</root>
|
30
MxWManager/Properties/Settings.Designer.cs
generated
Normal file
30
MxWManager/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MxWManager.Properties
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||||
|
{
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
MxWManager/Properties/Settings.settings
Normal file
7
MxWManager/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
BIN
MxWManager/WoW_icon.svg.ico
Normal file
BIN
MxWManager/WoW_icon.svg.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
4
MxWManager/packages.config
Normal file
4
MxWManager/packages.config
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Newtonsoft.Json" version="13.0.4" targetFramework="net472" />
|
||||||
|
</packages>
|
Loading…
x
Reference in New Issue
Block a user