diff --git a/.vs/EasyHCI/v14/.suo b/.vs/EasyHCI/v14/.suo new file mode 100644 index 0000000..5b5ae66 Binary files /dev/null and b/.vs/EasyHCI/v14/.suo differ diff --git a/.vs/EasyHCI/v16/.suo b/.vs/EasyHCI/v16/.suo new file mode 100644 index 0000000..8b57284 Binary files /dev/null and b/.vs/EasyHCI/v16/.suo differ diff --git a/App.config b/App.config new file mode 100644 index 0000000..bae5d6d --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/EasyHCI.csproj b/EasyHCI.csproj new file mode 100644 index 0000000..636e567 --- /dev/null +++ b/EasyHCI.csproj @@ -0,0 +1,162 @@ + + + + + + Debug + AnyCPU + {F3EDD19B-1622-4C20-84AA-54C9C6596780} + WinExe + Properties + EasyHCI + EasyHCI + v4.6.1 + 512 + true + + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + hangeul.ico + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + 7.3 + prompt + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + 7.3 + prompt + true + + + app.manifest + + + + packages\Costura.Fody.4.1.0\lib\net40\Costura.dll + False + + + .\MaterialSkin.dll + + + + + + + + + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + \ No newline at end of file diff --git a/EasyHCI.sln b/EasyHCI.sln new file mode 100644 index 0000000..27f9222 --- /dev/null +++ b/EasyHCI.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30709.132 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyHCI", "EasyHCI.csproj", "{F3EDD19B-1622-4C20-84AA-54C9C6596780}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|x64.ActiveCfg = Debug|x64 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|x64.Build.0 = Debug|x64 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|x86.ActiveCfg = Debug|x86 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Debug|x86.Build.0 = Debug|x86 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|Any CPU.Build.0 = Release|Any CPU + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|x64.ActiveCfg = Release|x64 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|x64.Build.0 = Release|x64 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|x86.ActiveCfg = Release|x86 + {F3EDD19B-1622-4C20-84AA-54C9C6596780}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3B48D44E-FC91-467E-A9F8-F58F9089D49B} + EndGlobalSection +EndGlobal diff --git a/FodyWeavers.xml b/FodyWeavers.xml new file mode 100644 index 0000000..5029e70 --- /dev/null +++ b/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/FodyWeavers.xsd b/FodyWeavers.xsd new file mode 100644 index 0000000..44a5374 --- /dev/null +++ b/FodyWeavers.xsd @@ -0,0 +1,111 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with |. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs new file mode 100644 index 0000000..0c83017 --- /dev/null +++ b/MainForm.Designer.cs @@ -0,0 +1,1003 @@ +namespace EasyHCI +{ + partial class MainForm + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.Tip1 = new System.Windows.Forms.ToolTip(this.components); + this.goblog = new System.Windows.Forms.LinkLabel(); + this.mtHide = new MaterialSkin.Controls.MaterialCheckBox(); + this.lb2 = new System.Windows.Forms.Label(); + this.pbUse = new MaterialSkin.Controls.MaterialProgressBar(); + this.TabSelector = new MaterialSkin.Controls.MaterialTabSelector(); + this.TabMain = new MaterialSkin.Controls.MaterialTabControl(); + this.Tab1 = new System.Windows.Forms.TabPage(); + this.memGap = new System.Windows.Forms.Label(); + this.elTime = new System.Windows.Forms.Label(); + this.tmemText = new System.Windows.Forms.TextBox(); + this.stopTest = new MaterialSkin.Controls.MaterialRaisedButton(); + this.passRate = new System.Windows.Forms.Label(); + this.LView1 = new System.Windows.Forms.ListView(); + this.ColumnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.ColumnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.LB1 = new System.Windows.Forms.Label(); + this.goTest = new MaterialSkin.Controls.MaterialRaisedButton(); + this.Tab3 = new System.Windows.Forms.TabPage(); + this.Panel1 = new System.Windows.Forms.Panel(); + this.AutoHCIM = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.yLLB = new System.Windows.Forms.Label(); + this.lvlb = new System.Windows.Forms.Label(); + this.transparent = new System.Windows.Forms.HScrollBar(); + this.label1 = new System.Windows.Forms.Label(); + this.instant = new MaterialSkin.Controls.MaterialCheckBox(); + this.YAuto = new MaterialSkin.Controls.MaterialRadioButton(); + this.notAuto = new MaterialSkin.Controls.MaterialRadioButton(); + this.pdL2 = new System.Windows.Forms.Label(); + this.pdL1 = new System.Windows.Forms.Label(); + this.BatchY = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.BatchX = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.yLB1 = new System.Windows.Forms.Label(); + this.XLB1 = new System.Windows.Forms.Label(); + this.LB31 = new System.Windows.Forms.Label(); + this.closePC = new MaterialSkin.Controls.MaterialCheckBox(); + this.closeMem = new MaterialSkin.Controls.MaterialCheckBox(); + this.mdLB3 = new System.Windows.Forms.Label(); + this.OpenEM = new MaterialSkin.Controls.MaterialRaisedButton(); + this.OpenPM = new MaterialSkin.Controls.MaterialRaisedButton(); + this.musicRepeat = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.dsLB1 = new System.Windows.Forms.Label(); + this.LB123 = new System.Windows.Forms.Label(); + this.capTime = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.HCINText = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.HCIMemory = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.HCIMax = new MaterialSkin.Controls.MaterialSingleLineTextField(); + this.lb15 = new System.Windows.Forms.Label(); + this.deLB0 = new System.Windows.Forms.Label(); + this.OpenSCAP = new MaterialSkin.Controls.MaterialRaisedButton(); + this.tLB1 = new System.Windows.Forms.Label(); + this.capbyTime = new MaterialSkin.Controls.MaterialCheckBox(); + this.capAfter = new MaterialSkin.Controls.MaterialCheckBox(); + this.sLB2 = new System.Windows.Forms.Label(); + this.sLB1 = new System.Windows.Forms.Label(); + this.dLB2 = new System.Windows.Forms.Label(); + this.dLB1 = new System.Windows.Forms.Label(); + this.OpenFolder = new System.Windows.Forms.FolderBrowserDialog(); + this.OpenFile = new System.Windows.Forms.OpenFileDialog(); + this.tTimer = new System.Windows.Forms.Timer(this.components); + this.TabMain.SuspendLayout(); + this.Tab1.SuspendLayout(); + this.Tab3.SuspendLayout(); + this.Panel1.SuspendLayout(); + this.SuspendLayout(); + // + // goblog + // + this.goblog.ActiveLinkColor = System.Drawing.Color.White; + this.goblog.AutoSize = true; + this.goblog.BackColor = System.Drawing.Color.Transparent; + this.goblog.DisabledLinkColor = System.Drawing.Color.White; + this.goblog.LinkColor = System.Drawing.Color.White; + this.goblog.Location = new System.Drawing.Point(135, 38); + this.goblog.Name = "goblog"; + this.goblog.Size = new System.Drawing.Size(96, 12); + this.goblog.TabIndex = 6; + this.goblog.TabStop = true; + this.goblog.Text = "Github: bumju08"; + this.Tip1.SetToolTip(this.goblog, "제작자: debugprov@naver.com"); + this.goblog.VisitedLinkColor = System.Drawing.Color.White; + this.goblog.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.goblog_LinkClicked); + this.goblog.MouseMove += new System.Windows.Forms.MouseEventHandler(this.goblog_MouseMove); + // + // mtHide + // + this.mtHide.AutoSize = true; + this.mtHide.Checked = true; + this.mtHide.CheckState = System.Windows.Forms.CheckState.Checked; + this.mtHide.Depth = 0; + this.mtHide.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.mtHide.Location = new System.Drawing.Point(22, 58); + this.mtHide.Margin = new System.Windows.Forms.Padding(0); + this.mtHide.MouseLocation = new System.Drawing.Point(-1, -1); + this.mtHide.MouseState = MaterialSkin.MouseState.HOVER; + this.mtHide.Name = "mtHide"; + this.mtHide.Ripple = true; + this.mtHide.Size = new System.Drawing.Size(120, 30); + this.mtHide.TabIndex = 29; + this.mtHide.Text = "백그라운드 실행"; + this.mtHide.UseVisualStyleBackColor = true; + // + // lb2 + // + this.lb2.AutoSize = true; + this.lb2.Location = new System.Drawing.Point(277, 70); + this.lb2.Name = "lb2"; + this.lb2.Size = new System.Drawing.Size(37, 12); + this.lb2.TabIndex = 58; + this.lb2.Text = "98.9%"; + // + // pbUse + // + this.pbUse.Depth = 0; + this.pbUse.Location = new System.Drawing.Point(109, 74); + this.pbUse.MouseState = MaterialSkin.MouseState.HOVER; + this.pbUse.Name = "pbUse"; + this.pbUse.Size = new System.Drawing.Size(157, 5); + this.pbUse.TabIndex = 57; + this.pbUse.Value = 30; + // + // TabSelector + // + this.TabSelector.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TabSelector.BaseTabControl = this.TabMain; + this.TabSelector.Depth = 0; + this.TabSelector.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.TabSelector.Location = new System.Drawing.Point(-13, 61); + this.TabSelector.MouseState = MaterialSkin.MouseState.HOVER; + this.TabSelector.Name = "TabSelector"; + this.TabSelector.Size = new System.Drawing.Size(348, 28); + this.TabSelector.TabIndex = 19; + this.TabSelector.Text = "materialTabSelector2"; + // + // TabMain + // + this.TabMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TabMain.Controls.Add(this.Tab1); + this.TabMain.Controls.Add(this.Tab3); + this.TabMain.Depth = 0; + this.TabMain.Location = new System.Drawing.Point(2, 95); + this.TabMain.MouseState = MaterialSkin.MouseState.HOVER; + this.TabMain.Multiline = true; + this.TabMain.Name = "TabMain"; + this.TabMain.SelectedIndex = 0; + this.TabMain.Size = new System.Drawing.Size(318, 524); + this.TabMain.TabIndex = 20; + // + // Tab1 + // + this.Tab1.Controls.Add(this.memGap); + this.Tab1.Controls.Add(this.elTime); + this.Tab1.Controls.Add(this.tmemText); + this.Tab1.Controls.Add(this.stopTest); + this.Tab1.Controls.Add(this.passRate); + this.Tab1.Controls.Add(this.LView1); + this.Tab1.Controls.Add(this.lb2); + this.Tab1.Controls.Add(this.pbUse); + this.Tab1.Controls.Add(this.LB1); + this.Tab1.Controls.Add(this.goTest); + this.Tab1.Location = new System.Drawing.Point(4, 22); + this.Tab1.Name = "Tab1"; + this.Tab1.Padding = new System.Windows.Forms.Padding(3); + this.Tab1.Size = new System.Drawing.Size(310, 498); + this.Tab1.TabIndex = 5; + this.Tab1.Text = "테스트"; + this.Tab1.UseVisualStyleBackColor = true; + // + // memGap + // + this.memGap.AutoSize = true; + this.memGap.Location = new System.Drawing.Point(95, 325); + this.memGap.Name = "memGap"; + this.memGap.Size = new System.Drawing.Size(53, 12); + this.memGap.TabIndex = 64; + this.memGap.Text = "편차: 0%"; + // + // elTime + // + this.elTime.AutoSize = true; + this.elTime.Location = new System.Drawing.Point(175, 325); + this.elTime.Name = "elTime"; + this.elTime.Size = new System.Drawing.Size(129, 12); + this.elTime.TabIndex = 63; + this.elTime.Text = "경과: 00시간 00분 00초"; + // + // tmemText + // + this.tmemText.Location = new System.Drawing.Point(140, 19); + this.tmemText.Name = "tmemText"; + this.tmemText.Size = new System.Drawing.Size(41, 21); + this.tmemText.TabIndex = 61; + this.tmemText.Text = "3500"; + // + // stopTest + // + this.stopTest.AutoSize = true; + this.stopTest.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.stopTest.BackColor = System.Drawing.Color.Transparent; + this.stopTest.Cursor = System.Windows.Forms.Cursors.Hand; + this.stopTest.Depth = 0; + this.stopTest.Enabled = false; + this.stopTest.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.stopTest.ForeColor = System.Drawing.SystemColors.ControlText; + this.stopTest.Icon = null; + this.stopTest.Location = new System.Drawing.Point(184, 6); + this.stopTest.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.stopTest.MouseState = MaterialSkin.MouseState.HOVER; + this.stopTest.Name = "stopTest"; + this.stopTest.Primary = true; + this.stopTest.Size = new System.Drawing.Size(128, 36); + this.stopTest.TabIndex = 60; + this.stopTest.Text = "테스트 중단"; + this.stopTest.UseVisualStyleBackColor = false; + this.stopTest.Click += new System.EventHandler(this.stopTest_Click); + // + // passRate + // + this.passRate.AutoSize = true; + this.passRate.Location = new System.Drawing.Point(6, 325); + this.passRate.Name = "passRate"; + this.passRate.Size = new System.Drawing.Size(65, 12); + this.passRate.TabIndex = 62; + this.passRate.Text = "통과율: 0%"; + // + // LView1 + // + this.LView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.ColumnHeader3, + this.ColumnHeader4}); + this.LView1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.LView1.FullRowSelect = true; + this.LView1.GridLines = true; + this.LView1.HideSelection = false; + this.LView1.Location = new System.Drawing.Point(3, 93); + this.LView1.Name = "LView1"; + this.LView1.Size = new System.Drawing.Size(313, 229); + this.LView1.TabIndex = 59; + this.LView1.UseCompatibleStateImageBehavior = false; + this.LView1.View = System.Windows.Forms.View.Details; + // + // ColumnHeader3 + // + this.ColumnHeader3.Text = "통과율"; + this.ColumnHeader3.Width = 180; + // + // ColumnHeader4 + // + this.ColumnHeader4.Text = "오류"; + this.ColumnHeader4.Width = 65; + // + // LB1 + // + this.LB1.AutoSize = true; + this.LB1.Location = new System.Drawing.Point(6, 70); + this.LB1.Name = "LB1"; + this.LB1.Size = new System.Drawing.Size(97, 12); + this.LB1.TabIndex = 56; + this.LB1.Text = "사용중인 메모리:"; + // + // goTest + // + this.goTest.AutoSize = true; + this.goTest.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.goTest.Cursor = System.Windows.Forms.Cursors.Hand; + this.goTest.Depth = 0; + this.goTest.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.goTest.Icon = null; + this.goTest.Location = new System.Drawing.Point(6, 6); + this.goTest.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.goTest.MouseState = MaterialSkin.MouseState.HOVER; + this.goTest.Name = "goTest"; + this.goTest.Primary = true; + this.goTest.Size = new System.Drawing.Size(128, 36); + this.goTest.TabIndex = 9; + this.goTest.Text = "테스트 시작"; + this.goTest.UseVisualStyleBackColor = true; + this.goTest.Click += new System.EventHandler(this.goTest_Click); + // + // Tab3 + // + this.Tab3.Controls.Add(this.Panel1); + this.Tab3.Location = new System.Drawing.Point(4, 22); + this.Tab3.Name = "Tab3"; + this.Tab3.Padding = new System.Windows.Forms.Padding(3); + this.Tab3.Size = new System.Drawing.Size(310, 498); + this.Tab3.TabIndex = 7; + this.Tab3.Text = "설정"; + this.Tab3.UseVisualStyleBackColor = true; + // + // Panel1 + // + this.Panel1.AutoScroll = true; + this.Panel1.BackColor = System.Drawing.Color.White; + this.Panel1.Controls.Add(this.AutoHCIM); + this.Panel1.Controls.Add(this.yLLB); + this.Panel1.Controls.Add(this.lvlb); + this.Panel1.Controls.Add(this.transparent); + this.Panel1.Controls.Add(this.label1); + this.Panel1.Controls.Add(this.instant); + this.Panel1.Controls.Add(this.YAuto); + this.Panel1.Controls.Add(this.notAuto); + this.Panel1.Controls.Add(this.pdL2); + this.Panel1.Controls.Add(this.pdL1); + this.Panel1.Controls.Add(this.BatchY); + this.Panel1.Controls.Add(this.BatchX); + this.Panel1.Controls.Add(this.yLB1); + this.Panel1.Controls.Add(this.XLB1); + this.Panel1.Controls.Add(this.LB31); + this.Panel1.Controls.Add(this.closePC); + this.Panel1.Controls.Add(this.closeMem); + this.Panel1.Controls.Add(this.mdLB3); + this.Panel1.Controls.Add(this.OpenEM); + this.Panel1.Controls.Add(this.OpenPM); + this.Panel1.Controls.Add(this.musicRepeat); + this.Panel1.Controls.Add(this.dsLB1); + this.Panel1.Controls.Add(this.LB123); + this.Panel1.Controls.Add(this.capTime); + this.Panel1.Controls.Add(this.HCINText); + this.Panel1.Controls.Add(this.HCIMemory); + this.Panel1.Controls.Add(this.HCIMax); + this.Panel1.Controls.Add(this.lb15); + this.Panel1.Controls.Add(this.deLB0); + this.Panel1.Controls.Add(this.mtHide); + this.Panel1.Controls.Add(this.OpenSCAP); + this.Panel1.Controls.Add(this.tLB1); + this.Panel1.Controls.Add(this.capbyTime); + this.Panel1.Controls.Add(this.capAfter); + this.Panel1.Controls.Add(this.sLB2); + this.Panel1.Controls.Add(this.sLB1); + this.Panel1.Controls.Add(this.dLB2); + this.Panel1.Controls.Add(this.dLB1); + this.Panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.Panel1.Location = new System.Drawing.Point(3, 3); + this.Panel1.Name = "Panel1"; + this.Panel1.Size = new System.Drawing.Size(304, 492); + this.Panel1.TabIndex = 13; + // + // AutoHCIM + // + this.AutoHCIM.Depth = 0; + this.AutoHCIM.Hint = ""; + this.AutoHCIM.Location = new System.Drawing.Point(143, 121); + this.AutoHCIM.MaxLength = 6; + this.AutoHCIM.MouseState = MaterialSkin.MouseState.HOVER; + this.AutoHCIM.Name = "AutoHCIM"; + this.AutoHCIM.PasswordChar = '\0'; + this.AutoHCIM.SelectedText = ""; + this.AutoHCIM.SelectionLength = 0; + this.AutoHCIM.SelectionStart = 0; + this.AutoHCIM.Size = new System.Drawing.Size(38, 19); + this.AutoHCIM.TabIndex = 60; + this.AutoHCIM.TabStop = false; + this.AutoHCIM.Text = "275"; + this.AutoHCIM.UseSystemPasswordChar = false; + this.AutoHCIM.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.AutoHCIM_KeyPress); + // + // yLLB + // + this.yLLB.AutoSize = true; + this.yLLB.Location = new System.Drawing.Point(187, 122); + this.yLLB.Name = "yLLB"; + this.yLLB.Size = new System.Drawing.Size(64, 12); + this.yLLB.TabIndex = 59; + this.yLLB.Text = "MB 남기기"; + // + // lvlb + // + this.lvlb.AutoSize = true; + this.lvlb.Location = new System.Drawing.Point(12, 841); + this.lvlb.Name = "lvlb"; + this.lvlb.Size = new System.Drawing.Size(65, 12); + this.lvlb.TabIndex = 58; + this.lvlb.Text = "크기조절용"; + this.lvlb.Visible = false; + // + // transparent + // + this.transparent.Location = new System.Drawing.Point(123, 803); + this.transparent.Maximum = 109; + this.transparent.Minimum = 30; + this.transparent.Name = "transparent"; + this.transparent.Size = new System.Drawing.Size(140, 17); + this.transparent.TabIndex = 57; + this.transparent.Value = 90; + this.transparent.ValueChanged += new System.EventHandler(this.transparent_ValueChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(40, 805); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(73, 12); + this.label1.TabIndex = 55; + this.label1.Text = "투명도 조절:"; + // + // instant + // + this.instant.AutoSize = true; + this.instant.Checked = true; + this.instant.CheckState = System.Windows.Forms.CheckState.Checked; + this.instant.Depth = 0; + this.instant.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.instant.Location = new System.Drawing.Point(37, 747); + this.instant.Margin = new System.Windows.Forms.Padding(0); + this.instant.MouseLocation = new System.Drawing.Point(-1, -1); + this.instant.MouseState = MaterialSkin.MouseState.HOVER; + this.instant.Name = "instant"; + this.instant.Ripple = true; + this.instant.Size = new System.Drawing.Size(207, 30); + this.instant.TabIndex = 54; + this.instant.Text = "프로그램이 켜질 때 즉시 테스트"; + this.instant.UseVisualStyleBackColor = true; + // + // YAuto + // + this.YAuto.AutoSize = true; + this.YAuto.Checked = true; + this.YAuto.Cursor = System.Windows.Forms.Cursors.Hand; + this.YAuto.Depth = 0; + this.YAuto.Font = new System.Drawing.Font("Roboto", 10F); + this.YAuto.Location = new System.Drawing.Point(127, 88); + this.YAuto.Margin = new System.Windows.Forms.Padding(0); + this.YAuto.MouseLocation = new System.Drawing.Point(-1, -1); + this.YAuto.MouseState = MaterialSkin.MouseState.HOVER; + this.YAuto.Name = "YAuto"; + this.YAuto.Ripple = true; + this.YAuto.Size = new System.Drawing.Size(59, 30); + this.YAuto.TabIndex = 52; + this.YAuto.TabStop = true; + this.YAuto.Text = "자동"; + this.YAuto.UseVisualStyleBackColor = true; + this.YAuto.Click += new System.EventHandler(this.YAuto_Click); + // + // notAuto + // + this.notAuto.AutoSize = true; + this.notAuto.Cursor = System.Windows.Forms.Cursors.Hand; + this.notAuto.Depth = 0; + this.notAuto.Font = new System.Drawing.Font("Roboto", 10F); + this.notAuto.Location = new System.Drawing.Point(22, 88); + this.notAuto.Margin = new System.Windows.Forms.Padding(0); + this.notAuto.MouseLocation = new System.Drawing.Point(-1, -1); + this.notAuto.MouseState = MaterialSkin.MouseState.HOVER; + this.notAuto.Name = "notAuto"; + this.notAuto.Ripple = true; + this.notAuto.Size = new System.Drawing.Size(59, 30); + this.notAuto.TabIndex = 51; + this.notAuto.Text = "수동"; + this.notAuto.UseVisualStyleBackColor = true; + this.notAuto.Click += new System.EventHandler(this.notAuto_Click); + // + // pdL2 + // + this.pdL2.AutoSize = true; + this.pdL2.Location = new System.Drawing.Point(172, 725); + this.pdL2.Name = "pdL2"; + this.pdL2.Size = new System.Drawing.Size(29, 12); + this.pdL2.TabIndex = 50; + this.pdL2.Text = "픽셀"; + // + // pdL1 + // + this.pdL1.AutoSize = true; + this.pdL1.Location = new System.Drawing.Point(172, 700); + this.pdL1.Name = "pdL1"; + this.pdL1.Size = new System.Drawing.Size(29, 12); + this.pdL1.TabIndex = 49; + this.pdL1.Text = "픽셀"; + // + // BatchY + // + this.BatchY.Depth = 0; + this.BatchY.Hint = ""; + this.BatchY.Location = new System.Drawing.Point(147, 725); + this.BatchY.MaxLength = 3; + this.BatchY.MouseState = MaterialSkin.MouseState.HOVER; + this.BatchY.Name = "BatchY"; + this.BatchY.PasswordChar = '\0'; + this.BatchY.SelectedText = ""; + this.BatchY.SelectionLength = 0; + this.BatchY.SelectionStart = 0; + this.BatchY.Size = new System.Drawing.Size(23, 19); + this.BatchY.TabIndex = 48; + this.BatchY.TabStop = false; + this.BatchY.Text = "230"; + this.BatchY.UseSystemPasswordChar = false; + this.BatchY.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.BatchY_KeyPress); + // + // BatchX + // + this.BatchX.Depth = 0; + this.BatchX.Hint = ""; + this.BatchX.Location = new System.Drawing.Point(147, 700); + this.BatchX.MaxLength = 3; + this.BatchX.MouseState = MaterialSkin.MouseState.HOVER; + this.BatchX.Name = "BatchX"; + this.BatchX.PasswordChar = '\0'; + this.BatchX.SelectedText = ""; + this.BatchX.SelectionLength = 0; + this.BatchX.SelectionStart = 0; + this.BatchX.Size = new System.Drawing.Size(23, 19); + this.BatchX.TabIndex = 47; + this.BatchX.TabStop = false; + this.BatchX.Text = "240"; + this.BatchX.UseSystemPasswordChar = false; + this.BatchX.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.BatchX_KeyPress); + // + // yLB1 + // + this.yLB1.AutoSize = true; + this.yLB1.Location = new System.Drawing.Point(40, 725); + this.yLB1.Name = "yLB1"; + this.yLB1.Size = new System.Drawing.Size(101, 12); + this.yLB1.TabIndex = 46; + this.yLB1.Text = "창 Y축 배치 간격:"; + // + // XLB1 + // + this.XLB1.AutoSize = true; + this.XLB1.Location = new System.Drawing.Point(40, 700); + this.XLB1.Name = "XLB1"; + this.XLB1.Size = new System.Drawing.Size(101, 12); + this.XLB1.TabIndex = 45; + this.XLB1.Text = "창 X축 배치 간격:"; + // + // LB31 + // + this.LB31.AutoSize = true; + this.LB31.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.LB31.ForeColor = System.Drawing.Color.Blue; + this.LB31.Location = new System.Drawing.Point(15, 670); + this.LB31.Name = "LB31"; + this.LB31.Size = new System.Drawing.Size(42, 21); + this.LB31.TabIndex = 44; + this.LB31.Text = "기타"; + // + // closePC + // + this.closePC.AutoSize = true; + this.closePC.Depth = 0; + this.closePC.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.closePC.Location = new System.Drawing.Point(32, 600); + this.closePC.Margin = new System.Windows.Forms.Padding(0); + this.closePC.MouseLocation = new System.Drawing.Point(-1, -1); + this.closePC.MouseState = MaterialSkin.MouseState.HOVER; + this.closePC.Name = "closePC"; + this.closePC.Ripple = true; + this.closePC.Size = new System.Drawing.Size(75, 30); + this.closePC.TabIndex = 43; + this.closePC.Text = "PC 종료"; + this.closePC.UseVisualStyleBackColor = true; + this.closePC.Click += new System.EventHandler(this.closePC_Click); + // + // closeMem + // + this.closeMem.AutoSize = true; + this.closeMem.Checked = true; + this.closeMem.CheckState = System.Windows.Forms.CheckState.Checked; + this.closeMem.Depth = 0; + this.closeMem.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.closeMem.Location = new System.Drawing.Point(32, 570); + this.closeMem.Margin = new System.Windows.Forms.Padding(0); + this.closeMem.MouseLocation = new System.Drawing.Point(-1, -1); + this.closeMem.MouseState = MaterialSkin.MouseState.HOVER; + this.closeMem.Name = "closeMem"; + this.closeMem.Ripple = true; + this.closeMem.Size = new System.Drawing.Size(108, 30); + this.closeMem.TabIndex = 42; + this.closeMem.Text = "멤테스트 종료"; + this.closeMem.UseVisualStyleBackColor = true; + this.closeMem.Click += new System.EventHandler(this.closeMem_Click); + // + // mdLB3 + // + this.mdLB3.AutoSize = true; + this.mdLB3.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.mdLB3.ForeColor = System.Drawing.Color.Blue; + this.mdLB3.Location = new System.Drawing.Point(10, 545); + this.mdLB3.Name = "mdLB3"; + this.mdLB3.Size = new System.Drawing.Size(94, 21); + this.mdLB3.TabIndex = 41; + this.mdLB3.Text = "마지막 행동"; + // + // OpenEM + // + this.OpenEM.AutoSize = true; + this.OpenEM.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.OpenEM.Cursor = System.Windows.Forms.Cursors.Hand; + this.OpenEM.Depth = 0; + this.OpenEM.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.OpenEM.Icon = null; + this.OpenEM.Location = new System.Drawing.Point(37, 474); + this.OpenEM.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.OpenEM.MouseState = MaterialSkin.MouseState.HOVER; + this.OpenEM.Name = "OpenEM"; + this.OpenEM.Primary = true; + this.OpenEM.Size = new System.Drawing.Size(152, 36); + this.OpenEM.TabIndex = 40; + this.OpenEM.Text = "오류 음악파일 경로설정"; + this.OpenEM.UseVisualStyleBackColor = true; + this.OpenEM.Click += new System.EventHandler(this.OpenEM_Click); + // + // OpenPM + // + this.OpenPM.AutoSize = true; + this.OpenPM.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.OpenPM.Cursor = System.Windows.Forms.Cursors.Hand; + this.OpenPM.Depth = 0; + this.OpenPM.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.OpenPM.Icon = null; + this.OpenPM.Location = new System.Drawing.Point(37, 435); + this.OpenPM.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.OpenPM.MouseState = MaterialSkin.MouseState.HOVER; + this.OpenPM.Name = "OpenPM"; + this.OpenPM.Primary = true; + this.OpenPM.Size = new System.Drawing.Size(152, 36); + this.OpenPM.TabIndex = 39; + this.OpenPM.Text = "통과 음악파일 경로설정"; + this.OpenPM.UseVisualStyleBackColor = true; + this.OpenPM.Click += new System.EventHandler(this.OpenPM_Click); + // + // musicRepeat + // + this.musicRepeat.Depth = 0; + this.musicRepeat.Hint = ""; + this.musicRepeat.Location = new System.Drawing.Point(37, 407); + this.musicRepeat.MaxLength = 3; + this.musicRepeat.MouseState = MaterialSkin.MouseState.HOVER; + this.musicRepeat.Name = "musicRepeat"; + this.musicRepeat.PasswordChar = '\0'; + this.musicRepeat.SelectedText = ""; + this.musicRepeat.SelectionLength = 0; + this.musicRepeat.SelectionStart = 0; + this.musicRepeat.Size = new System.Drawing.Size(23, 19); + this.musicRepeat.TabIndex = 38; + this.musicRepeat.TabStop = false; + this.musicRepeat.Text = "3"; + this.musicRepeat.UseSystemPasswordChar = false; + this.musicRepeat.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.musicRepeat_KeyPress); + // + // dsLB1 + // + this.dsLB1.AutoSize = true; + this.dsLB1.Location = new System.Drawing.Point(64, 407); + this.dsLB1.Name = "dsLB1"; + this.dsLB1.Size = new System.Drawing.Size(92, 12); + this.dsLB1.TabIndex = 37; + this.dsLB1.Text = "회 재생 (0~999)"; + // + // LB123 + // + this.LB123.AutoSize = true; + this.LB123.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.LB123.ForeColor = System.Drawing.Color.Blue; + this.LB123.Location = new System.Drawing.Point(10, 376); + this.LB123.Name = "LB123"; + this.LB123.Size = new System.Drawing.Size(78, 21); + this.LB123.TabIndex = 36; + this.LB123.Text = "소리 알림"; + // + // capTime + // + this.capTime.Depth = 0; + this.capTime.Enabled = false; + this.capTime.Hint = ""; + this.capTime.Location = new System.Drawing.Point(143, 267); + this.capTime.MaxLength = 3; + this.capTime.MouseState = MaterialSkin.MouseState.HOVER; + this.capTime.Name = "capTime"; + this.capTime.PasswordChar = '\0'; + this.capTime.SelectedText = ""; + this.capTime.SelectionLength = 0; + this.capTime.SelectionStart = 0; + this.capTime.Size = new System.Drawing.Size(25, 19); + this.capTime.TabIndex = 35; + this.capTime.TabStop = false; + this.capTime.Text = "60"; + this.capTime.UseSystemPasswordChar = false; + this.capTime.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.capTime_KeyPress); + // + // HCINText + // + this.HCINText.Depth = 0; + this.HCINText.Enabled = false; + this.HCINText.Hint = ""; + this.HCINText.Location = new System.Drawing.Point(37, 143); + this.HCINText.MaxLength = 3; + this.HCINText.MouseState = MaterialSkin.MouseState.HOVER; + this.HCINText.Name = "HCINText"; + this.HCINText.PasswordChar = '\0'; + this.HCINText.SelectedText = ""; + this.HCINText.SelectionLength = 0; + this.HCINText.SelectionStart = 0; + this.HCINText.Size = new System.Drawing.Size(38, 19); + this.HCINText.TabIndex = 34; + this.HCINText.TabStop = false; + this.HCINText.Text = "8"; + this.HCINText.UseSystemPasswordChar = false; + this.HCINText.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.HCINText_KeyPress); + // + // HCIMemory + // + this.HCIMemory.Depth = 0; + this.HCIMemory.Enabled = false; + this.HCIMemory.Hint = ""; + this.HCIMemory.Location = new System.Drawing.Point(36, 122); + this.HCIMemory.MaxLength = 4; + this.HCIMemory.MouseState = MaterialSkin.MouseState.HOVER; + this.HCIMemory.Name = "HCIMemory"; + this.HCIMemory.PasswordChar = '\0'; + this.HCIMemory.SelectedText = ""; + this.HCIMemory.SelectionLength = 0; + this.HCIMemory.SelectionStart = 0; + this.HCIMemory.Size = new System.Drawing.Size(38, 19); + this.HCIMemory.TabIndex = 33; + this.HCIMemory.TabStop = false; + this.HCIMemory.Text = "1750"; + this.HCIMemory.UseSystemPasswordChar = false; + this.HCIMemory.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.HCIMemory_KeyPress); + // + // HCIMax + // + this.HCIMax.Depth = 0; + this.HCIMax.Hint = ""; + this.HCIMax.Location = new System.Drawing.Point(71, 36); + this.HCIMax.MaxLength = 4; + this.HCIMax.MouseState = MaterialSkin.MouseState.HOVER; + this.HCIMax.Name = "HCIMax"; + this.HCIMax.PasswordChar = '\0'; + this.HCIMax.SelectedText = ""; + this.HCIMax.SelectionLength = 0; + this.HCIMax.SelectionStart = 0; + this.HCIMax.Size = new System.Drawing.Size(30, 19); + this.HCIMax.TabIndex = 32; + this.HCIMax.TabStop = false; + this.HCIMax.Text = "400"; + this.HCIMax.UseSystemPasswordChar = false; + this.HCIMax.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.HCIMax_KeyPress); + // + // lb15 + // + this.lb15.AutoSize = true; + this.lb15.Location = new System.Drawing.Point(102, 36); + this.lb15.Name = "lb15"; + this.lb15.Size = new System.Drawing.Size(15, 12); + this.lb15.TabIndex = 31; + this.lb15.Text = "%"; + // + // deLB0 + // + this.deLB0.AutoSize = true; + this.deLB0.Location = new System.Drawing.Point(20, 36); + this.deLB0.Name = "deLB0"; + this.deLB0.Size = new System.Drawing.Size(45, 12); + this.deLB0.TabIndex = 30; + this.deLB0.Text = "목표치:"; + // + // OpenSCAP + // + this.OpenSCAP.AutoSize = true; + this.OpenSCAP.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.OpenSCAP.Cursor = System.Windows.Forms.Cursors.Hand; + this.OpenSCAP.Depth = 0; + this.OpenSCAP.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.OpenSCAP.Icon = null; + this.OpenSCAP.Location = new System.Drawing.Point(27, 297); + this.OpenSCAP.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6); + this.OpenSCAP.MouseState = MaterialSkin.MouseState.HOVER; + this.OpenSCAP.Name = "OpenSCAP"; + this.OpenSCAP.Primary = true; + this.OpenSCAP.Size = new System.Drawing.Size(123, 36); + this.OpenSCAP.TabIndex = 28; + this.OpenSCAP.Text = "저장폴더 경로설정"; + this.OpenSCAP.UseVisualStyleBackColor = true; + this.OpenSCAP.Click += new System.EventHandler(this.OpenSCAP_Click); + // + // tLB1 + // + this.tLB1.AutoSize = true; + this.tLB1.Enabled = false; + this.tLB1.Location = new System.Drawing.Point(169, 267); + this.tLB1.Name = "tLB1"; + this.tLB1.Size = new System.Drawing.Size(17, 12); + this.tLB1.TabIndex = 27; + this.tLB1.Text = "분"; + // + // capbyTime + // + this.capbyTime.AutoSize = true; + this.capbyTime.Depth = 0; + this.capbyTime.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.capbyTime.Location = new System.Drawing.Point(22, 261); + this.capbyTime.Margin = new System.Windows.Forms.Padding(0); + this.capbyTime.MouseLocation = new System.Drawing.Point(-1, -1); + this.capbyTime.MouseState = MaterialSkin.MouseState.HOVER; + this.capbyTime.Name = "capbyTime"; + this.capbyTime.Ripple = true; + this.capbyTime.Size = new System.Drawing.Size(91, 30); + this.capbyTime.TabIndex = 25; + this.capbyTime.Text = "주기적으로"; + this.capbyTime.UseVisualStyleBackColor = true; + this.capbyTime.Click += new System.EventHandler(this.capbyTime_Click); + // + // capAfter + // + this.capAfter.AutoSize = true; + this.capAfter.Checked = true; + this.capAfter.CheckState = System.Windows.Forms.CheckState.Checked; + this.capAfter.Depth = 0; + this.capAfter.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.capAfter.Location = new System.Drawing.Point(22, 231); + this.capAfter.Margin = new System.Windows.Forms.Padding(0); + this.capAfter.MouseLocation = new System.Drawing.Point(-1, -1); + this.capAfter.MouseState = MaterialSkin.MouseState.HOVER; + this.capAfter.Name = "capAfter"; + this.capAfter.Ripple = true; + this.capAfter.Size = new System.Drawing.Size(71, 30); + this.capAfter.TabIndex = 23; + this.capAfter.Text = "끝날 때"; + this.capAfter.UseVisualStyleBackColor = true; + // + // sLB2 + // + this.sLB2.AutoSize = true; + this.sLB2.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sLB2.ForeColor = System.Drawing.Color.Blue; + this.sLB2.Location = new System.Drawing.Point(14, 200); + this.sLB2.Name = "sLB2"; + this.sLB2.Size = new System.Drawing.Size(74, 21); + this.sLB2.TabIndex = 22; + this.sLB2.Text = "스크린샷"; + // + // sLB1 + // + this.sLB1.AutoSize = true; + this.sLB1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sLB1.ForeColor = System.Drawing.Color.Blue; + this.sLB1.Location = new System.Drawing.Point(6, 6); + this.sLB1.Name = "sLB1"; + this.sLB1.Size = new System.Drawing.Size(58, 21); + this.sLB1.TabIndex = 21; + this.sLB1.Text = "테스트"; + // + // dLB2 + // + this.dLB2.AutoSize = true; + this.dLB2.Enabled = false; + this.dLB2.Location = new System.Drawing.Point(75, 143); + this.dLB2.Name = "dLB2"; + this.dLB2.Size = new System.Drawing.Size(17, 12); + this.dLB2.TabIndex = 20; + this.dLB2.Text = "개"; + // + // dLB1 + // + this.dLB1.AutoSize = true; + this.dLB1.Enabled = false; + this.dLB1.Location = new System.Drawing.Point(75, 122); + this.dLB1.Name = "dLB1"; + this.dLB1.Size = new System.Drawing.Size(24, 12); + this.dLB1.TabIndex = 19; + this.dLB1.Text = "MB"; + // + // OpenFile + // + this.OpenFile.FileName = "OpenFile"; + this.OpenFile.Title = "알림에 사용할 음악파일 선택"; + // + // tTimer + // + this.tTimer.Interval = 1000; + this.tTimer.Tick += new System.EventHandler(this.tTimer_Tick); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(322, 625); + this.Controls.Add(this.goblog); + this.Controls.Add(this.TabSelector); + this.Controls.Add(this.TabMain); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(1300, 1300); + this.MinimumSize = new System.Drawing.Size(322, 250); + this.Name = "MainForm"; + this.Opacity = 0.9D; + this.Text = "EasyHCI 1.0.7"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); + this.Load += new System.EventHandler(this.MainForm_Load); + this.Resize += new System.EventHandler(this.MainForm_Resize); + this.TabMain.ResumeLayout(false); + this.Tab1.ResumeLayout(false); + this.Tab1.PerformLayout(); + this.Tab3.ResumeLayout(false); + this.Panel1.ResumeLayout(false); + this.Panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.ToolTip Tip1; + private MaterialSkin.Controls.MaterialTabSelector TabSelector; + private MaterialSkin.Controls.MaterialTabControl TabMain; + private System.Windows.Forms.TabPage Tab1; + private System.Windows.Forms.TabPage Tab3; + private System.Windows.Forms.LinkLabel goblog; + private MaterialSkin.Controls.MaterialRaisedButton goTest; + internal System.Windows.Forms.ListView LView1; + internal System.Windows.Forms.ColumnHeader ColumnHeader3; + internal System.Windows.Forms.ColumnHeader ColumnHeader4; + private System.Windows.Forms.Label lb2; + private MaterialSkin.Controls.MaterialProgressBar pbUse; + private System.Windows.Forms.Label LB1; + private MaterialSkin.Controls.MaterialRaisedButton stopTest; + private System.Windows.Forms.TextBox tmemText; + private System.Windows.Forms.Label passRate; + private System.Windows.Forms.Label elTime; + private System.Windows.Forms.Panel Panel1; + private MaterialSkin.Controls.MaterialRaisedButton OpenSCAP; + private System.Windows.Forms.Label tLB1; + private MaterialSkin.Controls.MaterialCheckBox capbyTime; + private MaterialSkin.Controls.MaterialCheckBox capAfter; + private System.Windows.Forms.Label sLB2; + private System.Windows.Forms.Label sLB1; + private System.Windows.Forms.Label dLB2; + private System.Windows.Forms.Label dLB1; + private MaterialSkin.Controls.MaterialCheckBox mtHide; + private System.Windows.Forms.Label deLB0; + private System.Windows.Forms.Label lb15; + private MaterialSkin.Controls.MaterialSingleLineTextField HCIMax; + private MaterialSkin.Controls.MaterialSingleLineTextField HCIMemory; + private MaterialSkin.Controls.MaterialSingleLineTextField HCINText; + private MaterialSkin.Controls.MaterialSingleLineTextField capTime; + internal System.Windows.Forms.FolderBrowserDialog OpenFolder; + internal System.Windows.Forms.OpenFileDialog OpenFile; + private System.Windows.Forms.Label LB123; + private MaterialSkin.Controls.MaterialSingleLineTextField musicRepeat; + private System.Windows.Forms.Label dsLB1; + private MaterialSkin.Controls.MaterialRaisedButton OpenEM; + private MaterialSkin.Controls.MaterialRaisedButton OpenPM; + private System.Windows.Forms.Label pdL2; + private System.Windows.Forms.Label pdL1; + private MaterialSkin.Controls.MaterialSingleLineTextField BatchY; + private MaterialSkin.Controls.MaterialSingleLineTextField BatchX; + private System.Windows.Forms.Label yLB1; + private System.Windows.Forms.Label XLB1; + private System.Windows.Forms.Label LB31; + private MaterialSkin.Controls.MaterialCheckBox closePC; + private MaterialSkin.Controls.MaterialCheckBox closeMem; + private System.Windows.Forms.Label mdLB3; + private MaterialSkin.Controls.MaterialRadioButton notAuto; + private MaterialSkin.Controls.MaterialRadioButton YAuto; + private System.Windows.Forms.Timer tTimer; + private System.Windows.Forms.Label memGap; + private MaterialSkin.Controls.MaterialCheckBox instant; + private System.Windows.Forms.HScrollBar transparent; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lvlb; + private MaterialSkin.Controls.MaterialSingleLineTextField AutoHCIM; + private System.Windows.Forms.Label yLLB; + } +} + diff --git a/MainForm.cs b/MainForm.cs new file mode 100644 index 0000000..1a6a552 --- /dev/null +++ b/MainForm.cs @@ -0,0 +1,1381 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using System.Diagnostics; +using System.IO; +using Microsoft.Win32; + +using System.Management; +using MaterialSkin; +using System.Runtime.InteropServices; +using System.Drawing.Imaging; + + + + + +namespace EasyHCI +{ + public partial class MainForm : MaterialSkin.Controls.MaterialForm + { + + //Win32 API + [DllImport("user32")] + public static extern IntPtr FindWindow(String lpClassName, String lpWindowName); + [DllImport("user32.dll")] + public static extern IntPtr FindWindowEx(IntPtr parentHWnd, IntPtr childAfterHWnd, string className, string windowTitle); + [DllImport("user32")] + public static extern Int32 SendMessage(IntPtr hWnd, Int32 uMsg, IntPtr WParam, IntPtr LParam); + [DllImport("user32")] + public static extern Int32 PostMessage(IntPtr hWnd, Int32 uMsg, IntPtr WParam, IntPtr LParam); + [DllImport("user32")] + public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); + [DllImport("user32")] + public static extern int MoveWindow(IntPtr hwnd, int x, int y, int nWidth, int nHeight, bool bRepaint); + [DllImport("user32")] + public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); + [DllImport("User32.dll")] + public static extern Int32 SetForegroundWindow(int hWnd); + [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] + public static extern IntPtr GetDesktopWindow(); + [DllImport("gdi32.dll")] + private static extern int GetDeviceCaps(IntPtr hdc, int nIndex); + + + //API에 사용될 상수 + private const int CLICK = 0x00F5; + private const int WM_GetText = 0x000D; + private const int WM_SetText = 0X000C; + private const int Sw_Hide = 0; + private const int Sw_Show = 5; + + + + + //공용 변수들 + private byte Gc1 = 0, hour, minute, second; + private ushort CPUThreads = 0, ScreenX = 0, ScreenY = 0, hcinum = 0, hcimem = 0, errNum = 0; + private uint totalMemMB = 0, freeMemMB = 0; + private string capPath, sucPath, errPath, musicURL; + private readonly string[] memExcept = new string[] { "csrss", "dasHost", "dllHost", "dwm", "explorer", "fontdrvhost", "audiodg", "lsass", "MsMpEng", "NisSrv", "Registry", "ntoskrnl", "RuntimeBroker", "SecurityHealthService", "services", "SgrmBroker", "sihost", "svchost", "smss", "spoolsv", "System", "taskhostw", "winlogon", "wininit", "Taskmgr", "Idle" }; + private bool endProgram = false, endMonitoring = false, activateTimer = false, errorIncreased = false; + private IntPtr[] hci, hcicoverage, startbtn, exitbtn; + public Process[] hciProcess; + + private Thread StartTestThread, MemStatusThread, musicThread; + + StringBuilder NewText1 = new StringBuilder(null, 40), NewText2 = new StringBuilder(null, 40), ErrMsg = new StringBuilder(null), finalRecord = new StringBuilder(null), tSetting = new StringBuilder(null); + double minValue = 0, maxValue = 0; + byte capHour = (byte)DateTime.Now.Hour, capMinute = (byte)DateTime.Now.Minute; + + + + + + + + + + + + + + + + + + // // + // // + // 프로젝트 시작 // + // // + // // + public MainForm() + { + InitializeComponent(); + + var materialSkinManager = MaterialSkinManager.Instance; + materialSkinManager.AddFormToManage(this); + materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; + materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo500, Primary.Indigo700, Primary.Indigo100, Accent.Pink200, TextShade.WHITE); + } //스킨! + + + + protected override CreateParams CreateParams + { //그림자 생성! + get + { + CreateParams crp = base.CreateParams; + crp.ClassStyle = 0x00020000; + return crp; + } + } + + + + + + + + + // // + // 테스트 시작 함수 // + // // + private void StartTest() + { + ushort WindowX = 1, WindowY = 1, tmem = 0; + bool findMem = false; + IntPtr Hwnd1 = IntPtr.Zero, Hwnd2 = IntPtr.Zero; + StringBuilder canAllocate = new StringBuilder(null, 20); + IntPtr[] hci = new IntPtr[1], hcicoverage = new IntPtr[1], startbtn = new IntPtr[1], exitbtn = new IntPtr[1]; + Process[] hciProcess = new Process[1]; + Process tempProcess = Process.GetCurrentProcess(); + + + + // // + // 자동 설정 // + // // + if (!notAuto.Checked) + { + // 시작하기 전에 메모리 값에 따라 임시최대값 줄여서 작업량 줄이기 + if ((freeMemMB / CPUThreads) <= 2000) + { tmem = 2030; } + else if ((freeMemMB / CPUThreads) > 2000 && (freeMemMB / CPUThreads) < 2501) + { tmem = 2530; } + else if ((freeMemMB / CPUThreads) > 2500 && (freeMemMB / CPUThreads) < 3001) + { tmem = 3030; } + else + { tmem = 3530; } + + while (!findMem) //최대 메모리값을 찾기 전까지 무한루프 + { + Hwnd1 = IntPtr.Zero; Hwnd2 = IntPtr.Zero; hci[0] = IntPtr.Zero; + tmem -= 25; //최대메모리가 몇인지 25MB씩 감소시켜가며 테스트 + + //멤테스트 실행 + tempProcess = Process.Start(Application.StartupPath + "\\Resources\\memtest.exe"); + + while (Hwnd1 == IntPtr.Zero) + { //첫 알림 나올 때까지 탐색 + Hwnd1 = FindWindow("#32770", "어서오세요!"); + Thread.Sleep(3); + } + + //첫 알림창 나오면 버튼 찾아서 클릭 + Hwnd2 = FindWindowEx(Hwnd1, IntPtr.Zero, "Button", "확인"); + SendMessage(Hwnd2, CLICK, 0, 0); + + //메인 화면 및 필요한 모든 윈도우(창)의 핸들값 탐색 + while (hci[0] == IntPtr.Zero) + { + hci[0] = tempProcess.MainWindowHandle; + ShowWindow(hci[0], Sw_Hide); //안 지저분하게 메인창은 숨기기 + Thread.Sleep(3); + } + + startbtn[0] = FindWindowEx(hci[0], IntPtr.Zero, "Button", "테스트 시작"); + exitbtn[0] = FindWindowEx(hci[0], IntPtr.Zero, "Button", "테스트 중단"); + hcicoverage[0] = FindWindowEx(hci[0], IntPtr.Zero, "Static", "무료 버전"); + IntPtr hTextBox = FindWindowEx(hci[0], IntPtr.Zero, "Edit", null); + + //텍스트에 숫자 입력하고 테스트 시작 + tmemText.Invoke((MethodInvoker)delegate () + { tmemText.Text = tmem.ToString(); }); + IntPtr textPtr = Marshal.AllocHGlobal(8); + tmemText.Invoke((MethodInvoker)delegate () + { SendMessage(tmemText.Handle, WM_GetText, new IntPtr(8), textPtr); }); + String text1 = Marshal.PtrToStringUni(textPtr, 8); + SendMessage(hTextBox, WM_SetText, IntPtr.Zero, textPtr); + Marshal.FreeHGlobal(textPtr); + + + PostMessage(startbtn[0], CLICK, IntPtr.Zero, IntPtr.Zero); // 테스트 시작 + canAllocate.Clear(); + canAllocate.Append("무료 버전"); + + + // 할당불가 하단 바 찾기 + while (canAllocate.ToString() == "무료 버전") + { + GetWindowText(hcicoverage[0], canAllocate, 20); + Thread.Sleep(3); + } + + + if (canAllocate.ToString() == "테스트 준비 중...") // 값 찾기 성공 시 + { findMem = true; } + else if (canAllocate.ToString() == tmem + " MB 할당 불가!") //할당불가 시 + { findMem = false; } + + tempProcess.Kill(); + tempProcess.Dispose(); + } + + + // // + // 자동설정- 최대메모리 탐색완료. tmem 변수에 저장됨. // + // + + // // + // 실행 정보 계산 시작 // + // // + hcimem = (ushort)((freeMemMB - Convert.ToUInt32(AutoHCIM.Text)) / CPUThreads); + hcinum = CPUThreads; + while (hcimem > tmem) + { + hcinum++; + hcimem = (ushort)((freeMemMB - Convert.ToUInt32(AutoHCIM.Text)) / hcinum); + } + } + + else + { // 수동설정: 값 그대로 복사 // + hcinum = Convert.ToUInt16(HCINText.Text); + hcimem = Convert.ToUInt16(HCIMemory.Text); + } + + + + + + // 배열변수들 실행할 멤테 개수만큼 초기화 // + hci = new IntPtr[hcinum]; hcicoverage = new IntPtr[hcinum]; startbtn = new IntPtr[hcinum]; exitbtn = new IntPtr[hcinum]; + hciProcess = new Process[hcinum]; + + //휴식 + Thread.Sleep(100); + + for (int i1=0; i1 ScreenX) //멤테 창이 화면 오른쪽 끝에서 가릴 것 같으면 + { + WindowX = 1; //X값 1로 초기화 + WindowY = (ushort)(WindowY + Convert.ToUInt16(BatchY.Text)); //Y값 다음줄로 넘기기 + } + + if (WindowY + 235 > ScreenY) //Y축조차 다 써서 더이상 화면에 남은 공간이 없다면 + { + WindowX = 1; WindowY = 1; //값 초기화하고 첫 위치부터 다시 깔기 + } + + + // 메모리값 멤테 텍스트칸에 옮겨적기// + tmemText.Invoke((MethodInvoker)delegate () + { tmemText.Text = hcimem.ToString(); }); + IntPtr textPtr = Marshal.AllocHGlobal(8); + tmemText.Invoke((MethodInvoker)delegate () + {SendMessage(tmemText.Handle, WM_GetText, new IntPtr(8), textPtr); }); + String text1 = Marshal.PtrToStringUni(textPtr, 8); + SendMessage(hTextBox, WM_SetText, IntPtr.Zero, textPtr); + Marshal.FreeHGlobal(textPtr); + + // 테스트 시작하기 // + PostMessage(startbtn[i1], CLICK, IntPtr.Zero, IntPtr.Zero); + } + + + ushort remAlarmCount = 0; //알림창제거 횟수 초기화 + while (remAlarmCount < hcinum) + { //멤테 개수만큼 알림창제거 무한반복. + Hwnd1 = IntPtr.Zero; //변수 재활용 + Hwnd1 = FindWindow("#32770", "테스트 시작합니다."); + + if (Hwnd1 != IntPtr.Zero) //알림창 발견 시 + { + Hwnd2 = FindWindowEx(Hwnd1, IntPtr.Zero, "Button", "확인"); + SendMessage(Hwnd2, CLICK, 0, 0); + remAlarmCount++; + Thread.Sleep(3); + } + Thread.Sleep(20); + } + + //프로그램을 맨 앞으로 가져오기 + this.Invoke((MethodInvoker)delegate () {SetForegroundWindow((int)this.Handle);}); + + + + + + // 2초 휴식 후 혹시나 남아있을 알림창 1개 있으면 제거 // + Thread.Sleep(2000); + Hwnd1 = FindWindow("#32770", "테스트 시작합니다."); + Hwnd2 = FindWindowEx(Hwnd1, IntPtr.Zero, "Button", "확인"); + SendMessage(Hwnd2, CLICK, 0, 0); + + goblog.Text = "Github: bumju08"; + + + + + + + + + + + + + // ////////////// // + // // + // 모니터링 시작 // + // // + // ////////////// // + + + + errorIncreased = false; + errNum = 0; minValue = 0; maxValue = 0; + capHour = (byte)DateTime.Now.Hour; capMinute = (byte)DateTime.Now.Minute; + + + //타이머 시작 + activateTimer = true; + + + + // // + // 모니터링 // + // // + while (true) + { + errorIncreased = false; + LView1.Invoke((MethodInvoker)delegate () + {LView1.BeginUpdate(); //리스트뷰를 잠시 멈춤 + }); + for (int i1 = 0; i1 < hcinum; i1++) + { //멤테 개수만큼 반복 + NewText1.Clear(); NewText2.Clear(); //문자열 초기화 + + GetWindowText(hcicoverage[i1], NewText1, 40); //하단 바 읽어서 변수1에 저장(통과율/에러) + if (NewText1.ToString() == "메모리 할당됨" || NewText1.ToString() == null) { i1++; } //만약 읽어왔는데 아직 시작 안됐거나 창 꺼졌으면 다음멤테로 패스 + else + {//아니라면 읽어서 리스트뷰에 작성 + NewText1.Remove(0, 7); //변수1 앞부분 제거 + NewText2.Append(NewText1.ToString()); //변수2에 읽은 값의 뒷부분 복사 + + NewText2.Remove(NewText2.ToString().IndexOf("개") + 1, 6); //변수2 에러수치 뒷부분 삭제 + NewText2.Remove(0, NewText2.ToString().IndexOf(",") + 2); // 변수2 앞부분 삭제 + + NewText1.Remove(NewText1.ToString().IndexOf("%"), 14); //변수1 숫자만 남기고 뒷부분 다 삭제 + LView1.Invoke((MethodInvoker)delegate () { + LView1.Items.RemoveAt(i1); + LView1.Items.Insert(i1, new ListViewItem(new string[] { NewText1.ToString() + "%", NewText2.ToString() })); //원하는 순번에 통과율 추가 + }); + + if (NewText2.ToString() != "0개") + { //오류가 발생한 경우 + errorIncreased = true; errNum = (ushort)(i1 + 1); // 오류 발생한 멤테 순번 기록 + } + + if (i1 == 0) { minValue = Convert.ToDouble(NewText1.ToString()); } // 첫항목이면 값 옮겨놓고 비교 (최솟값 찾기 때문에) + if (minValue > Convert.ToDouble(NewText1.ToString())) //최솟값 찾기 + { minValue = Convert.ToDouble(NewText1.ToString()); } + if (maxValue < Convert.ToDouble(NewText1.ToString())) //최댓값 구하기 + { maxValue = Convert.ToDouble(NewText1.ToString()); } + } + } //통과율,에러 스캔 종료 + + LView1.Invoke((MethodInvoker)delegate () { + LView1.EndUpdate(); //리스트뷰 재개 + + // 통과율, 편차 표시 // + passRate.Text = "통과율: " + minValue + "%"; + memGap.Text = "편차: " + Math.Round(maxValue - minValue, 1) + "%"; + + + + // 테스트 정상시작했으므로 이제 유저가 중단가능 // + stopTest.Enabled = true; + stopTest.Text = "테스트 중단"; + }); + + + + + + + + + // // + // 테스트 통과 시 // + // // + + if (minValue > Convert.ToUInt16(HCIMax.Text)) + { + // 로그 작성 + WriteLog(); + + // 끝날 때 스크린샷 + if (capAfter.Checked) + { Screenshot(); } + + + // 만약 설정이 멤테 종료라면 // + if (closeMem.Checked) + { + KillMemtest(); + + if (Convert.ToUInt16(musicRepeat.Text) > 0) + { PlayMusic(); } + //음악 재생 + + stopTest.Invoke((MethodInvoker)delegate () { + stopTest.Enabled = false; + mtHide.Enabled = true; + goTest.Enabled = true; + goTest.Text = "테스트 시작"; + }); + tTimer.Enabled = false; + + + MessageBox.Show("테스트 " + minValue + "%까지 통과하였습니다.", "통과", MessageBoxButtons.OK, MessageBoxIcon.Information); + goto abortTest; //종료 + } + + + // 만약 설정이 PC 종료라면 // + else if (closePC.Checked) + { + var psi = new ProcessStartInfo("shutdown", "/s /t 0"); + psi.CreateNoWindow = true; + psi.UseShellExecute = false; + Process.Start(psi); + } + + } + + + + // // + // 에러 발생 시 // + // // + + else if (errorIncreased) + { + // 로그 작성 + WriteLog(); + + // 끝날 때 스크린샷 + if (capAfter.Checked) + { Screenshot(); } + + // 만약 설정이 멤테 종료라면 // + if (closeMem.Checked) + { + KillMemtest(); + + if (Convert.ToUInt16(musicRepeat.Text) > 0) + { PlayMusic(); } + //음악 재생 + + stopTest.Invoke((MethodInvoker)delegate () { + stopTest.Enabled = false; + mtHide.Enabled = true; + goTest.Enabled = true; + goTest.Text = "테스트 시작"; + }); + tTimer.Enabled = false; + + goto abortTest; //종료 + } + + + // 만약 설정이 PC 종료라면 // + else if (closePC.Checked) + { + var psi = new ProcessStartInfo("shutdown", "/s /t 0"); + psi.CreateNoWindow = true; + psi.UseShellExecute = false; + Process.Start(psi); + } + } + + + + + + // // + // 만약 중도포기라면 로그작성과 프로그램 설정저장만 // + // // + + else if (endMonitoring) + { + WriteLog(); + + KillMemtest(); + + stopTest.Invoke((MethodInvoker)delegate () { + stopTest.Enabled = false; + mtHide.Enabled = true; + goTest.Enabled = true; + goTest.Text = "테스트 시작"; + }); + tTimer.Enabled = false; + + + + if (endProgram) + { + SaveSettings(); + + Environment.Exit(0); + } + + + + goto abortTest; + } + + + + + + + + + + + + + + // // + // 주기적인 스크린샷 // + // // + if (capbyTime.Checked) + { + ushort nowTime = (ushort)((DateTime.Now.Hour * 60) + DateTime.Now.Minute); + ushort lastTime = (ushort)((capHour * 60) + capMinute); + + if (lastTime + Convert.ToUInt16(capTime.Text) <= nowTime ) { + capHour = (byte)DateTime.Now.Hour; + capMinute = (byte)DateTime.Now.Minute; //시간정보 초기화 후 스크린샷 + Screenshot(); + } + } + + + + + + + Thread.Sleep(1250); + } //모니터링 반복문 while 종료 + + abortTest: + StartTestThread.Abort(); + } //StartTest 쓰레드 종료 + + + + + + + + + + + + + + + private void SaveSettings() + {//프로그램 설정 저장 함수 + tSetting.Clear(); + + tSetting.Append("목표치: " + HCIMax.Text + "\r\n백그라운드 실행: " + mtHide.Checked + "\r\n테스트 유형: "); + + if (notAuto.Checked) + { tSetting.Append("Manual"); } + else { tSetting.Append("Auto"); } + + tSetting.Append("\r\n\r\n끝날 때 스크린샷: " + capAfter.Checked); + tSetting.Append("\r\n주기적인 스크린샷: " + capbyTime.Checked); + tSetting.Append("\r\n주기적인 스크린샷 값(분): " + capTime.Text); + tSetting.Append("\r\n스크린샷 저장폴더: " + capPath); + + tSetting.Append("\r\n\r\n소리알림 반복 횟수: " + musicRepeat.Text); + tSetting.Append("\r\n통과 알림파일 경로: " + sucPath); + tSetting.Append("\r\n오류 알림파일 경로: " + errPath); + + tSetting.Append("\r\n\r\n마지막에 끌 항목: "); + if (closeMem.Checked) { tSetting.Append("Memtest"); } + else { tSetting.Append("PC"); } + + tSetting.Append("\r\n\r\n창 배치 간격(x축): " + BatchX.Text); + tSetting.Append("\r\n창 배치 간격(y축): " + BatchY.Text); + tSetting.Append("\r\n프로그램이 켜질 때 즉시 테스트: " + instant.Checked); + File.WriteAllText(Application.StartupPath + "\\Resources\\Settings.txt", tSetting.ToString(), Encoding.Default); + } + + + + + + + private void cleanMemory() + { + bool ifsigProcess; + + Process[] processCollection = Process.GetProcesses(); + + foreach (Process p in processCollection) + { + ifsigProcess = false; + + // 윈도우 구동에 필요한 프로세스인지 확인 + for (int i1 = 0; i1 < memExcept.Length; i1++) + { + if (memExcept[i1] == p.ProcessName) { ifsigProcess = true; break; } + } + + // 나 자신인지 확인 + if (Process.GetCurrentProcess().ProcessName == p.ProcessName) { ifsigProcess = true; } + + // 사용자가 따로 예외처리한 프로세스인지 확인 + if (File.Exists(Application.StartupPath + "\\Resources\\mcExcept.txt")) + { + string[] eFile = File.ReadAllLines(Application.StartupPath + "\\Resources\\mcExcept.txt", Encoding.Default); + + for (int i2 = 0; i2 < eFile.Length; i2++) + { + //예외처리 확인 + if (eFile[i2].Length > 0 && eFile[i2].Substring(0, 1) != "#" && eFile[i2].ToLower() == p.ProcessName.ToLower()) + { + ifsigProcess = true; + break; + } + } + } + + // 3가지 유형에 포함되지 않는 프로세스는 종료 + if (!ifsigProcess) + { + try{ p.Kill(); p.Dispose(); } + catch (Exception) { } + } + } + } + + + + + + private void PlayMusic() + { + if (errorIncreased) { musicURL = errPath; } + else { musicURL = sucPath; } + musicThread = new Thread(musicFunction); + musicThread.Start(); //음악 재생 + } + + + + + private void KillMemtest() + { + Process[] proc1 = Process.GetProcessesByName("memtest"); + + for (int i1 = 0; i1 < proc1.Length; i1++) + { + try { proc1[i1].Kill(); proc1[i1].Dispose(); } + catch (Exception) { } + } + } + + + + + + + + private void WriteLog() + { + // // + // 로그 작성 // + // // + + IntPtr ErrMsgHwnd = IntPtr.Zero, ErrChildHwnd; + ErrMsg.Clear(); finalRecord.Clear(); + + + if (errorIncreased) + { + + while (ErrMsgHwnd == IntPtr.Zero) + { //오류메세지 내용 찾을 때까지 + ErrMsgHwnd = FindWindow("#32770", "멤테스트 오류"); + Thread.Sleep(10); + } + Thread.Sleep(20); + ErrChildHwnd = FindWindowEx(ErrMsgHwnd, IntPtr.Zero, "Static", null); + GetWindowText(ErrChildHwnd, ErrMsg, 250); + finalRecord.Append("!!! 오류 발생 !!!"); + } //오류발생 if문 끝 + + else if (endMonitoring) { finalRecord.Append("◆ 중도 포기 ◆"); } + else { finalRecord.Append("★ 통과 ★"); } + + //통과율, 편차, 경과시간 가져와서 로그 작성 + finalRecord.Append("\r\n종료 시각: " + DateTime.Now.ToString("yyyy년 MM월 dd일 --- H시 mm분 ss초") + "\r\n" + elTime.Text + "\r\n테스트한 메모리: " + hcimem + "MB * " + hcinum + " = " + (hcimem * hcinum) + "MB |총 메모리의 " + lb2.Text + "|\r\n\r\n전체 통과율: " + minValue + "%\r\n" + memGap.Text); + + //오류났을 경우에만 오류정보 추가기록 + if (errorIncreased) { finalRecord.Append("\r\n\r\n[오류 정보]\r\n" + errNum + "번째 멤테스트에서 오류 발생\r\n" + ErrMsgHwnd.ToString()); } + finalRecord.Append("\r\n---------------------------------\r\n\r\n\r\n"); + + //로그 작성 끝// + if (File.Exists(Application.StartupPath + "\\EasyHCI Log.txt")) + { + string origLog = File.ReadAllText(Application.StartupPath + "\\EasyHCI Log.txt", Encoding.Default); + File.WriteAllText(Application.StartupPath + "\\EasyHCI Log.txt", origLog + finalRecord.ToString(), Encoding.Default); + } + else { File.WriteAllText(Application.StartupPath + "\\EasyHCI Log.txt", finalRecord.ToString(), Encoding.Default); } + + } + + + + private void tTimer_Tick(object sender, EventArgs e) + { //테스트 모니터링 때 작동할 타이머 + if (activateTimer) // second 변수가 0이 아니어야 작동 + { + second++; //1초 증가 + if (second >= 60) //만약 60초가 되면 + { + second = 0; minute++; //0초로 초기화 후 1분 증가 + if (minute >= 60) //만약 60분이 되면 + { + minute = 0; hour++; //0분으로 초기화 후 1시간 증가 + } + } + + elTime.Text = "경과: " + hour + "시간 " + minute + "분 " + second + "초"; + } + } + + + + private void Screenshot() + { //스크린샷 함수 + + Bitmap ScreenBitmap; + IntPtr DesktopHwnd = GetDesktopWindow(); + using (Graphics DesktopGr = Graphics.FromHwnd(DesktopHwnd)) + { + IntPtr DesktopHdc = DesktopGr.GetHdc(); + int XRes = GetDeviceCaps(DesktopHdc, 118); // 118 = horizontal size + int YRes = GetDeviceCaps(DesktopHdc, 117); // 117 = vertical size + + ScreenBitmap = new Bitmap(XRes, YRes, PixelFormat.Format16bppRgb555); + + using (Graphics ScreenBitmapGr = Graphics.FromImage(ScreenBitmap)) + { + ScreenBitmapGr.CopyFromScreen(0, 0, 0, 0, new Size(XRes, YRes)); + } + } + + try { ScreenBitmap.Save(capPath + "\\" + DateTime.Now.ToString("(yyyy년 MM월 dd일) hh시 mm분 ss초") + ".png", ImageFormat.Png);} + catch (DirectoryNotFoundException) { } + } + + + + + + + private void showUsedMemory() + {// 메모리 사용량 표시 + while (true) + { + ManagementClass cls = new ManagementClass("Win32_OperatingSystem"); + ManagementObjectCollection instances = cls.GetInstances(); + + foreach (ManagementObject info in instances) + { + freeMemMB = uint.Parse(info["FreePhysicalMemory"].ToString()) / 1024; + + lb2.Invoke((MethodInvoker)delegate () { //크로스스레드 오류 해결 + lb2.Text = Math.Round(((double)totalMemMB - freeMemMB) / totalMemMB, 3) * 100 + "%"; // 옆 라벨 %값 + pbUse.Value = Convert.ToInt32(totalMemMB - freeMemMB); //프로그래스바 값 + }); + } + cls.Dispose(); instances.Dispose(); + + Gc1++; + if (Gc1 >= 100) { Gc1 = 0; GC.Collect(); } //2분마다 가비지컬렉터 실행 + + Thread.Sleep(1250); + } + } + + + + + + + //소리알림(음악 재생) 함수 + private void musicFunction() + { + try + { + System.Media.SoundPlayer music1 = new System.Media.SoundPlayer(musicURL); + for (int i1=0; i1 (freeMemMB - 50)) { + //여유 메모리보다 크게 입력했는지 확인. + goTest.Enabled = false; + MessageBox.Show("테스트할 양을 여유 메모리보다 크게 입력하셨습니다.\r\n\r\n" + ((Convert.ToInt16(HCINText.Text) * Convert.ToInt16(HCIMemory.Text)) - (freeMemMB - 50)).ToString() + "MB만큼 줄여서 입력해주세요." , "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + goTest.Enabled = true; + return; + } + } + + + + + //값 초기화 + hour = 0; minute = 0; second = 0; + activateTimer = false; endMonitoring = false; + + mtHide.Enabled = false; + tTimer.Enabled = true; + goTest.Enabled = false; + + StartTestThread = new Thread(StartTest); + StartTestThread.Start(); + } + + + + private void stopTest_Click(object sender, EventArgs e) + { + // 스레드 종료 신호 보냄 + endMonitoring = true; + if (musicThread.IsAlive) { musicThread.Abort(); } + + + //다시 활성화 + stopTest.Enabled = false; + mtHide.Enabled = true; + goTest.Enabled = true; + tTimer.Enabled = false; + goTest.Text = "테스트 시작"; + } + + + + private void notAuto_Click(object sender, EventArgs e) + { //수동설정 라디오버튼 + HCIMemory.Enabled = true; HCINText.Enabled = true; dLB1.Enabled = true; dLB2.Enabled = true; AutoHCIM.Enabled = false; yLLB.Enabled = false; + } + + + + private void YAuto_Click(object sender, EventArgs e) + { //자동설정 라디오버튼 + HCIMemory.Enabled = false; HCINText.Enabled = false; dLB1.Enabled = false; dLB2.Enabled = false; AutoHCIM.Enabled = true; yLLB.Enabled = true; + } + + + + + + + + private void capbyTime_Click(object sender, EventArgs e) + {//스크린샷-주기적으로 체크박스 + if (capbyTime.Checked) + { + capTime.Enabled = true; + tLB1.Enabled = true; + + } else { + capTime.Enabled = false; + tLB1.Enabled = false; + } + + } + + + + + + + + + + //멤테 종료, PC 종료 체크박스 + private void closeMem_Click(object sender, EventArgs e) + { + closeMem.Checked = true; closePC.Checked = false; + } + + private void closePC_Click(object sender, EventArgs e) + { + closePC.Checked = true; closeMem.Checked = false; + } + + + + + + + //각 텍스트박스 모두 숫자만 입력 가능하도록 + private void HCIMax_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + + } + + private void HCIMemory_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + + + private void musicRepeat_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + + private void HCINText_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + private void BatchY_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + private void BatchX_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + private void capTime_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + private void AutoHCIM_KeyPress(object sender, KeyPressEventArgs e) + { + if (!(char.IsNumber(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back))) + { + e.Handled = true; + } + } + + + + + + + + + //폴더,파일 선택창 열기 + private void OpenSCAP_Click(object sender, EventArgs e) + { + OpenFolder.Description = "스크린샷을 저장할 폴더를 선택해주세요."; + OpenFolder.ShowDialog(); + + if (!Directory.Exists(OpenFolder.SelectedPath)) + { + MessageBox.Show("폴더를 선택하지 않으셨습니다.\r\n\r\n스크린샷 기능을 사용할 경우 오류가 발생하거나 기능이 정상작동하지 않을 수 있습니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + }else { + capPath = OpenFolder.SelectedPath; + } + } + + + + private void OpenPM_Click(object sender, EventArgs e) + { + OpenFile.FileName = sucPath; + OpenFile.ShowDialog(); + + if (!File.Exists(OpenFile.FileName)) { + MessageBox.Show("파일을 선택하지 않으셨습니다.\r\n\r\n소리알림 기능을 사용할 경우 오류가 발생하거나 기능이 정상작동하지 않을 수 있습니다.","알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } else { + sucPath = OpenFile.FileName; } + } + + + + private void OpenEM_Click(object sender, EventArgs e) + { + OpenFile.FileName = errPath; + OpenFile.ShowDialog(); + + if (!File.Exists(OpenFile.FileName)) + { + MessageBox.Show("파일을 선택하지 않으셨습니다.\r\n\r\n소리알림 기능을 사용할 경우 오류가 발생하거나 기능이 정상작동하지 않을 수 있습니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + errPath = OpenFile.FileName; + } + } + + + + + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + {//프로그램 종료신호 보내기 (기록 작성) + e.Cancel = true; + + if (StartTestThread.IsAlive) + { //테스트 도중이라면 기록을 위해 종료신호 보내고 기다리기 + endMonitoring = true; + endProgram = true; + } + else + { //아니라면 설정 저장 후 종료 + SaveSettings(); + + Environment.Exit(0); + } + } + + + + + private void MainForm_Load(object sender, EventArgs e) + { //프로그램 시작 시 모든 작업 완료 전까지 잠시 숨김 + this.Hide(); + + //중복실행 시 기존 프로그램을 앞으로 보이고 종료 + Process[] proc1 = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName); + if (proc1.Length > 1) + { + for (int i1=0; i1 2048) + { + tempN++; + hciMem = (ushort)((freeMemMB - 280) / tempN); + } + HCIMemory.Text = hciMem.ToString(); + HCINText.Text = tempN.ToString(); + + + + //경로 설정 + OpenFolder.SelectedPath = Application.StartupPath + "\\HCI Screenshots"; + capPath = Application.StartupPath + "\\HCI Screenshots"; + + OpenFile.InitialDirectory = Application.StartupPath + "\\Resources"; + errPath = Application.StartupPath + "\\Resources\\error.wav"; + sucPath = Application.StartupPath + "\\Resources\\success.wav"; + + + + //설정 불러오기 + if (File.Exists(Application.StartupPath + "\\Resources\\Settings.txt")) + { + string[] tfile1 = File.ReadAllLines(Application.StartupPath + "\\Resources\\Settings.txt", Encoding.Default); + + HCIMax.Text = tfile1[0].Remove(0, tfile1[0].IndexOf(":") + 2); + mtHide.Checked = Convert.ToBoolean(tfile1[1].Remove(0, tfile1[1].IndexOf(":") + 2)); + + if (tfile1[2].Remove(0, tfile1[2].IndexOf(":") + 2) == "Manual") { notAuto.Checked = true; HCIMemory.Enabled = true; HCINText.Enabled = true; dLB1.Enabled = true; dLB2.Enabled = true; AutoHCIM.Enabled = false; yLLB.Enabled = false; } + + capAfter.Checked = Convert.ToBoolean(tfile1[4].Remove(0, tfile1[4].IndexOf(":") + 2)); + capbyTime.Checked = Convert.ToBoolean(tfile1[5].Remove(0, tfile1[5].IndexOf(":") + 2)); + capTime.Text = tfile1[6].Remove(0, tfile1[6].IndexOf(":") + 2); + + if (Directory.Exists(tfile1[7].Remove(0, tfile1[7].IndexOf(":") + 2))) + { + OpenFolder.SelectedPath = tfile1[7].Remove(0, tfile1[7].IndexOf(":") + 2); + capPath = tfile1[7].Remove(0, tfile1[7].IndexOf(":") + 2); + } + + musicRepeat.Text = tfile1[9].Remove(0, tfile1[9].IndexOf(":") + 2); + + if (File.Exists(tfile1[10].Remove(0, tfile1[10].IndexOf(":") + 2))) + sucPath = tfile1[10].Remove(0, tfile1[10].IndexOf(":") + 2); + + if (File.Exists(tfile1[11].Remove(0, tfile1[11].IndexOf(":") + 2))) + errPath = tfile1[11].Remove(0, tfile1[11].IndexOf(":") + 2); + + if (tfile1[13].Remove(0, tfile1[13].IndexOf(":") + 2) == "Memtest") + { closeMem.Checked = true; closePC.Checked = false; } + else { closeMem.Checked = false; closePC.Checked = true; } + + BatchX.Text = tfile1[15].Remove(0, tfile1[15].IndexOf(":") + 2); + BatchY.Text = tfile1[16].Remove(0, tfile1[16].IndexOf(":") + 2); + instant.Checked = Convert.ToBoolean(tfile1[17].Remove(0, tfile1[17].IndexOf(":") + 2)); + } + + //즉시 테스트 + if (instant.Checked) + { goTest_Click(new object(), new EventArgs()); } + + } + + + + private void MainForm_Resize(object sender, EventArgs e) + { //폼 아래로 당기면 일부 항목 같이 커지기 + TabMain.Size = new Size(this.Size.Width - 4, this.Size.Height - 99); + LView1.Size = new Size(this.Size.Width - 9, this.Size.Height - 213); + pbUse.Size = new Size(this.Size.Width - 165, 5); + + tmemText.Location = new Point(this.Size.Width + 100, 100); + passRate.Location = new Point(4, this.Size.Height - 115); + memGap.Location = new Point(this.Size.Width / 3 - 15, this.Size.Height - 115); + elTime.Location = new Point(this.Size.Width - 145, this.Size.Height - 115); + lb2.Location = new Point(this.Size.Width - 48, 70); + stopTest.Location = new Point(this.Size.Width - 138, 6); + } + + + + private void transparent_ValueChanged(object sender, EventArgs e) + { //투명도 조절 + this.Opacity = (double)transparent.Value/100; + } + + } +} diff --git a/MainForm.resx b/MainForm.resx new file mode 100644 index 0000000..3e25e42 --- /dev/null +++ b/MainForm.resx @@ -0,0 +1,299 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 14, 14 + + + 92, 14 + + + 209, 14 + + + 310, 14 + + + + + AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAABMLAAATCwAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wL///8c////cv///6T///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8C////GP///0X///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A/wAAAv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wb///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP79/QCbwcFlS29vwMS/vxn///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP/8/AB6t7fAAI2N/zRwcM7X19cKzs7OFpyYmGX+/v4A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8ApoqKWaV3dyD46uoja7S0/wCJif9BbGz/PTk5/w8P + D/6Ojo5s////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDI1dUdJH186UVsbP/p4eH/9/r6/2+p + qf8wT0//GhgY/xwbG/86OjrLlpaWWv///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP77+wAAdlkCSrOvyQB2 + dv9UfHz/xsTE/3Vubv92c3P/NDQ0/zMzM/9xcXH/PDw8zpSUlHb///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4ApsazInZ/ + f4H/AAAG8P//BErAvtIFcXH/SlFR/3Z0dP95eXn/MDAw/zAwMP97e3v/dnZ2/zs7O8+WlpZ4////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wAAAAADYaqnxAB2dv9wdHTM1CoqBq7b2xpRZGT/b3Fx/3Z2dv8xMTH/RERE/0NDQ/82Njb/fHx8/3Jy + cv85OTnTnZ2dX////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AJRlYyZFEg8Mj7WuKzOhof8AdHT/cImJiIBxeYlzcHD/fHt7/zQ0NP84ODj/c3Nz/3Jy + cv85OTn/NDQ0/3h4eP9wcHD/QEBAwLOzszf///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8Aia6nJk18fMp9jYrC//b2Q9jp6f88oaH/IkxM/3BsbP98fHz/QEBA/zQ0 + NP9zc3P/jY2N/4+Pj/91dXX/MjIy/z09Pf+AgID/bW1t/z8/P8S0tLQy////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AlbexWCKcnP8AZGT/jpub/+fj4/9+eXn/bm5u/319 + ff86Ojr/Ly8v/3V1df+Hh4f/hYWF/4SEhP+Li4v/dXV1/ywsLP8/Pz//fn5+/2hoaP9AQEDDwsLCJP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8D////D6F7dCybjImg////acDU1P8fpKT/CW1t/2Nm + Zv9qaGj/hYWF/z09Pf8vLy//b29v/5aWlv+xsbH/wcHB/8HBwf/Dw8P/xcXF/7e3t/+Xl5f/nZ2d/8HB + wf+xsbH/s7Oz2vX19XP///8g////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///yD///9f////f////43///+o/fz8v7PR0fKJs7P+0NDQ//// + ///b6en/m7Ky/5mcnP+RkJD/QUFB/zU1Nf9paWn/jIyM/7Ozs/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////9A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///18AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+Kior/Kysr/2dnZ/+JiYn/hISE/8LCwv8AAAD/AAAA/+/v + 7//CwsL/wcHB/8HBwf/Hx8f/srKy/5aWlv+qqqr/p6en/9bW1pn///8g////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///38AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP94eHj/Z2dn/4qKiv+EhIT/hISE/8LC + wv8AAAD/AAAA/+/v7//CwsL/wsLC/8LCwv/CwsL/xcXF/7W1tf+VlZX/jY2N/9nZ2Zb///8g////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /38AAAD/AAAA//b5+fGGxsb/ja6u/+Lh4f/6+fn/vcPD/6ywsP/Q0ND/5+fn/8rKyv+Pj4//iYmJ/4iI + iP+FhYX/hYWF/7Ozs/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////9f////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///38AAAD/AAAA/////3+HvLz/Ao6O/yhwcP+Ih4f/ZGFh/4iHh/+Pj4//AAAA/wAA + AP+1trX/jIiM/4eBh/+FhIX/g4OD/5WVlf+zs7P/wsLC/8LCwv/CwsL/wsLC/8LCwv/BwcH/w8PD/7q6 + uv/t7e32AAAA/wAAAP////9/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///38AAAD/AAAA//n5+f//////wuPj/46zs/+SlJT/k5OT/1ZW + Vv+Wlpb/AAAA/wAAAP/CwML/W3Fb/0l2Sf9vdm//jImM/5WVlf+ysrL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/Gxsb/u7u7/6ysrOD19fXzAAAA/wAAAP////9/////AP///wD///8A////AP///wD///8A////AP// + /wT///8A////AP///wD///8A////AP///wD///8A////IP/+/sAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/v7+//0BAQP+tra3/AAAA/wAAAP+2u7b/H48f/wCjAP9AgkD/fXp9/6SipP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////9f////AP///wD///8A////AP// + /wD///8A////Bv///yr///8A////AP///wD///8A////AP///wD/a2sCxcPDwwAAAP8AAAD/AAAA/7/h + 4f+fsLD/2NfX/wAAAP8AAAD/AAAA/5aWlv/CwsL/AAAA/wAAAP+PxI//CNcI/wDvAP8Puw//NHU0/4aF + hv+ysbL/wsLC/8LCwv/CwsL/w8PD/729vf+srKzg1NTUvPn5+YL///9/////f////1////8g////AP// + /wD///8A////AP///wD///8A////Af///y////8A////AP///wD///8A////AP///wCsw8M/iL6+/gAA + AP8AAAD//////4urq/9CVFT/oaCg//7+/v8AAAD/AAAA/8LCwv/Ixsj/AAAA/wAAAP/e+N7/X/xf/yD/ + IP8g8iD/YM1g/5q5mv++vb7/xcTF/8HBwf/ExMT/wMDA/66urt7KyMrT////f////3////9/////f/// + /3////9/////X////yD///8A////AP///wD///8A////AP///wn///8A////AP///wD///8A////AP// + /wAA//8Bkc/P4QAAAP8AAAD/AAAA/9nX1//BwMD/19fX/wAAAP8AAAD/AAAA/7a0tv+1uLX/AAAA/wAA + AP8AAAD/AAAA/1//X/9f/1//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/////1////8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////ILLe3v0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/09LT/32D + ff+QvpD/AAAA/wAAAP8AAAD/AAAA/1//X/9f/1//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/////1////8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8g+/v7aL3AwO3m6Oj///////7+/v/+/v7//v7+//// + ///w7/D/zMzM/3muef+f6J//AAAA/wAAAP/e/97/X/9f/yD/IP8g/yD/X/9f/3//f/9/9H//gdiB/4uj + i/+9t73e9vX2hP///3////9/////f////3/////eAAAA/wAAAP/////e////X////yD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9fAAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/e/t7/AAAA/wAAAP9//3//AP8A/wD/AP8A/wD/AP8A/wD/ + AP8A/wD/AOYA/wuVC/+bv5t6AAAAAP///wD///8A////AP///wD///9/AAAA/wAAAP////9/////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9fAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/e/97/AAAA/wAAAP9//3//AP8A/wD/ + AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wDkAP8Zohn0u8O7Uf///wD///8A////AP///wD///9/AAAA/wAA + AP////9/////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av///wL///8B////AP// + /wD///8gsrOyvJ+fn/+2trb/5ubm//7+/v///////////+/v7/+64br/f/l//1//X/+f/5//AAAA/wAA + AP9//3//AP8A/wD/AP8A/wD/AP8A/yD/IP9f/1//f/9//3//f/9/73//ks+S9vP185n///9/////f/// + /3/////eAAAA/wAAAP////9/////AP///wD///8A////AP///wD///8A////AP///wD///8A////Av// + /wD///8A////AP///wD///8AYGFhmh0dHf+NjY3/AAAA/wAAAP8AAAD/AAAA/wAAAP+N0Y3/AP8A/wD/ + AP9f/1//AAAA/wAAAP9//3//Af4B/wL+Av8B/wH/AP8A/1//X/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////9/////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8AxcrHF0BAQMCLi4v/AAAA/wAAAP8AAAD/AAAA/wAA + AP+N0Y3/AP8A/wD/AP8g/yD/n/+f/wAAAP9o9mj/R7lH/2OgY/8qyir/APYA/1//X/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////9f////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AKampjBra2u7mZmZ/8LC + wv/BwcH/wsHC/7Kysv9hvmH/AP8A/wD/AP8A/wD/IP8g/0r1Sv9cxFz/gn6C/3JDcv9Ibkj/G60b/yD6 + IP9f/1//f/9//3//f/9//3//f/9//3//f/9/6n//nNCc7fv4+47///9/////f////1////8g////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wCkpKRAQ0NDvV9fX/+IiIj/iYeJ/4OFg/9KtUr/AP8A/wD/AP8A/wD/C/ML/0m7Sf+GgYb/aFJo/0A6 + QOOxhrFHtcO1NyTJJOYA9QD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/gD/ANMA/y+ZL9fLn8sc////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8An5+fU0NDQ71mZmb/jIqM/4mJif9Ktkr/AP8A/wD/AP8I9wj/P8A//4WF + hf9qYmr/Ozo725KUkmv///8A////ALzLvCwfuB/tAPUA/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP4A/wDQ + AP81mDXVw5LDIP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AJycnGFAQEDAZmRm/42Pjf9QsVD/B/gH/wf4 + B/9Av0D/fIh8/2xVbP85ODnck5aTcf///wD///8A////AP/+/wCgqaBsHMYc8AD+AP8A/wD/AP8A/wD/ + AP8A/wD/AP8A/wD+AP8AvAD/apdqk////wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCZmZlyQUBBwGdo + Z/9yn3L/P8A//z/AP/99lX3/clly/zo5OtiUlJR4////AP///wD///8A////AP///wD//v8ArM2sPxbF + FvYA+gD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A2AD/Z6Rnkv///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8Al5eXekJBQsBqbmr/g5OD/4OTg/9qb2r/PT09zpaWln3///8A////AP///wD///8A////AP// + /wD///8A//z/AJCtkJwRwRH7AP0A/wD/AP8A/wD/AP8A/wD/AP8A1wD/aKVokv///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AJOTk4Y2NTbYc3Bz/3Nxc/87OzvHoqKiS////wD///8A////AP// + /wD///8A////AP///wD///8A////AP/7/wCKtoq6DNUM/wD+AP8A/wD/AP8A/wD/AP8A1wD/aKVokv// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gCQkJCTKioq6SoqKumPj4+Z/f39AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/+f8AiLiIxwrHCv8A/AD/AP8A/wD/ + AP8A1wD/aKVokv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD8/PwAlJSUXJOT + k1z8/PwA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A1ADUAIWy + heEK0Ar/AP8A/wD/AP8A1wD/aKVokv///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A+vr6APr6+gD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ANRx1BKBwYHuB9gH/wD/AP8A2QD/aKVokv///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wCxFLELfLN89gPXA/8A2gD/aKVokv///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AmSKZD3W4dYEAqQD/YKBgmv// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AGE8 + YRWJromdqq2qQ////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8C////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///80////Bf///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8m////KP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///////AAAP//////+AAA////v//+ + AAD///8f//8AAP///wP//wAA///8Af//AAD///gA//8AAP//+AB//wAA///gAD//AAD//8AAH/8AAP// + gAAP/wAA//8AAAf/AAD//wAAA/8AAP/wAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/ + AAD/AAAAAP8AAP8AAAAA/gAA/gAAAAD8AAD8AAAAAPwAAPwAAAAAPgAA/AAAAAA/AAD+AAAAAD8AAPwA + AAAAPwAA/AAAAfD/AAD8AAAA8P8AAIwAAAAA/wAAvgAAAAD/AAD+AAAAAP8AAP8AAAAA/wAA/4AAAAf/ + AAD/wADAA/8AAP/gAeAD/wAA//AD8AP/AAD/+Af4A/8AAP/8D/wD/wAA//4f/gP/AAD//z//A/8AAP// + //8D/wAA/////4P/AAD/////w/8AAP/////j/wAA////////AAB///////8AAD///////wAAP/////// + AAA= + + + \ No newline at end of file diff --git a/MaterialSkin.dll b/MaterialSkin.dll new file mode 100644 index 0000000..57c12a8 Binary files /dev/null and b/MaterialSkin.dll differ diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..d5ec30f --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace EasyHCI +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("EasyHCI")] +[assembly: AssemblyDescription("HCI Memtest Helper")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("debugprov@naver.com")] +[assembly: AssemblyProduct("EasyHCI")] +[assembly: AssemblyCopyright("debugprov@naver.com")] +[assembly: AssemblyTrademark("EasyHCI")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("f3edd19b-1622-4c20-84aa-54c9c6596780")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.7.0")] +[assembly: AssemblyFileVersion("1.0.7.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..971e220 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace EasyHCI.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.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() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EasyHCI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..4e9a148 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace EasyHCI.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.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; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app.manifest b/app.manifest new file mode 100644 index 0000000..2ec808f --- /dev/null +++ b/app.manifest @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/x86/Release/EasyHCI.exe b/bin/x86/Release/EasyHCI.exe new file mode 100644 index 0000000..88c30ae Binary files /dev/null and b/bin/x86/Release/EasyHCI.exe differ diff --git a/bin/x86/Release/EasyHCI.exe.config b/bin/x86/Release/EasyHCI.exe.config new file mode 100644 index 0000000..bae5d6d --- /dev/null +++ b/bin/x86/Release/EasyHCI.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/bin/x86/Release/EasyHCI.pdb b/bin/x86/Release/EasyHCI.pdb new file mode 100644 index 0000000..6a7a4a6 Binary files /dev/null and b/bin/x86/Release/EasyHCI.pdb differ diff --git a/bin/x86/Release/Resources/Settings.txt b/bin/x86/Release/Resources/Settings.txt new file mode 100644 index 0000000..c7cf2e8 --- /dev/null +++ b/bin/x86/Release/Resources/Settings.txt @@ -0,0 +1,18 @@ +ǥġ: 800 +׶ : True +׽Ʈ : Auto + + ũ: True +ֱ ũ: False +ֱ ũ (): 60 +ũ : C:\Users\Administrator\Desktop\Programs\Computer Information\HCI Memtest\HCI Screenshots + +Ҹ˸ ݺ Ƚ: 3 + ˸ : C:\Users\Administrator\Desktop\Programs\Computer Information\HCI Memtest\Resources\success.wav + ˸ : C:\Users\Administrator\Desktop\Programs\Computer Information\HCI Memtest\Resources\error.wav + + ׸: Memtest + +â ġ (x): 240 +â ġ (y): 230 +α׷ ׽Ʈ: True \ No newline at end of file diff --git a/bin/x86/Release/Resources/error.wav b/bin/x86/Release/Resources/error.wav new file mode 100644 index 0000000..8155496 Binary files /dev/null and b/bin/x86/Release/Resources/error.wav differ diff --git a/bin/x86/Release/Resources/mcExcept.txt b/bin/x86/Release/Resources/mcExcept.txt new file mode 100644 index 0000000..3e8aa78 --- /dev/null +++ b/bin/x86/Release/Resources/mcExcept.txt @@ -0,0 +1,13 @@ +# 예외처리할 항목을 한 줄에 하나씩 써주세요. +# 확장자를 제외하고 이름만 써주셔야 합니다. +# KakaoTalk.exe의 경우 KakaoTalk만 입력하세요. +# 대소문자를 구별하지 않으셔도 됩니다. (KakaoTalk이나 kakaotalk이나 동일) +# 윈도우 구동에 필요한 기본 프로세스들은 적지 않으셔도 예외처리됩니다. +# 가장 앞에 #을 붙인 줄은 주석처리 되어 무시됩니다. + +# ------------------- +# ---이 밑에 입력--- +# ------------------- + +hwinfo32 +hwinfo64 \ No newline at end of file diff --git a/bin/x86/Release/Resources/memtest.exe b/bin/x86/Release/Resources/memtest.exe new file mode 100644 index 0000000..3a385c6 Binary files /dev/null and b/bin/x86/Release/Resources/memtest.exe differ diff --git a/bin/x86/Release/Resources/success.wav b/bin/x86/Release/Resources/success.wav new file mode 100644 index 0000000..0dc6fe8 Binary files /dev/null and b/bin/x86/Release/Resources/success.wav differ diff --git a/hangeul.ico b/hangeul.ico new file mode 100644 index 0000000..b4f8a1d Binary files /dev/null and b/hangeul.ico differ diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..ee77082 --- /dev/null +++ b/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.4.1.0/.signature.p7s b/packages/Costura.Fody.4.1.0/.signature.p7s new file mode 100644 index 0000000..c9950d4 Binary files /dev/null and b/packages/Costura.Fody.4.1.0/.signature.p7s differ diff --git a/packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg b/packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg new file mode 100644 index 0000000..175f3c3 Binary files /dev/null and b/packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg differ diff --git a/packages/Costura.Fody.4.1.0/build/Costura.Fody.props b/packages/Costura.Fody.4.1.0/build/Costura.Fody.props new file mode 100644 index 0000000..a189a9a --- /dev/null +++ b/packages/Costura.Fody.4.1.0/build/Costura.Fody.props @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/Costura.Fody.4.1.0/lib/net40/Costura.dll b/packages/Costura.Fody.4.1.0/lib/net40/Costura.dll new file mode 100644 index 0000000..27d80be Binary files /dev/null and b/packages/Costura.Fody.4.1.0/lib/net40/Costura.dll differ diff --git a/packages/Costura.Fody.4.1.0/lib/net40/Costura.xml b/packages/Costura.Fody.4.1.0/lib/net40/Costura.xml new file mode 100644 index 0000000..7e9ca15 --- /dev/null +++ b/packages/Costura.Fody.4.1.0/lib/net40/Costura.xml @@ -0,0 +1,18 @@ + + + + Costura + + + + + Contains methods for interacting with the Costura system. + + + + + Call this to Initialize the Costura system. + + + + diff --git a/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll b/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll new file mode 100644 index 0000000..d74ccba Binary files /dev/null and b/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll differ diff --git a/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf b/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf new file mode 100644 index 0000000..0f0424e --- /dev/null +++ b/packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf @@ -0,0 +1,85 @@ + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with |. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + \ No newline at end of file diff --git a/packages/Fody.6.0.0/.signature.p7s b/packages/Fody.6.0.0/.signature.p7s new file mode 100644 index 0000000..4d9aadd Binary files /dev/null and b/packages/Fody.6.0.0/.signature.p7s differ diff --git a/packages/Fody.6.0.0/Fody.6.0.0.nupkg b/packages/Fody.6.0.0/Fody.6.0.0.nupkg new file mode 100644 index 0000000..b355281 Binary files /dev/null and b/packages/Fody.6.0.0/Fody.6.0.0.nupkg differ diff --git a/packages/Fody.6.0.0/build/Fody.targets b/packages/Fody.6.0.0/build/Fody.targets new file mode 100644 index 0000000..167a11a --- /dev/null +++ b/packages/Fody.6.0.0/build/Fody.targets @@ -0,0 +1,110 @@ + + + + $(ProjectDir)FodyWeavers.xml + $(MSBuildThisFileDirectory)..\ + $(FodyPath)netstandardtask + $(FodyPath)netclassictask + $(FodyAssemblyDirectory)\Fody.dll + $(DefaultItemExcludes);FodyWeavers.xsd + true + 15 + $([System.Version]::Parse($(MSBuildVersion)).Major) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/Fody.6.0.0/netclassictask/Fody.dll b/packages/Fody.6.0.0/netclassictask/Fody.dll new file mode 100644 index 0000000..2ca8d38 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Fody.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/FodyCommon.dll b/packages/Fody.6.0.0/netclassictask/FodyCommon.dll new file mode 100644 index 0000000..8cd5941 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/FodyCommon.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/FodyHelpers.dll b/packages/Fody.6.0.0/netclassictask/FodyHelpers.dll new file mode 100644 index 0000000..d04ebd9 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/FodyHelpers.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/FodyIsolated.dll b/packages/Fody.6.0.0/netclassictask/FodyIsolated.dll new file mode 100644 index 0000000..fbf1279 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/FodyIsolated.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.dll b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..980d4da Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..c3a88f3 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.dll b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..1355bb7 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..864cdbd Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.dll b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.dll new file mode 100644 index 0000000..099fba4 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.dll differ diff --git a/packages/Fody.6.0.0/netclassictask/Mono.Cecil.pdb b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.pdb new file mode 100644 index 0000000..ad888f4 Binary files /dev/null and b/packages/Fody.6.0.0/netclassictask/Mono.Cecil.pdb differ diff --git a/packages/Fody.6.0.0/netstandardtask/Fody.dll b/packages/Fody.6.0.0/netstandardtask/Fody.dll new file mode 100644 index 0000000..cbc88c1 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Fody.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/FodyCommon.dll b/packages/Fody.6.0.0/netstandardtask/FodyCommon.dll new file mode 100644 index 0000000..909c960 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/FodyCommon.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/FodyHelpers.dll b/packages/Fody.6.0.0/netstandardtask/FodyHelpers.dll new file mode 100644 index 0000000..d04ebd9 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/FodyHelpers.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/FodyIsolated.dll b/packages/Fody.6.0.0/netstandardtask/FodyIsolated.dll new file mode 100644 index 0000000..c938719 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/FodyIsolated.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.dll b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e81b2f8 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.pdb b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.pdb new file mode 100644 index 0000000..8347861 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.pdb differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.dll b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..2b2652b Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.pdb b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.pdb new file mode 100644 index 0000000..61af54c Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.pdb differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.dll b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.dll new file mode 100644 index 0000000..f1a5119 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.dll differ diff --git a/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.pdb b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.pdb new file mode 100644 index 0000000..b506a34 Binary files /dev/null and b/packages/Fody.6.0.0/netstandardtask/Mono.Cecil.pdb differ