Browse Source

APL_Macro

YJ 5 years ago
commit
ce4fd08e42
43 changed files with 1150 additions and 0 deletions
  1. 132 0
      APL_Macro.csproj
  2. 6 0
      App.config
  3. 155 0
      Form1.Designer.cs
  4. 419 0
      Form1.cs
  5. 120 0
      Form1.resx
  6. 22 0
      Program.cs
  7. 36 0
      Properties/AssemblyInfo.cs
  8. 71 0
      Properties/Resources.Designer.cs
  9. 117 0
      Properties/Resources.resx
  10. 30 0
      Properties/Settings.Designer.cs
  11. 7 0
      Properties/Settings.settings
  12. BIN
      bin/Debug/APL_Macro.exe
  13. 6 0
      bin/Debug/APL_Macro.exe.config
  14. BIN
      bin/Debug/APL_Macro.pdb
  15. BIN
      bin/x86/Debug/APL_Macro.exe
  16. 6 0
      bin/x86/Debug/APL_Macro.exe.config
  17. BIN
      bin/x86/Debug/APL_Macro.pdb
  18. BIN
      obj/Debug/APL_Macro.Form1.resources
  19. BIN
      obj/Debug/APL_Macro.Properties.Resources.resources
  20. 1 0
      obj/Debug/APL_Macro.csproj.CoreCompileInputs.cache
  21. 11 0
      obj/Debug/APL_Macro.csproj.FileListAbsolute.txt
  22. BIN
      obj/Debug/APL_Macro.csproj.GenerateResource.cache
  23. BIN
      obj/Debug/APL_Macro.csproj.ResolveComReference.cache
  24. BIN
      obj/Debug/APL_Macro.csprojAssemblyReference.cache
  25. BIN
      obj/Debug/APL_Macro.exe
  26. BIN
      obj/Debug/APL_Macro.pdb
  27. BIN
      obj/Debug/DesignTimeResolveAssemblyReferences.cache
  28. BIN
      obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  29. 0 0
      obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  30. 0 0
      obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  31. 0 0
      obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
  32. BIN
      obj/x86/Debug/APL_Macro.Form1.resources
  33. BIN
      obj/x86/Debug/APL_Macro.Properties.Resources.resources
  34. 1 0
      obj/x86/Debug/APL_Macro.csproj.CoreCompileInputs.cache
  35. 10 0
      obj/x86/Debug/APL_Macro.csproj.FileListAbsolute.txt
  36. BIN
      obj/x86/Debug/APL_Macro.csproj.GenerateResource.cache
  37. BIN
      obj/x86/Debug/APL_Macro.csproj.ResolveComReference.cache
  38. BIN
      obj/x86/Debug/APL_Macro.exe
  39. BIN
      obj/x86/Debug/APL_Macro.pdb
  40. BIN
      obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  41. 0 0
      obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  42. 0 0
      obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  43. 0 0
      obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

+ 132 - 0
APL_Macro.csproj

@@ -0,0 +1,132 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
+  <PropertyGroup>
5
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
+    <ProjectGuid>{B54898DD-D4DB-4B92-8B8D-825FFF2A89CA}</ProjectGuid>
8
+    <OutputType>WinExe</OutputType>
9
+    <RootNamespace>APL_Macro</RootNamespace>
10
+    <AssemblyName>APL_Macro</AssemblyName>
11
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
12
+    <FileAlignment>512</FileAlignment>
13
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
14
+    <Deterministic>true</Deterministic>
15
+  </PropertyGroup>
16
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17
+    <PlatformTarget>AnyCPU</PlatformTarget>
18
+    <DebugSymbols>true</DebugSymbols>
19
+    <DebugType>full</DebugType>
20
+    <Optimize>false</Optimize>
21
+    <OutputPath>bin\Debug\</OutputPath>
22
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
23
+    <ErrorReport>prompt</ErrorReport>
24
+    <WarningLevel>4</WarningLevel>
25
+  </PropertyGroup>
26
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
27
+    <PlatformTarget>AnyCPU</PlatformTarget>
28
+    <DebugType>pdbonly</DebugType>
29
+    <Optimize>true</Optimize>
30
+    <OutputPath>bin\Release\</OutputPath>
31
+    <DefineConstants>TRACE</DefineConstants>
32
+    <ErrorReport>prompt</ErrorReport>
33
+    <WarningLevel>4</WarningLevel>
34
+  </PropertyGroup>
35
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
36
+    <DebugSymbols>true</DebugSymbols>
37
+    <OutputPath>bin\x86\Debug\</OutputPath>
38
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
39
+    <DebugType>full</DebugType>
40
+    <PlatformTarget>x86</PlatformTarget>
41
+    <ErrorReport>prompt</ErrorReport>
42
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
43
+    <Prefer32Bit>true</Prefer32Bit>
44
+  </PropertyGroup>
45
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
46
+    <OutputPath>bin\x86\Release\</OutputPath>
47
+    <DefineConstants>TRACE</DefineConstants>
48
+    <Optimize>true</Optimize>
49
+    <DebugType>pdbonly</DebugType>
50
+    <PlatformTarget>x86</PlatformTarget>
51
+    <ErrorReport>prompt</ErrorReport>
52
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
53
+    <Prefer32Bit>true</Prefer32Bit>
54
+  </PropertyGroup>
55
+  <ItemGroup>
56
+    <Reference Include="System" />
57
+    <Reference Include="System.Core" />
58
+    <Reference Include="System.Xml.Linq" />
59
+    <Reference Include="System.Data.DataSetExtensions" />
60
+    <Reference Include="Microsoft.CSharp" />
61
+    <Reference Include="System.Data" />
62
+    <Reference Include="System.Deployment" />
63
+    <Reference Include="System.Drawing" />
64
+    <Reference Include="System.Net.Http" />
65
+    <Reference Include="System.Windows.Forms" />
66
+    <Reference Include="System.Xml" />
67
+  </ItemGroup>
68
+  <ItemGroup>
69
+    <Compile Include="Form1.cs">
70
+      <SubType>Form</SubType>
71
+    </Compile>
72
+    <Compile Include="Form1.Designer.cs">
73
+      <DependentUpon>Form1.cs</DependentUpon>
74
+    </Compile>
75
+    <Compile Include="Program.cs" />
76
+    <Compile Include="Properties\AssemblyInfo.cs" />
77
+    <EmbeddedResource Include="Form1.resx">
78
+      <DependentUpon>Form1.cs</DependentUpon>
79
+    </EmbeddedResource>
80
+    <EmbeddedResource Include="Properties\Resources.resx">
81
+      <Generator>ResXFileCodeGenerator</Generator>
82
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
83
+      <SubType>Designer</SubType>
84
+    </EmbeddedResource>
85
+    <Compile Include="Properties\Resources.Designer.cs">
86
+      <AutoGen>True</AutoGen>
87
+      <DependentUpon>Resources.resx</DependentUpon>
88
+    </Compile>
89
+    <None Include="Properties\Settings.settings">
90
+      <Generator>SettingsSingleFileGenerator</Generator>
91
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
92
+    </None>
93
+    <Compile Include="Properties\Settings.Designer.cs">
94
+      <AutoGen>True</AutoGen>
95
+      <DependentUpon>Settings.settings</DependentUpon>
96
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
97
+    </Compile>
98
+  </ItemGroup>
99
+  <ItemGroup>
100
+    <None Include="App.config" />
101
+  </ItemGroup>
102
+  <ItemGroup>
103
+    <COMReference Include="Microsoft.Office.Core">
104
+      <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
105
+      <VersionMajor>2</VersionMajor>
106
+      <VersionMinor>8</VersionMinor>
107
+      <Lcid>0</Lcid>
108
+      <WrapperTool>primary</WrapperTool>
109
+      <Isolated>False</Isolated>
110
+      <EmbedInteropTypes>True</EmbedInteropTypes>
111
+    </COMReference>
112
+    <COMReference Include="Microsoft.Office.Interop.Excel">
113
+      <Guid>{00020813-0000-0000-C000-000000000046}</Guid>
114
+      <VersionMajor>1</VersionMajor>
115
+      <VersionMinor>9</VersionMinor>
116
+      <Lcid>0</Lcid>
117
+      <WrapperTool>primary</WrapperTool>
118
+      <Isolated>False</Isolated>
119
+      <EmbedInteropTypes>True</EmbedInteropTypes>
120
+    </COMReference>
121
+    <COMReference Include="VBIDE">
122
+      <Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
123
+      <VersionMajor>5</VersionMajor>
124
+      <VersionMinor>3</VersionMinor>
125
+      <Lcid>0</Lcid>
126
+      <WrapperTool>primary</WrapperTool>
127
+      <Isolated>False</Isolated>
128
+      <EmbedInteropTypes>True</EmbedInteropTypes>
129
+    </COMReference>
130
+  </ItemGroup>
131
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
132
+</Project>

+ 6 - 0
App.config

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<configuration>
3
+    <startup> 
4
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5
+    </startup>
6
+</configuration>

+ 155 - 0
Form1.Designer.cs

@@ -0,0 +1,155 @@
1
+namespace APL_Macro
2
+{
3
+    partial class Form1
4
+    {
5
+        /// <summary>
6
+        /// 필수 디자이너 변수입니다.
7
+        /// </summary>
8
+        private System.ComponentModel.IContainer components = null;
9
+
10
+        /// <summary>
11
+        /// 사용 중인 모든 리소스를 정리합니다.
12
+        /// </summary>
13
+        /// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
14
+        protected override void Dispose(bool disposing)
15
+        {
16
+            if (disposing && (components != null))
17
+            {
18
+                components.Dispose();
19
+            }
20
+            base.Dispose(disposing);
21
+        }
22
+
23
+        #region Windows Form 디자이너에서 생성한 코드
24
+
25
+        /// <summary>
26
+        /// 디자이너 지원에 필요한 메서드입니다. 
27
+        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
28
+        /// </summary>
29
+        private void InitializeComponent()
30
+        {
31
+            this.Button_Start = new System.Windows.Forms.Button();
32
+            this.Button_Stop = new System.Windows.Forms.Button();
33
+            this.dgvList = new System.Windows.Forms.DataGridView();
34
+            this.button_ExcelOpen = new System.Windows.Forms.Button();
35
+            this.comboBox1 = new System.Windows.Forms.ComboBox();
36
+            this.comboBox2 = new System.Windows.Forms.ComboBox();
37
+            this.Ascii_checkBox = new System.Windows.Forms.CheckBox();
38
+            this.richTextBox1 = new System.Windows.Forms.RichTextBox();
39
+            ((System.ComponentModel.ISupportInitialize)(this.dgvList)).BeginInit();
40
+            this.SuspendLayout();
41
+            // 
42
+            // Button_Start
43
+            // 
44
+            this.Button_Start.Location = new System.Drawing.Point(26, 35);
45
+            this.Button_Start.Name = "Button_Start";
46
+            this.Button_Start.Size = new System.Drawing.Size(108, 89);
47
+            this.Button_Start.TabIndex = 0;
48
+            this.Button_Start.Text = "시작";
49
+            this.Button_Start.UseVisualStyleBackColor = true;
50
+            this.Button_Start.Click += new System.EventHandler(this.Button_Start_Click);
51
+            // 
52
+            // Button_Stop
53
+            // 
54
+            this.Button_Stop.Location = new System.Drawing.Point(140, 35);
55
+            this.Button_Stop.Name = "Button_Stop";
56
+            this.Button_Stop.Size = new System.Drawing.Size(108, 89);
57
+            this.Button_Stop.TabIndex = 0;
58
+            this.Button_Stop.Text = "중지";
59
+            this.Button_Stop.UseVisualStyleBackColor = true;
60
+            // 
61
+            // dgvList
62
+            // 
63
+            this.dgvList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
64
+            this.dgvList.Location = new System.Drawing.Point(26, 183);
65
+            this.dgvList.Name = "dgvList";
66
+            this.dgvList.RowTemplate.Height = 27;
67
+            this.dgvList.Size = new System.Drawing.Size(830, 804);
68
+            this.dgvList.TabIndex = 2;
69
+            // 
70
+            // button_ExcelOpen
71
+            // 
72
+            this.button_ExcelOpen.Location = new System.Drawing.Point(265, 33);
73
+            this.button_ExcelOpen.Name = "button_ExcelOpen";
74
+            this.button_ExcelOpen.Size = new System.Drawing.Size(108, 93);
75
+            this.button_ExcelOpen.TabIndex = 3;
76
+            this.button_ExcelOpen.Text = "ExcelOpen";
77
+            this.button_ExcelOpen.UseVisualStyleBackColor = true;
78
+            this.button_ExcelOpen.Click += new System.EventHandler(this.btnOpenExcel_Click);
79
+            // 
80
+            // comboBox1
81
+            // 
82
+            this.comboBox1.FormattingEnabled = true;
83
+            this.comboBox1.Location = new System.Drawing.Point(26, 139);
84
+            this.comboBox1.Name = "comboBox1";
85
+            this.comboBox1.Size = new System.Drawing.Size(121, 23);
86
+            this.comboBox1.TabIndex = 4;
87
+            // 
88
+            // comboBox2
89
+            // 
90
+            this.comboBox2.FormattingEnabled = true;
91
+            this.comboBox2.Items.AddRange(new object[] {
92
+            "115200"});
93
+            this.comboBox2.Location = new System.Drawing.Point(180, 139);
94
+            this.comboBox2.Name = "comboBox2";
95
+            this.comboBox2.Size = new System.Drawing.Size(121, 23);
96
+            this.comboBox2.TabIndex = 4;
97
+            this.comboBox2.Text = "115200";
98
+            // 
99
+            // Ascii_checkBox
100
+            // 
101
+            this.Ascii_checkBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
102
+            | System.Windows.Forms.AnchorStyles.Left) 
103
+            | System.Windows.Forms.AnchorStyles.Right)));
104
+            this.Ascii_checkBox.AutoSize = true;
105
+            this.Ascii_checkBox.Location = new System.Drawing.Point(309, 143);
106
+            this.Ascii_checkBox.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
107
+            this.Ascii_checkBox.Name = "Ascii_checkBox";
108
+            this.Ascii_checkBox.Size = new System.Drawing.Size(64, 19);
109
+            this.Ascii_checkBox.TabIndex = 73;
110
+            this.Ascii_checkBox.Text = "ASCII";
111
+            this.Ascii_checkBox.UseVisualStyleBackColor = true;
112
+            // 
113
+            // richTextBox1
114
+            // 
115
+            this.richTextBox1.Location = new System.Drawing.Point(391, 35);
116
+            this.richTextBox1.Name = "richTextBox1";
117
+            this.richTextBox1.Size = new System.Drawing.Size(465, 127);
118
+            this.richTextBox1.TabIndex = 74;
119
+            this.richTextBox1.Text = "";
120
+            // 
121
+            // Form1
122
+            // 
123
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
124
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
125
+            this.ClientSize = new System.Drawing.Size(868, 1011);
126
+            this.Controls.Add(this.richTextBox1);
127
+            this.Controls.Add(this.Ascii_checkBox);
128
+            this.Controls.Add(this.comboBox2);
129
+            this.Controls.Add(this.comboBox1);
130
+            this.Controls.Add(this.button_ExcelOpen);
131
+            this.Controls.Add(this.dgvList);
132
+            this.Controls.Add(this.Button_Stop);
133
+            this.Controls.Add(this.Button_Start);
134
+            this.Name = "Form1";
135
+            this.Text = "Form1";
136
+            this.Load += new System.EventHandler(this.Form1_Load);
137
+            ((System.ComponentModel.ISupportInitialize)(this.dgvList)).EndInit();
138
+            this.ResumeLayout(false);
139
+            this.PerformLayout();
140
+
141
+        }
142
+
143
+        #endregion
144
+
145
+        private System.Windows.Forms.Button Button_Start;
146
+        private System.Windows.Forms.Button Button_Stop;
147
+        private System.Windows.Forms.DataGridView dgvList;
148
+        private System.Windows.Forms.Button button_ExcelOpen;
149
+        private System.Windows.Forms.ComboBox comboBox1;
150
+        private System.Windows.Forms.ComboBox comboBox2;
151
+        private System.Windows.Forms.CheckBox Ascii_checkBox;
152
+        private System.Windows.Forms.RichTextBox richTextBox1;
153
+    }
154
+}
155
+

+ 419 - 0
Form1.cs

@@ -0,0 +1,419 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel;
4
+using System.Data;
5
+using System.Drawing;
6
+using System.Linq;
7
+using System.Runtime.InteropServices;
8
+using System.Text;
9
+using System.Threading.Tasks;
10
+using System.Windows.Forms;
11
+using Excel = Microsoft.Office.Interop.Excel;
12
+using System.Data.OleDb;
13
+
14
+//Add
15
+
16
+using System.IO;
17
+using System.IO.Ports;
18
+using System.Text.RegularExpressions;
19
+
20
+
21
+
22
+
23
+namespace APL_Macro
24
+{
25
+    public partial class Form1 : Form
26
+    {
27
+        private System.IO.Ports.SerialPort serialPort1;
28
+      
29
+        // 핸들을 잡기위한 Dll Import
30
+        [DllImport("user32.dll")]
31
+        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
32
+        [DllImport("user32.dll")]
33
+        public static extern IntPtr FindWindowEx(IntPtr hWnd1, IntPtr hWnd2, string lpsz1, string lpsz2);
34
+        [DllImport("User32.Dll", EntryPoint = "PostMessageA")]
35
+        public static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, IntPtr lParam);
36
+        [DllImport("user32.dll")]
37
+        public static extern int SendMessage(IntPtr hWnd, uint msg, int wParam, IntPtr lParam);
38
+        [DllImport("user32")]
39
+        public static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
40
+       
41
+        // PostMessage 를 위한 Message Value
42
+        public enum WMessages : int
43
+        {
44
+            WM_LBUTTONDOWN = 0x201, //Left mousebutton down
45
+            WM_LBUTTONUP = 0x202,  //Left mousebutton up
46
+            WM_LBUTTONDBLCLK = 0x203, //Left mousebutton doubleclick
47
+            WM_RBUTTONDOWN = 0x204, //Right mousebutton down
48
+            WM_RBUTTONUP = 0x205,   //Right mousebutton up
49
+            WM_RBUTTONDBLCLK = 0x206, //Right mousebutton doubleclick
50
+            WM_KEYDOWN = 0x100,  //Key down
51
+            WM_KEYUP = 0x101,   //Key up
52
+            WM_SYSKEYDOWN = 0x104,
53
+            WM_SYSKEYUP = 0x105,
54
+            WM_CHAR = 0x102,
55
+            WM_COMMAND = 0x111
56
+        }
57
+
58
+
59
+        public Form1()
60
+        {
61
+            InitializeComponent();
62
+        }
63
+        private void Form1_Load(object sender, EventArgs e)
64
+        {
65
+            /*   PrivateFontCollection privateFonts = new PrivateFontCollection();
66
+               privateFonts.AddFontFile("뫼비우스 Bold.ttf");
67
+               Font font = new Font(privateFonts.Families[0], 70f);*/
68
+
69
+            /*label38.Font = font;
70
+            label38.Text = "누액 감지 시스템";*/
71
+
72
+            this.serialPort1 = new System.IO.Ports.SerialPort();
73
+            this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.SP1_DataReceived);
74
+            comboBox1.BeginUpdate();
75
+            foreach (string comport in SerialPort.GetPortNames())//foreach (string comport in SerialPort_TestProgram.GetPortNames())
76
+            {
77
+                comboBox1.Items.Add(comport);
78
+            }
79
+            comboBox1.EndUpdate();
80
+            //SerialPort 초기 설정
81
+
82
+            comboBox1.DataSource = SerialPort.GetPortNames();
83
+            serialPort1.BaudRate = (int)115200;
84
+            serialPort1.DataBits = (int)8;
85
+            serialPort1.Parity = System.IO.Ports.Parity.None;
86
+            serialPort1.StopBits = StopBits.One;
87
+
88
+
89
+            //Serial Form _Off button 설정
90
+            Button_Stop.Enabled = false;  //off 기능 사라짐
91
+            Button_Stop.Visible = false; //off 버튼 숨겨짐
92
+            SerialFormEnagleChoice(true); //serial 설정버튼 on
93
+            SetupDataGridView();
94
+        }
95
+        private void SetupDataGridView()
96
+        {
97
+            this.Controls.Add(dgvList);
98
+
99
+            // DataGridView의 컬럼 갯수를 5개로 설정합니다.
100
+            dgvList.ColumnCount = 2;
101
+
102
+            // DataGridView에 컬럼을 추가합니다.
103
+            dgvList.Columns[0].Name = "IMEI";
104
+            dgvList.Columns[1].Name = "USIM";
105
+
106
+        }
107
+        private void SerialFormEnagleChoice(bool of)
108
+        {
109
+            comboBox1.Enabled = of;
110
+            comboBox2.Enabled = of;
111
+        }
112
+        //글자 수 제한///
113
+        string g_data; // 전역 변수(혹은 멤버 변수)
114
+        private void SP1_DataReceived(object sender, SerialDataReceivedEventArgs e)
115
+        {
116
+            //string receiveData = "";
117
+            //포트로 데이터가 들어오면
118
+            if (serialPort1.IsOpen)
119
+            {
120
+                if (Ascii_checkBox.Checked == true)
121
+                {
122
+                    string data = serialPort1.ReadExisting();
123
+                    g_data += data;
124
+                    if (data != string.Empty)
125
+                    {
126
+                        Controller_TextLoad(data);
127
+                        PacketData(data);
128
+                    }
129
+                }
130
+                else
131
+                {
132
+                    try
133
+                    {
134
+                        // 리스트 두개 사용
135
+                        int nLnegth = 0;
136
+                        nLnegth = serialPort1.BytesToRead;
137
+                        byte[] btTemp = new byte[nLnegth];
138
+                        serialPort1.Read(btTemp, 0, nLnegth);
139
+
140
+                        if (nLnegth > 0)
141
+                        {
142
+                            PacketData(btTemp);
143
+                            // 이부분에서 데이타 처리하는 부분으로 전송하여 사용하면 됨
144
+                        }
145
+                    }
146
+                    catch (Exception ex)
147
+                    {
148
+                        if (serialPort1.IsOpen)
149
+                        {
150
+                            System.Windows.Forms.MessageBox.Show(ex.ToString());
151
+                        }
152
+                        else
153
+                        {
154
+                            return;
155
+                        }
156
+                    }
157
+                }
158
+            }
159
+        }
160
+        /*
161
+  * 데이터 수신 부분 Class to Class 전달 부분*
162
+  * */
163
+        private delegate void StringSend(string Text);
164
+        private delegate void ValueSend(byte[] data);
165
+        private delegate void BoolSend(ref CheckBox temp_Checkbox, bool data);
166
+
167
+        private delegate void voidSend();
168
+        private int datacnt = 0;
169
+        string[] SubStr = new string[2];
170
+        private void PacketData(string Text)
171
+        {
172
+            
173
+            bool stringExists = Text.Contains("READY");
174
+            if (stringExists)
175
+            {
176
+                MessageBox.Show(Text);
177
+                datacnt = 1;
178
+            }
179
+            if(datacnt >= 1)
180
+            {
181
+
182
+                string strTmp = Regex.Replace(Text, @"\D", "");
183
+                try
184
+                {
185
+                    if (strTmp != "")
186
+                    {
187
+                        if (strTmp.Length < 25 && datacnt == 1)
188
+                        {
189
+                            datacnt = 2;
190
+                        }
191
+                        if (datacnt == 1)
192
+                        {
193
+                            SubStr[0] = "\r\n IMEI  : " + strTmp.Substring(0, 15);
194
+                            SubStr[1] = "\r\n USIM  : " + strTmp.Substring(15, 15);
195
+                            MessageBox.Show(SubStr[0] + SubStr[1]);
196
+                            datacnt = 0;
197
+                        }
198
+                        else if (datacnt == 2)
199
+                        {
200
+                            SubStr[0] = "\r\n IMEI  : " + strTmp.Substring(0, 15);
201
+                            datacnt = 3;
202
+                        }
203
+                        else if (datacnt == 3)
204
+                        {
205
+                            SubStr[1] = "\r\n USIM  : " + strTmp.Substring(0, 15);
206
+                            MessageBox.Show(SubStr[0] + SubStr[1]);
207
+                            datacnt = 0;
208
+                            string[] row0 = { Regex.Replace(SubStr[0], @"\D", ""), Regex.Replace(SubStr[1], @"\D", "") };
209
+
210
+                            // DataGridView에 한 줄씩 삽입합니다.
211
+                            CheckForIllegalCrossThreadCalls = false;
212
+                            dgvList.Rows.Add(row0);
213
+                        }
214
+                    }
215
+                }
216
+                catch (Exception ex)
217
+                {
218
+                    MessageBox.Show(ex.Message);
219
+                    datacnt = 1;
220
+                }
221
+                
222
+            }
223
+            System.GC.Collect(0, GCCollectionMode.Forced);
224
+            System.GC.WaitForFullGCComplete();
225
+
226
+        }
227
+        private void PacketData(byte[] Text)
228
+        {
229
+           
230
+            System.GC.Collect(0, GCCollectionMode.Forced);
231
+            System.GC.WaitForFullGCComplete();
232
+
233
+        }
234
+        int LineLimit = 500;
235
+
236
+        [DllImport("user32.dll")]
237
+        public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
238
+        private const int WM_SETREDRAW = 255;
239
+        public void Controller_TextLoad(string text)
240
+        {
241
+            int nLimitLines = Convert.ToInt32(LineLimit); //제한 라인 수
242
+            try
243
+            {
244
+                try
245
+                {
246
+                    SendMessage(this.Handle, WM_SETREDRAW, false, 0);
247
+                }
248
+                catch { return; }
249
+                if (richTextBox1.Lines.Length > nLimitLines)
250
+                {
251
+                    LinkedList<string> tempLines = new LinkedList<string>(richTextBox1.Lines);
252
+                    while ((tempLines.Count - nLimitLines) > 0)
253
+                    {
254
+                        tempLines.RemoveFirst();
255
+                    }
256
+
257
+                    richTextBox1.Lines = tempLines.ToArray();
258
+
259
+                }
260
+                try
261
+                {
262
+                    SendMessage(this.Handle, WM_SETREDRAW, true, 0);
263
+                }
264
+                catch { return; }
265
+                richTextBox1.AppendText(text);
266
+                richTextBox1.SelectionStart = richTextBox1.Text.Length;//맨 마지막 선택... 
267
+                richTextBox1.ScrollToCaret();
268
+            }
269
+            catch { try { SendMessage(this.Handle, WM_SETREDRAW, true, 0); } catch { return; } }
270
+        }
271
+        // 이 코드에는 엑셀파일에서 불러온 데이터를 데이터그리드뷰(DataGridView)에 바인딩하는 것도 포함되어 있다.
272
+        private void btnOpenExcel_Click(object sender, EventArgs e)
273
+        {
274
+            // 엑셀 변수 선언
275
+            Excel.Application xlApp = null;
276
+            Excel.Workbook xlWorkbook = null;
277
+            Excel.Worksheet xlWorksheet = null;
278
+
279
+            // 파일 선택
280
+            OpenFileDialog ofd = new OpenFileDialog();
281
+            ofd.Filter = "Excel File (*.xlsx)|*.xlsx|Excel File 97~2003 (*.xls)|*.xls|All Files (*.*)|*.*";
282
+
283
+            if (ofd.ShowDialog() == DialogResult.OK)
284
+            {
285
+                try
286
+                {
287
+                    // 데이터그리드뷰 클리어
288
+                    dgvList.Columns.Clear();
289
+
290
+                    // 엑셀데이터를 담을 데이터테이블 선언
291
+                    DataTable dt = new DataTable();
292
+
293
+                    // 엑셀 변수들 초기화   
294
+                    xlApp = new Excel.Application();
295
+                    xlWorkbook = xlApp.Workbooks.Open(ofd.FileName);
296
+                    xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1); // 첫 번째 시트
297
+
298
+                    // 시트에서 범위 설정
299
+                    // UsedRange는 사용된 셀 모두이므로 
300
+                    // 범위를 따로 지정하려면 
301
+                    // xlWorksheet.Range[xlWorksheet.Cells[시작 행, 시작 열], xlWorksheet.Cells[끝 행, 끝 열]]
302
+                    Excel.Range range = xlWorksheet.UsedRange;
303
+
304
+                    // 2차원 배열에 담기
305
+                    object[,] data = range.Value;
306
+
307
+                    // 데이터테이블에 엑셀 칼럼만큼 칼럼 추가
308
+                    for (int i = 1; i <= range.Columns.Count; i++)
309
+                    {
310
+                        dt.Columns.Add(i.ToString(), typeof(string));
311
+                    }
312
+
313
+                    // 데이터테이블에 2차원 배열에 담은 엑셀데이터 추가
314
+                    for (int r = 1; r <= range.Rows.Count; r++)
315
+                    {
316
+                        DataRow dr = dt.Rows.Add();
317
+
318
+                        for (int c = 1; c <= range.Columns.Count; c++)
319
+                        {
320
+                            dr[c - 1] = data[r, c];
321
+                        }
322
+                    }
323
+
324
+                    xlWorkbook.Close(true);
325
+                    xlApp.Quit();
326
+
327
+                    // 데이터그리드뷰에 데이터테이블 바인딩
328
+                    dgvList.DataSource = dt;
329
+
330
+                }
331
+                catch (Exception ex)
332
+                {
333
+                    MessageBox.Show(ex.Message);
334
+                }
335
+                finally
336
+                {
337
+
338
+                    // 사용이 끝난 엑셀파일 Release
339
+                    ReleaseExcelObject(xlWorksheet);
340
+                    ReleaseExcelObject(xlWorkbook);
341
+                    ReleaseExcelObject(xlApp);
342
+                }
343
+            }
344
+        }
345
+        private void ReleaseExcelObject(object obj)
346
+        {
347
+            try
348
+            {
349
+                if (obj != null)
350
+                {
351
+                    Marshal.ReleaseComObject(obj);
352
+                    obj = null;
353
+                }
354
+            }
355
+            catch (Exception ex)
356
+            {
357
+                obj = null;
358
+                throw ex;
359
+            }
360
+            finally
361
+            {
362
+                GC.Collect();
363
+            }
364
+        }
365
+        private void Button_Start_Click(object sender, EventArgs e)
366
+        {
367
+
368
+            serialPort1.PortName = comboBox1.SelectedItem.ToString();
369
+            serialPort1.PortName = comboBox1.Text.ToString();//
370
+            try
371
+            {
372
+                serialPort1.Open();
373
+            }
374
+            catch (Exception ea)
375
+            {
376
+
377
+                MessageBox.Show(ea.Message);
378
+
379
+            }
380
+            if (serialPort1.IsOpen)
381
+            {
382
+                try
383
+                {
384
+                    PacketData("Port Open Connect!!!\r\n");
385
+                }
386
+                catch { }
387
+                //rbText.Text = "[" + SP1.PortName.ToString() + "] Port Open Connect!!";
388
+
389
+                //Serial on/off Button의 보이고 안보이게 하기
390
+                Button_Start.Enabled = false; //on 기능 소멸
391
+                Button_Start.Visible = false; //on 버튼 사라짐
392
+                Button_Stop.Enabled = true;  //off 기능 나타남
393
+                Button_Stop.Visible = true; //off 버튼 나타남.
394
+                SerialFormEnagleChoice(false); //serial 설정버튼 off
395
+                                               //timer1.Start();
396
+                Button_Start.Visible = false;
397
+            }
398
+            else
399
+            {
400
+                try
401
+                {
402
+                    // Controller_Debug.tbReceived2.Text = "Port Open Failed!!!";
403
+                    MessageBox.Show("Port Open Failed!!!");
404
+                }
405
+                catch { }
406
+            }
407
+
408
+            //////////////////////////다른 프로그래머의 데이터
409
+            /*
410
+                * if (serialPort1.IsOpen) serialPort1.Close();
411
+
412
+                serialPort1.PortName = comboBox1.Text;
413
+                tbReceived.Clear();
414
+                tbReceived.Text += serialPort1.PortName + "Selected\n";
415
+                */
416
+            ////////////////////
417
+        }
418
+    }
419
+}

+ 120 - 0
Form1.resx

@@ -0,0 +1,120 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<root>
3
+  <!-- 
4
+    Microsoft ResX Schema 
5
+    
6
+    Version 2.0
7
+    
8
+    The primary goals of this format is to allow a simple XML format 
9
+    that is mostly human readable. The generation and parsing of the 
10
+    various data types are done through the TypeConverter classes 
11
+    associated with the data types.
12
+    
13
+    Example:
14
+    
15
+    ... ado.net/XML headers & schema ...
16
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
+    <resheader name="version">2.0</resheader>
18
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
+    </data>
25
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+        <comment>This is a comment</comment>
28
+    </data>
29
+                
30
+    There are any number of "resheader" rows that contain simple 
31
+    name/value pairs.
32
+    
33
+    Each data row contains a name, and value. The row also contains a 
34
+    type or mimetype. Type corresponds to a .NET class that support 
35
+    text/value conversion through the TypeConverter architecture. 
36
+    Classes that don't support this are serialized and stored with the 
37
+    mimetype set.
38
+    
39
+    The mimetype is used for serialized objects, and tells the 
40
+    ResXResourceReader how to depersist the object. This is currently not 
41
+    extensible. For a given mimetype the value must be set accordingly:
42
+    
43
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
+    that the ResXResourceWriter will generate, however the reader can 
45
+    read any of the formats listed below.
46
+    
47
+    mimetype: application/x-microsoft.net.object.binary.base64
48
+    value   : The object must be serialized with 
49
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
+            : and then encoded with base64 encoding.
51
+    
52
+    mimetype: application/x-microsoft.net.object.soap.base64
53
+    value   : The object must be serialized with 
54
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+            : and then encoded with base64 encoding.
56
+
57
+    mimetype: application/x-microsoft.net.object.bytearray.base64
58
+    value   : The object must be serialized into a byte array 
59
+            : using a System.ComponentModel.TypeConverter
60
+            : and then encoded with base64 encoding.
61
+    -->
62
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
+    <xsd:element name="root" msdata:IsDataSet="true">
65
+      <xsd:complexType>
66
+        <xsd:choice maxOccurs="unbounded">
67
+          <xsd:element name="metadata">
68
+            <xsd:complexType>
69
+              <xsd:sequence>
70
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
+              </xsd:sequence>
72
+              <xsd:attribute name="name" use="required" type="xsd:string" />
73
+              <xsd:attribute name="type" type="xsd:string" />
74
+              <xsd:attribute name="mimetype" type="xsd:string" />
75
+              <xsd:attribute ref="xml:space" />
76
+            </xsd:complexType>
77
+          </xsd:element>
78
+          <xsd:element name="assembly">
79
+            <xsd:complexType>
80
+              <xsd:attribute name="alias" type="xsd:string" />
81
+              <xsd:attribute name="name" type="xsd:string" />
82
+            </xsd:complexType>
83
+          </xsd:element>
84
+          <xsd:element name="data">
85
+            <xsd:complexType>
86
+              <xsd:sequence>
87
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
+              </xsd:sequence>
90
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
+              <xsd:attribute ref="xml:space" />
94
+            </xsd:complexType>
95
+          </xsd:element>
96
+          <xsd:element name="resheader">
97
+            <xsd:complexType>
98
+              <xsd:sequence>
99
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
+              </xsd:sequence>
101
+              <xsd:attribute name="name" type="xsd:string" use="required" />
102
+            </xsd:complexType>
103
+          </xsd:element>
104
+        </xsd:choice>
105
+      </xsd:complexType>
106
+    </xsd:element>
107
+  </xsd:schema>
108
+  <resheader name="resmimetype">
109
+    <value>text/microsoft-resx</value>
110
+  </resheader>
111
+  <resheader name="version">
112
+    <value>2.0</value>
113
+  </resheader>
114
+  <resheader name="reader">
115
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+  </resheader>
117
+  <resheader name="writer">
118
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
+  </resheader>
120
+</root>

+ 22 - 0
Program.cs

@@ -0,0 +1,22 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Threading.Tasks;
5
+using System.Windows.Forms;
6
+
7
+namespace APL_Macro
8
+{
9
+    static class Program
10
+    {
11
+        /// <summary>
12
+        /// 해당 애플리케이션의 주 진입점입니다.
13
+        /// </summary>
14
+        [STAThread]
15
+        static void Main()
16
+        {
17
+            Application.EnableVisualStyles();
18
+            Application.SetCompatibleTextRenderingDefault(false);
19
+            Application.Run(new Form1());
20
+        }
21
+    }
22
+}

+ 36 - 0
Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
1
+using System.Reflection;
2
+using System.Runtime.CompilerServices;
3
+using System.Runtime.InteropServices;
4
+
5
+// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
6
+// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
7
+// 이러한 특성 값을 변경하세요.
8
+[assembly: AssemblyTitle("APL_Macro")]
9
+[assembly: AssemblyDescription("")]
10
+[assembly: AssemblyConfiguration("")]
11
+[assembly: AssemblyCompany("")]
12
+[assembly: AssemblyProduct("APL_Macro")]
13
+[assembly: AssemblyCopyright("Copyright ©  2019")]
14
+[assembly: AssemblyTrademark("")]
15
+[assembly: AssemblyCulture("")]
16
+
17
+// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 
18
+// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
19
+// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
20
+[assembly: ComVisible(false)]
21
+
22
+// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
23
+[assembly: Guid("b54898dd-d4db-4b92-8b8d-825fff2a89ca")]
24
+
25
+// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
26
+//
27
+//      주 버전
28
+//      부 버전 
29
+//      빌드 번호
30
+//      수정 버전
31
+//
32
+// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
33
+// 기본값으로 할 수 있습니다.
34
+// [assembly: AssemblyVersion("1.0.*")]
35
+[assembly: AssemblyVersion("1.0.0.0")]
36
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 71 - 0
Properties/Resources.Designer.cs

@@ -0,0 +1,71 @@
1
+//------------------------------------------------------------------------------
2
+// <auto-generated>
3
+//     이 코드는 도구를 사용하여 생성되었습니다.
4
+//     런타임 버전:4.0.30319.42000
5
+//
6
+//     파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
7
+//     이러한 변경 내용이 손실됩니다.
8
+// </auto-generated>
9
+//------------------------------------------------------------------------------
10
+
11
+namespace APL_Macro.Properties
12
+{
13
+
14
+
15
+    /// <summary>
16
+    ///   지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
17
+    /// </summary>
18
+    // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
19
+    // 클래스에서 자동으로 생성되었습니다.
20
+    // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여
21
+    // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
22
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25
+    internal class Resources
26
+    {
27
+
28
+        private static global::System.Resources.ResourceManager resourceMan;
29
+
30
+        private static global::System.Globalization.CultureInfo resourceCulture;
31
+
32
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33
+        internal Resources()
34
+        {
35
+        }
36
+
37
+        /// <summary>
38
+        ///   이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
39
+        /// </summary>
40
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41
+        internal static global::System.Resources.ResourceManager ResourceManager
42
+        {
43
+            get
44
+            {
45
+                if ((resourceMan == null))
46
+                {
47
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("APL_Macro.Properties.Resources", typeof(Resources).Assembly);
48
+                    resourceMan = temp;
49
+                }
50
+                return resourceMan;
51
+            }
52
+        }
53
+
54
+        /// <summary>
55
+        ///   이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
56
+        ///   재정의합니다.
57
+        /// </summary>
58
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59
+        internal static global::System.Globalization.CultureInfo Culture
60
+        {
61
+            get
62
+            {
63
+                return resourceCulture;
64
+            }
65
+            set
66
+            {
67
+                resourceCulture = value;
68
+            }
69
+        }
70
+    }
71
+}

+ 117 - 0
Properties/Resources.resx

@@ -0,0 +1,117 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<root>
3
+  <!-- 
4
+    Microsoft ResX Schema 
5
+    
6
+    Version 2.0
7
+    
8
+    The primary goals of this format is to allow a simple XML format 
9
+    that is mostly human readable. The generation and parsing of the 
10
+    various data types are done through the TypeConverter classes 
11
+    associated with the data types.
12
+    
13
+    Example:
14
+    
15
+    ... ado.net/XML headers & schema ...
16
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
+    <resheader name="version">2.0</resheader>
18
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
+    </data>
25
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
+        <comment>This is a comment</comment>
28
+    </data>
29
+                
30
+    There are any number of "resheader" rows that contain simple 
31
+    name/value pairs.
32
+    
33
+    Each data row contains a name, and value. The row also contains a 
34
+    type or mimetype. Type corresponds to a .NET class that support 
35
+    text/value conversion through the TypeConverter architecture. 
36
+    Classes that don't support this are serialized and stored with the 
37
+    mimetype set.
38
+    
39
+    The mimetype is used for serialized objects, and tells the 
40
+    ResXResourceReader how to depersist the object. This is currently not 
41
+    extensible. For a given mimetype the value must be set accordingly:
42
+    
43
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
+    that the ResXResourceWriter will generate, however the reader can 
45
+    read any of the formats listed below.
46
+    
47
+    mimetype: application/x-microsoft.net.object.binary.base64
48
+    value   : The object must be serialized with 
49
+            : System.Serialization.Formatters.Binary.BinaryFormatter
50
+            : and then encoded with base64 encoding.
51
+    
52
+    mimetype: application/x-microsoft.net.object.soap.base64
53
+    value   : The object must be serialized with 
54
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
+            : and then encoded with base64 encoding.
56
+
57
+    mimetype: application/x-microsoft.net.object.bytearray.base64
58
+    value   : The object must be serialized into a byte array 
59
+            : using a System.ComponentModel.TypeConverter
60
+            : and then encoded with base64 encoding.
61
+    -->
62
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
+    <xsd:element name="root" msdata:IsDataSet="true">
64
+      <xsd:complexType>
65
+        <xsd:choice maxOccurs="unbounded">
66
+          <xsd:element name="metadata">
67
+            <xsd:complexType>
68
+              <xsd:sequence>
69
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
70
+              </xsd:sequence>
71
+              <xsd:attribute name="name" type="xsd:string" />
72
+              <xsd:attribute name="type" type="xsd:string" />
73
+              <xsd:attribute name="mimetype" type="xsd:string" />
74
+            </xsd:complexType>
75
+          </xsd:element>
76
+          <xsd:element name="assembly">
77
+            <xsd:complexType>
78
+              <xsd:attribute name="alias" type="xsd:string" />
79
+              <xsd:attribute name="name" type="xsd:string" />
80
+            </xsd:complexType>
81
+          </xsd:element>
82
+          <xsd:element name="data">
83
+            <xsd:complexType>
84
+              <xsd:sequence>
85
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
86
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
87
+              </xsd:sequence>
88
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
89
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
90
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
91
+            </xsd:complexType>
92
+          </xsd:element>
93
+          <xsd:element name="resheader">
94
+            <xsd:complexType>
95
+              <xsd:sequence>
96
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
97
+              </xsd:sequence>
98
+              <xsd:attribute name="name" type="xsd:string" use="required" />
99
+            </xsd:complexType>
100
+          </xsd:element>
101
+        </xsd:choice>
102
+      </xsd:complexType>
103
+    </xsd:element>
104
+  </xsd:schema>
105
+  <resheader name="resmimetype">
106
+    <value>text/microsoft-resx</value>
107
+  </resheader>
108
+  <resheader name="version">
109
+    <value>2.0</value>
110
+  </resheader>
111
+  <resheader name="reader">
112
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113
+  </resheader>
114
+  <resheader name="writer">
115
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
+  </resheader>
117
+</root>

+ 30 - 0
Properties/Settings.Designer.cs

@@ -0,0 +1,30 @@
1
+//------------------------------------------------------------------------------
2
+// <auto-generated>
3
+//     This code was generated by a tool.
4
+//     Runtime Version:4.0.30319.42000
5
+//
6
+//     Changes to this file may cause incorrect behavior and will be lost if
7
+//     the code is regenerated.
8
+// </auto-generated>
9
+//------------------------------------------------------------------------------
10
+
11
+namespace APL_Macro.Properties
12
+{
13
+
14
+
15
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18
+    {
19
+
20
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21
+
22
+        public static Settings Default
23
+        {
24
+            get
25
+            {
26
+                return defaultInstance;
27
+            }
28
+        }
29
+    }
30
+}

+ 7 - 0
Properties/Settings.settings

@@ -0,0 +1,7 @@
1
+<?xml version='1.0' encoding='utf-8'?>
2
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
3
+  <Profiles>
4
+    <Profile Name="(Default)" />
5
+  </Profiles>
6
+  <Settings />
7
+</SettingsFile>

BIN
bin/Debug/APL_Macro.exe


+ 6 - 0
bin/Debug/APL_Macro.exe.config

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<configuration>
3
+    <startup> 
4
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5
+    </startup>
6
+</configuration>

BIN
bin/Debug/APL_Macro.pdb


BIN
bin/x86/Debug/APL_Macro.exe


+ 6 - 0
bin/x86/Debug/APL_Macro.exe.config

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<configuration>
3
+    <startup> 
4
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5
+    </startup>
6
+</configuration>

BIN
bin/x86/Debug/APL_Macro.pdb


BIN
obj/Debug/APL_Macro.Form1.resources


BIN
obj/Debug/APL_Macro.Properties.Resources.resources


+ 1 - 0
obj/Debug/APL_Macro.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
1
+eaf1766b6ea42bfda729ba8701a2c4014e61dc5b

+ 11 - 0
obj/Debug/APL_Macro.csproj.FileListAbsolute.txt

@@ -0,0 +1,11 @@
1
+D:\C#\APL_Macro\APL_Macro\bin\Debug\APL_Macro.exe.config
2
+D:\C#\APL_Macro\APL_Macro\bin\Debug\APL_Macro.exe
3
+D:\C#\APL_Macro\APL_Macro\bin\Debug\APL_Macro.pdb
4
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.csprojAssemblyReference.cache
5
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.Form1.resources
6
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.Properties.Resources.resources
7
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.csproj.GenerateResource.cache
8
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.csproj.CoreCompileInputs.cache
9
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.exe
10
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.pdb
11
+D:\C#\APL_Macro\APL_Macro\obj\Debug\APL_Macro.csproj.ResolveComReference.cache

BIN
obj/Debug/APL_Macro.csproj.GenerateResource.cache


BIN
obj/Debug/APL_Macro.csproj.ResolveComReference.cache


BIN
obj/Debug/APL_Macro.csprojAssemblyReference.cache


BIN
obj/Debug/APL_Macro.exe


BIN
obj/Debug/APL_Macro.pdb


BIN
obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN
obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs


BIN
obj/x86/Debug/APL_Macro.Form1.resources


BIN
obj/x86/Debug/APL_Macro.Properties.Resources.resources


+ 1 - 0
obj/x86/Debug/APL_Macro.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
1
+eaf1766b6ea42bfda729ba8701a2c4014e61dc5b

+ 10 - 0
obj/x86/Debug/APL_Macro.csproj.FileListAbsolute.txt

@@ -0,0 +1,10 @@
1
+D:\C#\APL_Macro\APL_Macro\bin\x86\Debug\APL_Macro.exe.config
2
+D:\C#\APL_Macro\APL_Macro\bin\x86\Debug\APL_Macro.exe
3
+D:\C#\APL_Macro\APL_Macro\bin\x86\Debug\APL_Macro.pdb
4
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.csproj.ResolveComReference.cache
5
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.Form1.resources
6
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.Properties.Resources.resources
7
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.csproj.GenerateResource.cache
8
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.csproj.CoreCompileInputs.cache
9
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.exe
10
+D:\C#\APL_Macro\APL_Macro\obj\x86\Debug\APL_Macro.pdb

BIN
obj/x86/Debug/APL_Macro.csproj.GenerateResource.cache


BIN
obj/x86/Debug/APL_Macro.csproj.ResolveComReference.cache


BIN
obj/x86/Debug/APL_Macro.exe


BIN
obj/x86/Debug/APL_Macro.pdb


BIN
obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
obj/x86/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
obj/x86/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
obj/x86/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs