--- KHModbus.sln
+++ KHModbus.sln
... | ... | @@ -9,6 +9,8 @@ |
| 9 | 9 |
EndProject |
| 10 | 10 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignusKH", "SignusKH\SignusKH.csproj", "{7F1050F6-B03B-45C2-9F29-6632066E4B5C}"
|
| 11 | 11 |
EndProject |
| 12 |
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignusKHSVR", "SignusKHSVR\SignusKHSVR.csproj", "{7F1050F6-B03B-46C2-9F29-6632066E4B5C}"
|
|
| 13 |
+EndProject |
|
| 12 | 14 |
Global |
| 13 | 15 |
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| 14 | 16 |
Debug|Any CPU = Debug|Any CPU |
... | ... | @@ -27,6 +29,10 @@ |
| 27 | 29 |
{7F1050F6-B03B-45C2-9F29-6632066E4B5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
| 28 | 30 |
{7F1050F6-B03B-45C2-9F29-6632066E4B5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
| 29 | 31 |
{7F1050F6-B03B-45C2-9F29-6632066E4B5C}.Release|Any CPU.Build.0 = Release|Any CPU
|
| 32 |
+ {7F1050F6-B03B-46C2-9F29-6632066E4B5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
| 33 |
+ {7F1050F6-B03B-46C2-9F29-6632066E4B5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
| 34 |
+ {7F1050F6-B03B-46C2-9F29-6632066E4B5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
| 35 |
+ {7F1050F6-B03B-46C2-9F29-6632066E4B5C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
| 30 | 36 |
EndGlobalSection |
| 31 | 37 |
GlobalSection(SolutionProperties) = preSolution |
| 32 | 38 |
HideSolutionNode = FALSE |
--- ModbusTest/FormModbus.cs
+++ ModbusTest/FormModbus.cs
... | ... | @@ -1229,12 +1229,54 @@ |
| 1229 | 1229 |
*/ |
| 1230 | 1230 |
} |
| 1231 | 1231 |
|
| 1232 |
+ private Dictionary<string, float> m_dicPV = new Dictionary<string, float>(); |
|
| 1233 |
+ |
|
| 1234 |
+ |
|
| 1232 | 1235 |
private void UpdateBaseoilSwitch() |
| 1233 | 1236 |
{
|
| 1234 | 1237 |
U3Util.ErrorLog("UpdateBaseoilSwitch");
|
| 1235 | 1238 |
U3Database db = new U3Database(); |
| 1236 | 1239 |
|
| 1237 | 1240 |
string strSQL = ""; |
| 1241 |
+ |
|
| 1242 |
+ strSQL = " SELECT *, (a.REAL_DATA * b.VALUE_RATIO) as PV_VAL FROM T_HT_REAL_DATA a "; |
|
| 1243 |
+ strSQL += " left join T_STD_MACH b on a.MACH_CD = b.MACH_CD where b.REMARK04 is not null"; |
|
| 1244 |
+ DataTable dtCurPV = db.OpenSQL(strSQL); |
|
| 1245 |
+ foreach (DataRow drCurPV in dtCurPV.Rows) |
|
| 1246 |
+ {
|
|
| 1247 |
+ string strBaseoil = U3Util.toStr(drCurPV["REMARK04"]); |
|
| 1248 |
+ string strMachCD = U3Util.toStr(drCurPV["MACH_CD"]); |
|
| 1249 |
+ string strMachNM = U3Util.toStr(drCurPV["MACH_NM"]); |
|
| 1250 |
+ float fPV = U3Util.toFloat(drCurPV["PV_VAL"]); |
|
| 1251 |
+ |
|
| 1252 |
+ if (m_dicPV.ContainsKey(strMachCD) == false) |
|
| 1253 |
+ {
|
|
| 1254 |
+ m_dicPV.Add(strMachCD, fPV); |
|
| 1255 |
+ } |
|
| 1256 |
+ else |
|
| 1257 |
+ {
|
|
| 1258 |
+ float fPrev = m_dicPV[strMachCD]; |
|
| 1259 |
+ if (fPV < (fPrev * 0.1)) |
|
| 1260 |
+ {
|
|
| 1261 |
+ U3Util.ErrorLog("### " + strBaseoil + " = 이전: " + fPrev.ToString() + " / 현재: " + fPV.ToString());
|
|
| 1262 |
+ |
|
| 1263 |
+ string sql3 = ""; |
|
| 1264 |
+ sql3 += " insert into T_HT_HIST_BASEOIL (COMP_CD,BASEOIL_CD,HBT_CD,ONOFF_YN,PV_VAL,MACH_NM,REG_DT) values (";
|
|
| 1265 |
+ sql3 += " '0001', "; |
|
| 1266 |
+ sql3 += " '" + strBaseoil + "', "; |
|
| 1267 |
+ sql3 += " '', "; |
|
| 1268 |
+ sql3 += " 'X', "; |
|
| 1269 |
+ sql3 += " " + fPrev.ToString() + ", "; |
|
| 1270 |
+ sql3 += " '" + strMachNM + "', "; |
|
| 1271 |
+ sql3 += " getdate() "; |
|
| 1272 |
+ sql3 += " )"; |
|
| 1273 |
+ sql3 += " "; |
|
| 1274 |
+ |
|
| 1275 |
+ db.ExcuteSql(sql3); |
|
| 1276 |
+ } |
|
| 1277 |
+ m_dicPV[strMachCD] = fPV; |
|
| 1278 |
+ } |
|
| 1279 |
+ } |
|
| 1238 | 1280 |
|
| 1239 | 1281 |
Dictionary<string, string> oldDic = new Dictionary<string, string>(); |
| 1240 | 1282 |
strSQL = "select * from T_HT_REAL_BASEOIL"; |
... | ... | @@ -1248,6 +1290,7 @@ |
| 1248 | 1290 |
} |
| 1249 | 1291 |
|
| 1250 | 1292 |
Dictionary<string, float> pvDic = new Dictionary<string, float>(); |
| 1293 |
+ Dictionary<string, string> machNmDic = new Dictionary<string, string>(); |
|
| 1251 | 1294 |
strSQL = ""; |
| 1252 | 1295 |
strSQL += " SELECT a.MACH_CD, (REAL_DATA * VALUE_RATIO) as PV_VAL, MACH_NM, REMARK04"; |
| 1253 | 1296 |
strSQL += " FROM T_HT_REAL_DATA a"; |
... | ... | @@ -1258,8 +1301,11 @@ |
| 1258 | 1301 |
{
|
| 1259 | 1302 |
string strKey = U3Util.toStr(drPv["REMARK04"]); |
| 1260 | 1303 |
float fVal = U3Util.toFloat(drPv["PV_VAL"]); |
| 1304 |
+ string strMachNm = U3Util.toStr(drPv["MACH_NM"]); |
|
| 1261 | 1305 |
if (pvDic.ContainsKey(strKey) == false) |
| 1262 | 1306 |
pvDic.Add(strKey, fVal); |
| 1307 |
+ if (machNmDic.ContainsKey(strKey) == false) |
|
| 1308 |
+ machNmDic.Add(strKey, strMachNm); |
|
| 1263 | 1309 |
} |
| 1264 | 1310 |
|
| 1265 | 1311 |
Dictionary<string, string> myDictionary = new Dictionary<string, string>(); |
... | ... | @@ -1304,16 +1350,23 @@ |
| 1304 | 1350 |
pvVal = pvDic[item.Key]; |
| 1305 | 1351 |
} |
| 1306 | 1352 |
|
| 1353 |
+ string mach_nm = ""; |
|
| 1354 |
+ if (machNmDic.ContainsKey(item.Key)) |
|
| 1355 |
+ {
|
|
| 1356 |
+ mach_nm = machNmDic[item.Key]; |
|
| 1357 |
+ } |
|
| 1358 |
+ |
|
| 1307 | 1359 |
string oldValue = oldDic[item.Key]; |
| 1308 | 1360 |
if (item.Value != oldValue) |
| 1309 | 1361 |
{
|
| 1310 | 1362 |
string sql3 = ""; |
| 1311 |
- sql3 += " insert into T_HT_HIST_BASEOIL (COMP_CD,BASEOIL_CD,HBT_CD,ONOFF_YN,PV_VAL,REG_DT) values (";
|
|
| 1363 |
+ sql3 += " insert into T_HT_HIST_BASEOIL (COMP_CD,BASEOIL_CD,HBT_CD,ONOFF_YN,PV_VAL,MACH_NM,REG_DT) values (";
|
|
| 1312 | 1364 |
sql3 += " '0001', "; |
| 1313 | 1365 |
sql3 += " '" + item.Key + "', "; |
| 1314 | 1366 |
sql3 += " '" + ((item.Value.Length > 0) ? item.Value : oldValue) + "', "; |
| 1315 | 1367 |
sql3 += " '" + ((item.Value.Length > 0) ? "Y" : "N") + "', "; |
| 1316 | 1368 |
sql3 += " " + pvVal.ToString() + ", "; |
| 1369 |
+ sql3 += " '" + mach_nm + "', "; |
|
| 1317 | 1370 |
sql3 += " getdate() "; |
| 1318 | 1371 |
sql3 += " )"; |
| 1319 | 1372 |
sql3 += " "; |
--- SignusKH/Form1.cs
+++ SignusKH/Form1.cs
... | ... | @@ -119,7 +119,7 @@ |
| 119 | 119 |
m_ps[index].StartInfo.FileName = AppExe; |
| 120 | 120 |
m_ps[index].StartInfo.WorkingDirectory = AppPath; |
| 121 | 121 |
m_ps[index].StartInfo.Arguments = " -kiosk -fullscreen " + m_strUrl; |
| 122 |
- m_ps[index].StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; |
|
| 122 |
+ m_ps[index].StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized; |
|
| 123 | 123 |
m_ps[index].Start(); |
| 124 | 124 |
return; |
| 125 | 125 |
} |
+++ SignusKHSVR/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.5" /> | |
| 5 | + </startup> | |
| 6 | +</configuration>(No newline at end of file) |
+++ SignusKHSVR/Form1.Designer.cs
... | ... | @@ -0,0 +1,95 @@ |
| 1 | +namespace SignusKHSVR | |
| 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.components = new System.ComponentModel.Container(); | |
| 32 | + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); | |
| 33 | + this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); | |
| 34 | + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); | |
| 35 | + this.ToolStripMenuItem_Close = new System.Windows.Forms.ToolStripMenuItem(); | |
| 36 | + this.timer1 = new System.Windows.Forms.Timer(this.components); | |
| 37 | + this.timer_LogApi = new System.Windows.Forms.Timer(this.components); | |
| 38 | + this.contextMenuStrip1.SuspendLayout(); | |
| 39 | + this.SuspendLayout(); | |
| 40 | + // | |
| 41 | + // notifyIcon1 | |
| 42 | + // | |
| 43 | + this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1; | |
| 44 | + this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); | |
| 45 | + this.notifyIcon1.Text = "시그너스 프로그램 관리자"; | |
| 46 | + this.notifyIcon1.Visible = true; | |
| 47 | + // | |
| 48 | + // contextMenuStrip1 | |
| 49 | + // | |
| 50 | + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { | |
| 51 | + this.ToolStripMenuItem_Close}); | |
| 52 | + this.contextMenuStrip1.Name = "contextMenuStrip1"; | |
| 53 | + this.contextMenuStrip1.Size = new System.Drawing.Size(151, 26); | |
| 54 | + // | |
| 55 | + // ToolStripMenuItem_Close | |
| 56 | + // | |
| 57 | + this.ToolStripMenuItem_Close.Name = "ToolStripMenuItem_Close"; | |
| 58 | + this.ToolStripMenuItem_Close.Size = new System.Drawing.Size(150, 22); | |
| 59 | + this.ToolStripMenuItem_Close.Text = "프로그램 종료"; | |
| 60 | + this.ToolStripMenuItem_Close.Click += new System.EventHandler(this.ToolStripMenuItem_Close_Click); | |
| 61 | + // | |
| 62 | + // timer1 | |
| 63 | + // | |
| 64 | + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); | |
| 65 | + // | |
| 66 | + // timer_LogApi | |
| 67 | + // | |
| 68 | + this.timer_LogApi.Tick += new System.EventHandler(this.timer_LogApi_Tick); | |
| 69 | + // | |
| 70 | + // Form1 | |
| 71 | + // | |
| 72 | + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); | |
| 73 | + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |
| 74 | + this.ClientSize = new System.Drawing.Size(544, 226); | |
| 75 | + this.Name = "Form1"; | |
| 76 | + this.Text = "SIGNUS"; | |
| 77 | + this.WindowState = System.Windows.Forms.FormWindowState.Minimized; | |
| 78 | + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed); | |
| 79 | + this.Load += new System.EventHandler(this.Form1_Load); | |
| 80 | + this.Resize += new System.EventHandler(this.Form1_Resize); | |
| 81 | + this.contextMenuStrip1.ResumeLayout(false); | |
| 82 | + this.ResumeLayout(false); | |
| 83 | + | |
| 84 | + } | |
| 85 | + | |
| 86 | + #endregion | |
| 87 | + | |
| 88 | + private System.Windows.Forms.NotifyIcon notifyIcon1; | |
| 89 | + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; | |
| 90 | + private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem_Close; | |
| 91 | + private System.Windows.Forms.Timer timer1; | |
| 92 | + private System.Windows.Forms.Timer timer_LogApi; | |
| 93 | + } | |
| 94 | +} | |
| 95 | + |
+++ SignusKHSVR/Form1.cs
... | ... | @@ -0,0 +1,164 @@ |
| 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.Text; | |
| 8 | +using System.Threading.Tasks; | |
| 9 | +using System.Windows.Forms; | |
| 10 | +using System.Diagnostics; | |
| 11 | + | |
| 12 | +namespace SignusKHSVR | |
| 13 | +{ | |
| 14 | + public partial class Form1 : Form | |
| 15 | + { | |
| 16 | + const int MAX_PROCESS = 10; | |
| 17 | + private Process[] m_ps = new Process[MAX_PROCESS]; | |
| 18 | + private List<string> m_lstExe = new List<string>(); | |
| 19 | + | |
| 20 | + public Form1() | |
| 21 | + { | |
| 22 | + InitializeComponent(); | |
| 23 | + } | |
| 24 | + | |
| 25 | + private void ToolStripMenuItem_Close_Click(object sender, EventArgs e) | |
| 26 | + { | |
| 27 | + Program.PostMessage((IntPtr)0xffff, Program.messageQuit, 0, 0); | |
| 28 | + | |
| 29 | + for (int i = 0; i < MAX_PROCESS; i++) | |
| 30 | + { | |
| 31 | + if (m_ps[i] != null) | |
| 32 | + { | |
| 33 | + m_ps[i].Kill(); | |
| 34 | + m_ps[i] = null; | |
| 35 | + } | |
| 36 | + } | |
| 37 | + this.Close(); | |
| 38 | + } | |
| 39 | + | |
| 40 | + private string m_strUrl = "http://192.168.1.17:8080"; | |
| 41 | + | |
| 42 | + private void Form1_Load(object sender, EventArgs e) | |
| 43 | + { | |
| 44 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 45 | + | |
| 46 | + //string strChrome1 = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"; | |
| 47 | + //string strChrome2 = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"; | |
| 48 | + //string strChrome3 = "C:\\Users\\CUPC\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"; | |
| 49 | + | |
| 50 | + //if (System.IO.File.Exists(strChrome1)) | |
| 51 | + // this.m_lstExe.Add(strChrome1); | |
| 52 | + //else if (System.IO.File.Exists(strChrome2)) | |
| 53 | + // this.m_lstExe.Add(strChrome2); | |
| 54 | + //else if (System.IO.File.Exists(strChrome3)) | |
| 55 | + // this.m_lstExe.Add(strChrome3); | |
| 56 | + | |
| 57 | + //this.m_lstExe.Add(AppPath + string.Format("\\KHSCALE.exe")); | |
| 58 | + | |
| 59 | + timer1.Enabled = true; | |
| 60 | + timer1.Interval = 500; | |
| 61 | + | |
| 62 | + timer_LogApi.Enabled = true; | |
| 63 | + timer_LogApi.Interval = 30 * 60 * 1000; | |
| 64 | + | |
| 65 | + this.Visible = false; //창을 보이지 않게 한다. | |
| 66 | + this.ShowIcon = false; //작업표시줄에서 제거. | |
| 67 | + } | |
| 68 | + | |
| 69 | + private int m_nPrevSec = -1; | |
| 70 | + | |
| 71 | + private void timer1_Tick(object sender, EventArgs e) | |
| 72 | + { | |
| 73 | + DateTime dtNow = DateTime.Now; | |
| 74 | + if (m_nPrevSec == dtNow.Second) return; | |
| 75 | + m_nPrevSec = dtNow.Second; | |
| 76 | + | |
| 77 | + UpdateProgram(m_nPrevSec % 10); | |
| 78 | + | |
| 79 | + //Program.MoveFiles("C:\\EDIM\\Edge Advance 16P\\CSV", "C:\\EDIM\\Edge Advance 16P\\CSV1"); | |
| 80 | + } | |
| 81 | + | |
| 82 | + public void UpdateProgram(int index) | |
| 83 | + { | |
| 84 | + if (index < 0) return; | |
| 85 | + if (index >= this.m_lstExe.Count()) return; | |
| 86 | + | |
| 87 | + string AppExe = this.m_lstExe[index]; | |
| 88 | + if (System.IO.File.Exists(AppExe) == false) | |
| 89 | + return; | |
| 90 | + | |
| 91 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 92 | + | |
| 93 | + if (m_ps[index] == null) | |
| 94 | + { | |
| 95 | + m_ps[index] = new Process(); | |
| 96 | + } | |
| 97 | + else | |
| 98 | + { | |
| 99 | + try | |
| 100 | + { | |
| 101 | + if (m_ps[index].HasExited) | |
| 102 | + { | |
| 103 | + m_ps[index].Close(); | |
| 104 | + m_ps[index] = new System.Diagnostics.Process(); | |
| 105 | + } | |
| 106 | + else | |
| 107 | + { | |
| 108 | + return; | |
| 109 | + } | |
| 110 | + } | |
| 111 | + catch | |
| 112 | + { | |
| 113 | + return; | |
| 114 | + } | |
| 115 | + } | |
| 116 | + | |
| 117 | + if (AppExe.IndexOf("chrome") > 0) | |
| 118 | + { | |
| 119 | + m_ps[index].StartInfo.FileName = AppExe; | |
| 120 | + m_ps[index].StartInfo.WorkingDirectory = AppPath; | |
| 121 | + m_ps[index].StartInfo.Arguments = " -kiosk -fullscreen " + m_strUrl; | |
| 122 | + m_ps[index].StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized; | |
| 123 | + m_ps[index].Start(); | |
| 124 | + return; | |
| 125 | + } | |
| 126 | + | |
| 127 | + m_ps[index].StartInfo.FileName = AppExe; | |
| 128 | + m_ps[index].StartInfo.WorkingDirectory = AppPath; | |
| 129 | + m_ps[index].StartInfo.Arguments = ""; | |
| 130 | + m_ps[index].StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; | |
| 131 | + m_ps[index].Start(); | |
| 132 | + } | |
| 133 | + | |
| 134 | + private void Form1_FormClosed(object sender, FormClosedEventArgs e) | |
| 135 | + { | |
| 136 | + Program.PostMessage((IntPtr)0xffff, Program.messageQuit, 0, 0); | |
| 137 | + | |
| 138 | + for (int i = 0; i < MAX_PROCESS; i++) | |
| 139 | + { | |
| 140 | + if (m_ps[i] != null) | |
| 141 | + { | |
| 142 | + m_ps[i].Kill(); | |
| 143 | + m_ps[i] = null; | |
| 144 | + } | |
| 145 | + } | |
| 146 | + } | |
| 147 | + | |
| 148 | + private void Form1_Resize(object sender, EventArgs e) | |
| 149 | + { | |
| 150 | + if (this.WindowState == FormWindowState.Minimized) | |
| 151 | + { | |
| 152 | + this.Visible = false; //창을 보이지 않게 한다. | |
| 153 | + this.ShowIcon = false; //작업표시줄에서 제거. | |
| 154 | + //m_notify.Visible = true; //트레이 아이콘을 표시한다. | |
| 155 | + } | |
| 156 | + } | |
| 157 | + | |
| 158 | + private void timer_LogApi_Tick(object sender, EventArgs e) | |
| 159 | + { | |
| 160 | + SFLogApi log = new SFLogApi(); | |
| 161 | + log.Run(); | |
| 162 | + } | |
| 163 | + } | |
| 164 | +} |
+++ SignusKHSVR/Form1.resx
... | ... | @@ -0,0 +1,420 @@ |
| 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 | + <metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 121 | + <value>35, 21</value> | |
| 122 | + </metadata> | |
| 123 | + <metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 124 | + <value>149, 21</value> | |
| 125 | + </metadata> | |
| 126 | + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | |
| 127 | + <data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | |
| 128 | + <value> | |
| 129 | + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA | |
| 130 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 131 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByX0wncV1Pb3NcT4ZyXU6+cl1OvnNc | |
| 132 | + Tt5zXU//c11P/3NdT/9zXU//clxP5nJdTr5yXU6+c1xOjnJdTnd0Wk8vAAAAAAAAAAAAAAAAAAAAAAAA | |
| 133 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 134 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 135 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFpPL3NcT4ZzXE/Wc11P/3Nd | |
| 136 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nc | |
| 137 | + Tt5zXE6Oc1tPPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 138 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 139 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9eTw9zXE6OclxP5nNd | |
| 140 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 141 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7uc11OnnRfSRcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 142 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 143 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfl49B3Nd | |
| 144 | + T39zXE7uc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 145 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE/2c1xOjm9e | |
| 146 | + Tw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 147 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 148 | + AAAAAAAAc11OZ3JcT+ZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 149 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 150 | + T/9zXU//c11P/3NdT/9zXE7ucl1Od35ePQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 151 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 152 | + AAAAAAAAAAAAAAAAAAB0Wk8vc1xP1nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 153 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 154 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE/mc1tPPwAAAAAAAAAAAAAAAAAA | |
| 155 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 156 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByXE9Pc1xO7nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 157 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 158 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Jc | |
| 159 | + T/ZzXU5nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 160 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxXU9vc11P/3NdT/9zXU//c11P/3Nd | |
| 161 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 162 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 163 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NcTo4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 164 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5ePQdzXU6ec11P/3Nd | |
| 165 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 166 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 167 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11Ptm9eTw8AAAAAAAAAAAAA | |
| 168 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5e | |
| 169 | + PQdzXU+2c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 170 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 171 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 172 | + T/9yXU7Ob15PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 173 | + AAAAAAAAAAAAAAAAAABzXE6Oc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 174 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 175 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 176 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT7YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 177 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzXU5nc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 178 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 179 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 180 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c1xOjgAAAAAAAAAAAAAAAAAA | |
| 181 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzW08/clxP9nNdT/9zXU//c11P/3Nd | |
| 182 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxP/2pWSf9oVUn/aFVJ/2hV | |
| 183 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 184 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/bVhL/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 185 | + T/9zXU5nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvX08fclxP5nNd | |
| 186 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/29a | |
| 187 | + Tf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 188 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9zXU//c11P/3Nd | |
| 189 | + T/9zXU//c11P/3NdT/9zXU//clxP9nNbTz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 190 | + AAAAAAAAc11OrnNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 191 | + T/9zXU//c11P/3NdT/+Acmn/yNXU/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 192 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 193 | + 4P+wuLb/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE/mfl49BwAAAAAAAAAAAAAAAAAA | |
| 194 | + AAAAAAAAAAAAAAAAAAAAAAAAcVxNR3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 195 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//np+b/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 196 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 197 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Fd | |
| 198 | + T28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJdTs5zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 199 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3hlWf+2vLv/0eDg/9Hg | |
| 200 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 201 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 202 | + T/9zXU//c11P/3NdT/9yXE/mfl49BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJcT19zXU//c11P/3Nd | |
| 203 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//clxP/2pWSf9oVUn/aFVJ/2hV | |
| 204 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 205 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/bVhL/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3Nd | |
| 206 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NcTo4AAAAAAAAAAAAAAAAAAAAAAAAAAH5e | |
| 207 | + PQdyXE/mc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/29a | |
| 208 | + Tf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 209 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9zXU//c11P/9Hg | |
| 210 | + 4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXE/2dF9JFwAA | |
| 211 | + AAAAAAAAAAAAAAAAAABxXU9vc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 212 | + T/9zXU//c11P/3NdT/+Acmn/yNXU/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 213 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 214 | + 4P+wuLb/c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 215 | + T/9zXU//c11P/3NcTo4AAAAAAAAAAAAAAAAAAAAAcl1OvnNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 216 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//np+b/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 217 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 218 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT/9zXU//c11P/3Nd | |
| 219 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE7eAAAAAAAAAAAAAAAAdF9JF3NdT/9zXU//c11P/3Nd | |
| 220 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3hlWf+2vLv/0eDg/9Hg | |
| 221 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg | |
| 222 | + 4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P/R4OD/0eDg/9Hg4P9zXU//c11P/9Hg4P/R4OD/0eDg/3Nd | |
| 223 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3FbTTcAAAAAAAAAAHJc | |
| 224 | + T19zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/21YS/9oVUn/aFVJ/2hV | |
| 225 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 226 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9rV0r/clxP/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3Nd | |
| 227 | + T//R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 228 | + T/9zXU9/AAAAAAAAAABzXU+2c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/21Y | |
| 229 | + S/9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 230 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2xYS/9zXU//c11P/9Hg | |
| 231 | + 4P/R4OD/0eDg/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 232 | + T/9zXU//c11P/3NdT/9zXU//c1xP1gAAAAB+Xj0HclxP9nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 233 | + T/9zXU//c11P/3NdT/9zYlf/1tPS//////////////////////////////////////////////////// | |
| 234 | + /////////////////////////////////////////////////////////////////////////////+Hf | |
| 235 | + 3v96a2P/c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//c11P/3Nd | |
| 236 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9vX08fclxPT3NdT/9zXU//c11P/3Nd | |
| 237 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//zsvJ//////////////////////////////////// | |
| 238 | + //////////////////////////////////////////////////////////////////////////////// | |
| 239 | + ////////////////////////2dfW/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT//R4OD/0eDg/9Hg | |
| 240 | + 4P9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//cV1Pb3Nd | |
| 241 | + TmdzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P//Lx8P////////////// | |
| 242 | + //////////////////////////////////////////////////////////////////////////////// | |
| 243 | + //////////////////////////////////////////////v7+/9zXU//c11P/9Hg4P/R4OD/0eDg/3Nd | |
| 244 | + T/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 245 | + T/9zXU//c11P/3NcT4ZzXU9/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 246 | + T/////////////////9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 247 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//////////////////c11P/3Nd | |
| 248 | + T//R4OD/0eDg/9Hg4P9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 249 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU6ec11OnnNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 250 | + T/9zXU//c11P/3NdT/9zXU//////////////////c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 251 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P//// | |
| 252 | + /////////////3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/3Nd | |
| 253 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//cl1OvnNdT7ZzXU//c11P/3Nd | |
| 254 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/////////////////3NdT/9zXU//c11P/3Nd | |
| 255 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 256 | + T/9zXU//c11P/3NdT/////////////////9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//0eDg/9Hg | |
| 257 | + 4P/R4OD/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nc | |
| 258 | + T9ZyXU7Oc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////// | |
| 259 | + //9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 260 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//////////////////c11P/3NdT//R4OD/0eDg/9Hg | |
| 261 | + 4P9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 262 | + T/9zXU//c11P/3NdT/9zXE7uclxP5nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 263 | + T/9zXU//////////////////c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 264 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/////////////////3Nd | |
| 265 | + T/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 266 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NcTt5zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 267 | + T/9zXU//c11P/3NdT/9zXU//c11P/////////////////3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 268 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 269 | + T/////////////////9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3Nd | |
| 270 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU/Gc11P/3Nd | |
| 271 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////////9zXU//c11P/3Nd | |
| 272 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 273 | + T/9zXU//c11P/3NdT/9zXU//////////////////c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/9Hg | |
| 274 | + 4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 275 | + T/9yXE/mc11OrnNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU////////// | |
| 276 | + ////////c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 277 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/////////////////3NdT/9zXU//0eDg/9Hg | |
| 278 | + 4P/R4OD/c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 279 | + T/9zXU//c11P/3NdT/9zXU//cl1OznJcT5ZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 280 | + T/9zXU//c11P/////////////////3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 281 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////// | |
| 282 | + //9zXU//c11P/9Hg4P/R4OD/0eDg/3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT/9zXU//c11P/3Nd | |
| 283 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT7ZzXU9/c11P/3NdT/9zXU//c11P/3Nd | |
| 284 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////////9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 285 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 286 | + T/9zXU//////////////////c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/7rDwf/R4OD/xM/O/3Nd | |
| 287 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU6eclxPX3Nd | |
| 288 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//////////////////c11P/3Nd | |
| 289 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 290 | + T/9zXU//c11P/3NdT/9zXU//c11P/////////////////3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3Nd | |
| 291 | + T/9zXU//kY2H/3hlWf9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 292 | + T/9zXU//c11Pf3NbTz9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P//// | |
| 293 | + /////////////3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 294 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////////9zXU//c11P/9Hg | |
| 295 | + 4P/R4OD/0eDg/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 296 | + T/9zXU//c11P/3NdT/9zXU//c11P/3JcT18AAAAAc1xO7nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 297 | + T/9zXU//c11P/3NdT/////////////////9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 298 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU////////// | |
| 299 | + ////////c11P/3NdT//R4OD/0eDg/9Hg4P9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 300 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9vXk8PAAAAAHNdTp5zXU//c11P/3Nd | |
| 301 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//////////////////c11P/3NdT/9zXU//c11P/3Nd | |
| 302 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 303 | + T/9zXU//c11P/////////////////3NdT/9zXU//0eDg/9Hg4P/R4OD/c11P/3NdT/9zXU//c11P/3Nd | |
| 304 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9yXU6+AAAAAAAA | |
| 305 | + AAByXE9Pc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/////////////////3Nd | |
| 306 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 307 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/////////////////9zXU//c11P/7rDwf/R4OD/xM/O/3Nd | |
| 308 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 309 | + T/9zXU//cV1PbwAAAAAAAAAAfl49B3JcT/ZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 310 | + T/////////////////9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 311 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//////////////////c11P/3Nd | |
| 312 | + T/9zXU//kY2H/3hlWf9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 313 | + T/9zXU//c11P/3NdT/9zXU//c11P/29fTx8AAAAAAAAAAAAAAABzXU6uc11P/3NdT/9zXU//c11P/3Nd | |
| 314 | + T/9zXU//c11P/3NdT/9zXU//////////////////aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 315 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ//// | |
| 316 | + /////////////3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 317 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JdTs4AAAAAAAAAAAAAAAAAAAAAclxPT3Nd | |
| 318 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/////////////////2hVSf9oVUn/aFVJ/2hV | |
| 319 | + Sf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hVSf9oVUn/aFVJ/2hV | |
| 320 | + Sf9oVUn/aFVJ/2hVSf////////////////9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 321 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9xXU9vAAAAAAAA | |
| 322 | + AAAAAAAAAAAAAAAAAAByXU7Oc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT//s6ur///////// | |
| 323 | + //////////////////////////////////////////////////////////////////////////////// | |
| 324 | + ///////////////////////////////////////////////////4+Pf/c11P/3NdT/9zXU//c11P/3Nd | |
| 325 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 326 | + T/9yXE/mfl49BwAAAAAAAAAAAAAAAAAAAAAAAAAAcVtNN3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 327 | + T/9zXU//ubKu//////////////////////////////////////////////////////////////////// | |
| 328 | + ////////////////////////////////////////////////////////////////////////ycXC/3Nd | |
| 329 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 330 | + T/9zXU//c11P/3NdT/9zXU//c11OZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzXU6uc11P/3Nd | |
| 331 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/+5sq7/5ePi//////////////////////////////////// | |
| 332 | + //////////////////////////////////////////////////////////////////////////////// | |
| 333 | + ///l4+L/xcC+/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 334 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//cl1OzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 335 | + AAAAAAAAcl9MJ3JcT/ZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 336 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 337 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 338 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JcT08AAAAAAAAAAAAA | |
| 339 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzXE6Oc11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 340 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 341 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 342 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 343 | + T8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfl49B3NdT8ZzXU//c11P/3Nd | |
| 344 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 345 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 346 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 347 | + T/9zXU//c11P/3JcT+ZvX08fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 348 | + AABvX08fclxP5nNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 349 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 350 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 351 | + T/9zXU//c11P/3NdT/9zXU//c11P/3JcT/ZxW003AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 352 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFbTTdyXE/2c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 353 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 354 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 355 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE5XAAAAAAAAAAAAAAAAAAAAAAAA | |
| 356 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAclxPX3NdT/9zXU//c11P/3Nd | |
| 357 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 358 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 359 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXE+GAAAAAAAA | |
| 360 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 361 | + AABzXU9/c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 362 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 363 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 364 | + T/9zXU6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 365 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNcTldyXE/2c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 366 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 367 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 368 | + T/9zXU//c11P/3NdT/9xXU9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 369 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcVtNN3JcT+ZzXU//c11P/3Nd | |
| 370 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 371 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 372 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NcTu5yXE9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 373 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 374 | + AAB0X0kXc11PxnNdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 375 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 376 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NcT9ZyX0wnAAAAAAAAAAAAAAAAAAAAAAAA | |
| 377 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 378 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5ePQdzXE6OclxP9nNdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 379 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 380 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3JcT5ZvXk8PAAAAAAAA | |
| 381 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 382 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9fTx9yXU+mc11P/3Nd | |
| 383 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 384 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11PtnRa | |
| 385 | + Ty8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 386 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 387 | + AAAAAAAAAAAAAHFbTTdyXU6+c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 388 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 389 | + T/9yXU7Oc1tPPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 390 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 391 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJcT09yXU+mc1xO7nNdT/9zXU//c11P/3Nd | |
| 392 | + T/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 393 | + T/9zXU//clxP9nNdTq5yXE9fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 394 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 395 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 396 | + AABxXE1HclxPlnJcT+ZzXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3NdT/9zXU//c11P/3Nd | |
| 397 | + T/9zXU//c11P/3NcTu5zXU6eclxPT35ePQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 398 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 399 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 400 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFpPL3FcTUdzXU9/c11Pf3NdTp5yXU6+cl1OvnJd | |
| 401 | + Tr5yXU6+cl1PpnNdT39zXU9/clxPT3FbTTcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 402 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 403 | + AAAAAAAA////AAD///////gAAB//////wAAAA/////8AAAAA/////gAAAAA////4AAAAAB////AAAAAA | |
| 404 | + D///4AAAAAAH//+AAAAAAAH//wAAAAAAAP//AAAAAAAA//4AAAAAAAB//AAAAAAAAD/4AAAAAAAAH/gA | |
| 405 | + AAAAAAAP8AAAAAAAAA/wAAAAAAAAB+AAAAAAAAAHwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADgAAAAAAA | |
| 406 | + AAGAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 407 | + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
| 408 | + AAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AA | |
| 409 | + AAAAAAAD4AAAAAAAAAPgAAAAAAAAB/AAAAAAAAAP8AAAAAAAAA/4AAAAAAAAH/gAAAAAAAAf/AAAAAAA | |
| 410 | + AD/+AAAAAAAAf/8AAAAAAAD//4AAAAAAAf//wAAAAAAD///gAAAAAAf///AAAAAAD///+AAAAAAf///+ | |
| 411 | + AAAAAH////+AAAAB/////+AAAAf//////AAAH///////gAH///8= | |
| 412 | +</value> | |
| 413 | + </data> | |
| 414 | + <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 415 | + <value>307, 21</value> | |
| 416 | + </metadata> | |
| 417 | + <metadata name="timer_LogApi.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |
| 418 | + <value>394, 21</value> | |
| 419 | + </metadata> | |
| 420 | +</root>(No newline at end of file) |
+++ SignusKHSVR/Program.cs
... | ... | @@ -0,0 +1,86 @@ |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Threading.Tasks; | |
| 5 | +using System.Windows.Forms; | |
| 6 | +using System.Runtime.InteropServices; | |
| 7 | +using System.IO; | |
| 8 | + | |
| 9 | +namespace SignusKHSVR | |
| 10 | +{ | |
| 11 | + static class Program | |
| 12 | + { | |
| 13 | + [DllImport("user32.dll")] | |
| 14 | + public static extern uint RegisterWindowMessage(string lpString); | |
| 15 | + [DllImport("user32.dll")] | |
| 16 | + public static extern bool PostMessage(IntPtr hWnd, uint Msg, uint wParam, uint lParam); | |
| 17 | + | |
| 18 | + public static uint messageQuit = 0; | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 해당 응용 프로그램의 주 진입점입니다. | |
| 22 | + /// </summary> | |
| 23 | + [STAThread] | |
| 24 | + static void Main() | |
| 25 | + { | |
| 26 | + bool createNew = false; | |
| 27 | + //프로그램 중복실행 방지 | |
| 28 | + System.Threading.Mutex mutex = new System.Threading.Mutex(true, "__U3_SIGNUS_KHSVR_W__MUTEX__", out createNew); | |
| 29 | + | |
| 30 | + if (createNew == false) | |
| 31 | + { | |
| 32 | + MessageBox.Show("프로그램이 이미 실행중입니다.", "SIGNUS"); | |
| 33 | + return; | |
| 34 | + } | |
| 35 | + | |
| 36 | + U3Config config = new U3Config(); | |
| 37 | + | |
| 38 | + SFLogApi log = new SFLogApi(); | |
| 39 | + log.Run(); | |
| 40 | + | |
| 41 | + messageQuit = RegisterWindowMessage("MSG_SIGNUS_QUIT"); | |
| 42 | + | |
| 43 | + Application.EnableVisualStyles(); | |
| 44 | + Application.SetCompatibleTextRenderingDefault(false); | |
| 45 | + Application.Run(new Form1()); | |
| 46 | + } | |
| 47 | + | |
| 48 | + static public void DeleteOldFiles(string dirName, int nSec) | |
| 49 | + { | |
| 50 | + DateTime dt = DateTime.Now.AddSeconds(-nSec); | |
| 51 | + string[] files = Directory.GetFiles(dirName); | |
| 52 | + | |
| 53 | + foreach (string file in files) | |
| 54 | + { | |
| 55 | + try | |
| 56 | + { | |
| 57 | + FileInfo fi = new FileInfo(file); | |
| 58 | + if (fi.CreationTime < dt) | |
| 59 | + fi.Delete(); | |
| 60 | + } | |
| 61 | + catch | |
| 62 | + { | |
| 63 | + } | |
| 64 | + } | |
| 65 | + } | |
| 66 | + | |
| 67 | + static public void MoveFiles(string srcDir, string dstDir) | |
| 68 | + { | |
| 69 | + string[] files = Directory.GetFiles(srcDir); | |
| 70 | + foreach (string file in files) | |
| 71 | + { | |
| 72 | + try | |
| 73 | + { | |
| 74 | + FileInfo fi = new FileInfo(file); | |
| 75 | + if(fi.Length > 0) | |
| 76 | + { | |
| 77 | + File.Move(file, dstDir + "\\" + fi.Name); | |
| 78 | + } | |
| 79 | + } | |
| 80 | + catch | |
| 81 | + { | |
| 82 | + } | |
| 83 | + } | |
| 84 | + } | |
| 85 | + } | |
| 86 | +} |
+++ SignusKHSVR/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("SignusKHSVR")] | |
| 9 | +[assembly: AssemblyDescription("")] | |
| 10 | +[assembly: AssemblyConfiguration("")] | |
| 11 | +[assembly: AssemblyCompany("")] | |
| 12 | +[assembly: AssemblyProduct("SignusKHSVR")] | |
| 13 | +[assembly: AssemblyCopyright("Copyright © 2021")] | |
| 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("7f1050f6-b03b-45c2-9f19-6632066e4b5c")] | |
| 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")] |
+++ SignusKHSVR/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 SignusKHSVR.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("SignusKHSVR.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 | +} |
+++ SignusKHSVR/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>(No newline at end of file) |
+++ SignusKHSVR/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 SignusKHSVR.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 | +} |
+++ SignusKHSVR/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> |
+++ SignusKHSVR/SFLogApi.cs
... | ... | @@ -0,0 +1,121 @@ |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Text; | |
| 5 | +using System.Data; | |
| 6 | +using System.Web; | |
| 7 | +using System.Net; | |
| 8 | +using System.IO; | |
| 9 | +using System.Threading.Tasks; | |
| 10 | + | |
| 11 | +namespace SignusKHSVR | |
| 12 | +{ | |
| 13 | + public class SFLogApi | |
| 14 | + { | |
| 15 | + public void Run() | |
| 16 | + { | |
| 17 | + U3Database db = new U3Database(); | |
| 18 | + string strSQL = ""; | |
| 19 | + | |
| 20 | + strSQL = "select * from T_SYS_LOG_SF where SEND_YN = 'N' and logDt >= '2022-12-01 00:00:00' "; | |
| 21 | + DataTable dt = db.OpenSQL(strSQL); | |
| 22 | + | |
| 23 | + foreach(DataRow dr in dt.Rows) | |
| 24 | + { | |
| 25 | + string crtfcKey = "$5$API$1WbqYTUStuf.RwPb2dgv//OCyn//FDtEWyIAFQQhvE/"; | |
| 26 | + | |
| 27 | + string idx = U3Util.toStr(dr["IDX"]); | |
| 28 | + string logDt = U3Util.toStr(dr["logDt"]); | |
| 29 | + string useSe = U3Util.toStr(dr["useSe"]); | |
| 30 | + string sysUser = U3Util.toStr(dr["sysUser"]); | |
| 31 | + string conectIp = U3Util.toStr(dr["conectIp"]); | |
| 32 | + string dataUsgqty = U3Util.toStr(dr["dataUsgqty"]); | |
| 33 | + | |
| 34 | + if (sysUser.Length == 0) sysUser = "houghton"; | |
| 35 | + | |
| 36 | + string strJson = ""; | |
| 37 | + strJson += "{"; | |
| 38 | + strJson += "\"crtfcKey\":\"" + crtfcKey + "\","; | |
| 39 | + strJson += "\"logDt\":\"" + logDt + "\","; | |
| 40 | + strJson += "\"useSe\":\"" + useSe + "\","; | |
| 41 | + strJson += "\"sysUser\":\"" + sysUser + "\","; | |
| 42 | + strJson += "\"conectIp\":\"" + conectIp + "\","; | |
| 43 | + strJson += "\"dataUsgqty\":\"" + dataUsgqty + "\""; | |
| 44 | + strJson += "}"; | |
| 45 | + string strJsonEnc = HttpUtility.UrlEncode(strJson); | |
| 46 | + | |
| 47 | + string strUrl = "https://log.smart-factory.kr/apisvc/sendLogDataJSON.do?logData="; | |
| 48 | + string strSend = strUrl + strJsonEnc; | |
| 49 | + string strRecv = HttpGet(strSend); | |
| 50 | + | |
| 51 | + //string strUrl = "https://log.smart-factory.kr/apisvc/sendLogData.json"; | |
| 52 | + //string strSend = strJson; | |
| 53 | + //string strRecv = HttpPost(strUrl, strSend); | |
| 54 | + | |
| 55 | + string sql1 = ""; | |
| 56 | + sql1 += " update T_SYS_LOG_SF set SEND_YN = 'Y', "; | |
| 57 | + sql1 += " SEND_DATA = '" + strSend + "', "; | |
| 58 | + sql1 += " RECV_DATA = '" + strRecv + "' "; | |
| 59 | + sql1 += " where IDX = " + idx; | |
| 60 | + db.ExcuteSql(sql1); | |
| 61 | + } | |
| 62 | + } | |
| 63 | + | |
| 64 | + private string HttpGet(string strUrl) | |
| 65 | + { | |
| 66 | + try | |
| 67 | + { | |
| 68 | + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(strUrl); | |
| 69 | + httpWebRequest.Method = "GET"; | |
| 70 | + httpWebRequest.Timeout = 5000; | |
| 71 | + | |
| 72 | + var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); | |
| 73 | + using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) | |
| 74 | + { | |
| 75 | + string result = streamReader.ReadToEnd(); | |
| 76 | + return result; | |
| 77 | + } | |
| 78 | + } | |
| 79 | + catch (Exception ex) | |
| 80 | + { | |
| 81 | + U3Util.ErrorLog(ex.Message); | |
| 82 | + return ""; | |
| 83 | + } | |
| 84 | + } | |
| 85 | + | |
| 86 | + private string HttpPost(string strUrl, string strSend) | |
| 87 | + { | |
| 88 | + try | |
| 89 | + { | |
| 90 | + HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(strUrl); | |
| 91 | + httpWebRequest.Method = "POST"; | |
| 92 | + //httpWebRequest.ContentType = "application/json; charset=utf-8"; | |
| 93 | + httpWebRequest.ContentType = "application/x-www-form-urlencoded; charset=utf-8"; | |
| 94 | + httpWebRequest.Timeout = 5000; | |
| 95 | + | |
| 96 | + using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) | |
| 97 | + { | |
| 98 | + byte[] byteArray = Encoding.UTF8.GetBytes(strSend); | |
| 99 | + char[] charArray = Encoding.Default.GetChars(byteArray); | |
| 100 | + streamWriter.Write(charArray, 0, charArray.Length); | |
| 101 | + | |
| 102 | + //streamWriter.Write(strSend); | |
| 103 | + streamWriter.Flush(); | |
| 104 | + streamWriter.Close(); | |
| 105 | + | |
| 106 | + var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); | |
| 107 | + using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) | |
| 108 | + { | |
| 109 | + string result = streamReader.ReadToEnd(); | |
| 110 | + return result; | |
| 111 | + } | |
| 112 | + } | |
| 113 | + } | |
| 114 | + catch (Exception ex) | |
| 115 | + { | |
| 116 | + U3Util.ErrorLog(ex.Message); | |
| 117 | + return ""; | |
| 118 | + } | |
| 119 | + } | |
| 120 | + } | |
| 121 | +} |
+++ SignusKHSVR/SignusKHSVR.csproj
... | ... | @@ -0,0 +1,99 @@ |
| 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>{7F1050F6-B03B-46C2-9F29-6632066E4B5C}</ProjectGuid> | |
| 8 | + <OutputType>WinExe</OutputType> | |
| 9 | + <RootNamespace>SignusKHSVR</RootNamespace> | |
| 10 | + <AssemblyName>SignusKHSVR</AssemblyName> | |
| 11 | + <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |
| 12 | + <FileAlignment>512</FileAlignment> | |
| 13 | + <Deterministic>true</Deterministic> | |
| 14 | + </PropertyGroup> | |
| 15 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |
| 16 | + <PlatformTarget>AnyCPU</PlatformTarget> | |
| 17 | + <DebugSymbols>true</DebugSymbols> | |
| 18 | + <DebugType>full</DebugType> | |
| 19 | + <Optimize>false</Optimize> | |
| 20 | + <OutputPath>..\bin\</OutputPath> | |
| 21 | + <DefineConstants>DEBUG;TRACE</DefineConstants> | |
| 22 | + <ErrorReport>prompt</ErrorReport> | |
| 23 | + <WarningLevel>4</WarningLevel> | |
| 24 | + </PropertyGroup> | |
| 25 | + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |
| 26 | + <PlatformTarget>AnyCPU</PlatformTarget> | |
| 27 | + <DebugType>pdbonly</DebugType> | |
| 28 | + <Optimize>true</Optimize> | |
| 29 | + <OutputPath>..\bin\</OutputPath> | |
| 30 | + <DefineConstants>TRACE</DefineConstants> | |
| 31 | + <ErrorReport>prompt</ErrorReport> | |
| 32 | + <WarningLevel>4</WarningLevel> | |
| 33 | + </PropertyGroup> | |
| 34 | + <PropertyGroup> | |
| 35 | + <ApplicationIcon>hyundai.ico</ApplicationIcon> | |
| 36 | + </PropertyGroup> | |
| 37 | + <ItemGroup> | |
| 38 | + <Reference Include="System" /> | |
| 39 | + <Reference Include="System.Core" /> | |
| 40 | + <Reference Include="System.Web" /> | |
| 41 | + <Reference Include="System.Xml.Linq" /> | |
| 42 | + <Reference Include="System.Data.DataSetExtensions" /> | |
| 43 | + <Reference Include="Microsoft.CSharp" /> | |
| 44 | + <Reference Include="System.Data" /> | |
| 45 | + <Reference Include="System.Deployment" /> | |
| 46 | + <Reference Include="System.Drawing" /> | |
| 47 | + <Reference Include="System.Net.Http" /> | |
| 48 | + <Reference Include="System.Windows.Forms" /> | |
| 49 | + <Reference Include="System.Xml" /> | |
| 50 | + </ItemGroup> | |
| 51 | + <ItemGroup> | |
| 52 | + <Compile Include="Form1.cs"> | |
| 53 | + <SubType>Form</SubType> | |
| 54 | + </Compile> | |
| 55 | + <Compile Include="Form1.Designer.cs"> | |
| 56 | + <DependentUpon>Form1.cs</DependentUpon> | |
| 57 | + </Compile> | |
| 58 | + <Compile Include="Program.cs" /> | |
| 59 | + <Compile Include="Properties\AssemblyInfo.cs" /> | |
| 60 | + <Compile Include="SFLogApi.cs" /> | |
| 61 | + <Compile Include="U3Config.cs" /> | |
| 62 | + <Compile Include="U3Database.cs" /> | |
| 63 | + <Compile Include="U3Util.cs" /> | |
| 64 | + <EmbeddedResource Include="Form1.resx"> | |
| 65 | + <DependentUpon>Form1.cs</DependentUpon> | |
| 66 | + </EmbeddedResource> | |
| 67 | + <EmbeddedResource Include="Properties\Resources.resx"> | |
| 68 | + <Generator>ResXFileCodeGenerator</Generator> | |
| 69 | + <LastGenOutput>Resources.Designer.cs</LastGenOutput> | |
| 70 | + <SubType>Designer</SubType> | |
| 71 | + </EmbeddedResource> | |
| 72 | + <Compile Include="Properties\Resources.Designer.cs"> | |
| 73 | + <AutoGen>True</AutoGen> | |
| 74 | + <DependentUpon>Resources.resx</DependentUpon> | |
| 75 | + </Compile> | |
| 76 | + <None Include="Properties\Settings.settings"> | |
| 77 | + <Generator>SettingsSingleFileGenerator</Generator> | |
| 78 | + <LastGenOutput>Settings.Designer.cs</LastGenOutput> | |
| 79 | + </None> | |
| 80 | + <Compile Include="Properties\Settings.Designer.cs"> | |
| 81 | + <AutoGen>True</AutoGen> | |
| 82 | + <DependentUpon>Settings.settings</DependentUpon> | |
| 83 | + <DesignTimeSharedInput>True</DesignTimeSharedInput> | |
| 84 | + </Compile> | |
| 85 | + </ItemGroup> | |
| 86 | + <ItemGroup> | |
| 87 | + <None Include="App.config" /> | |
| 88 | + </ItemGroup> | |
| 89 | + <ItemGroup> | |
| 90 | + <Content Include="hyundai.ico" /> | |
| 91 | + </ItemGroup> | |
| 92 | + <ItemGroup> | |
| 93 | + <ProjectReference Include="..\YdtechLib\YdtechLib.csproj"> | |
| 94 | + <Project>{1db7db22-f72f-4f63-b892-b099438fda25}</Project> | |
| 95 | + <Name>YdtechLib</Name> | |
| 96 | + </ProjectReference> | |
| 97 | + </ItemGroup> | |
| 98 | + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |
| 99 | +</Project>(No newline at end of file) |
+++ SignusKHSVR/U3Config.cs
... | ... | @@ -0,0 +1,68 @@ |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Text; | |
| 5 | +using System.Threading.Tasks; | |
| 6 | +using System.Runtime.InteropServices; | |
| 7 | +using System.Windows.Forms; | |
| 8 | + | |
| 9 | +namespace SignusKHSVR | |
| 10 | +{ | |
| 11 | + public class U3Config | |
| 12 | + { | |
| 13 | + public const bool FLAG_TEST = true; | |
| 14 | + public const int MAX_DI = 4; | |
| 15 | + public const int MAX_DEV = 100; | |
| 16 | + static public string m_SqlConnStr = ""; | |
| 17 | + | |
| 18 | + [DllImport("kernel32")] | |
| 19 | + private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); | |
| 20 | + [DllImport("kernel32")] | |
| 21 | + private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); | |
| 22 | + | |
| 23 | + protected string GetIniFile() | |
| 24 | + { | |
| 25 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 26 | + return AppPath + "\\Config.ini"; | |
| 27 | + } | |
| 28 | + | |
| 29 | + protected string GetIniValue(string Section, string Key, string defvalue) | |
| 30 | + { | |
| 31 | + StringBuilder temp = new StringBuilder(255); | |
| 32 | + int i = GetPrivateProfileString(Section, Key, defvalue, temp, 255, GetIniFile()); | |
| 33 | + return temp.ToString(); | |
| 34 | + } | |
| 35 | + | |
| 36 | + protected void SetIniValue(string Section, string Key, string Value) | |
| 37 | + { | |
| 38 | + WritePrivateProfileString(Section, Key, Value, GetIniFile()); | |
| 39 | + } | |
| 40 | + | |
| 41 | + //public string m_StrMqttIP = ""; | |
| 42 | + public string m_StrSqlServerIP = ""; | |
| 43 | + | |
| 44 | + public U3Config() | |
| 45 | + { | |
| 46 | + Load(); | |
| 47 | + | |
| 48 | + // 테스트용 개발 서버 | |
| 49 | + //m_SqlConnStr = "Provider=SQLOLEDB.1;Password=tlrmsjtm~1@3;Persist Security Info=False;User ID=sa;Initial Catalog=U3SMES;Data Source=signus-sf1.koreacentral.cloudapp.azure.com,14443"; | |
| 50 | + | |
| 51 | + // 한국하우톤 현장 서버 | |
| 52 | + m_SqlConnStr = "Provider=SQLOLEDB.1;Password=signus1!;Persist Security Info=False;User ID=sa;Initial Catalog=U3SMES;Data Source=192.168.1.17,1433"; | |
| 53 | + } | |
| 54 | + | |
| 55 | + public void Save() | |
| 56 | + { | |
| 57 | + //SetIniValue("MQTT", "IPADDR", m_StrMqttIP); | |
| 58 | + SetIniValue("SQLSERVER", "IPADDR", m_StrSqlServerIP); | |
| 59 | + } | |
| 60 | + | |
| 61 | + public void Load() | |
| 62 | + { | |
| 63 | + m_StrSqlServerIP = GetIniValue("SQLSERVER", "IPADDR", "192.168.1.17"); | |
| 64 | + //m_StrMqttIP = GetIniValue("MQTT", "IPADDR", "192.168.0.200"); | |
| 65 | + //m_StrSqlServerIP = GetIniValue("SQLSERVER", "IPADDR", "192.168.0.240"); | |
| 66 | + } | |
| 67 | + } | |
| 68 | +} |
+++ SignusKHSVR/U3Database.cs
... | ... | @@ -0,0 +1,157 @@ |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Text; | |
| 5 | +using System.Threading.Tasks; | |
| 6 | +using System.Data; | |
| 7 | +using System.Data.OleDb; | |
| 8 | + | |
| 9 | +namespace SignusKHSVR | |
| 10 | +{ | |
| 11 | + public class U3Database | |
| 12 | + { | |
| 13 | + private OleDbConnection mCN = null; | |
| 14 | + private OleDbCommand mCmd = null; | |
| 15 | + | |
| 16 | + public bool SetSqlServer() | |
| 17 | + { | |
| 18 | + try | |
| 19 | + { | |
| 20 | + mCN = new OleDbConnection(); | |
| 21 | + mCN.ConnectionString = U3Config.m_SqlConnStr; | |
| 22 | + mCN.Open(); | |
| 23 | + return true; | |
| 24 | + } | |
| 25 | + catch (Exception ex) | |
| 26 | + { | |
| 27 | + U3Util.ErrorLog("Can't connect to database." + Environment.NewLine + ex.Message); | |
| 28 | + return false; | |
| 29 | + } | |
| 30 | + } | |
| 31 | + | |
| 32 | + public DataTable OpenSQL(string strSQL) | |
| 33 | + { | |
| 34 | + DataTable retTable = new DataTable(); | |
| 35 | + | |
| 36 | + try | |
| 37 | + { | |
| 38 | + mCN = new OleDbConnection(); | |
| 39 | + mCN.ConnectionString = U3Config.m_SqlConnStr; | |
| 40 | + mCN.Open(); | |
| 41 | + | |
| 42 | + mCmd = new OleDbCommand(strSQL, mCN); | |
| 43 | + OleDbDataAdapter da = new OleDbDataAdapter(mCmd); | |
| 44 | + da.Fill(retTable); | |
| 45 | + } | |
| 46 | + catch (Exception ex) | |
| 47 | + { | |
| 48 | + U3Util.ErrorLog(strSQL); | |
| 49 | + U3Util.ErrorLog(ex.Message); | |
| 50 | + } | |
| 51 | + finally | |
| 52 | + { | |
| 53 | + if (mCN != null) mCN.Close(); | |
| 54 | + } | |
| 55 | + return retTable; | |
| 56 | + } | |
| 57 | + | |
| 58 | + | |
| 59 | + public DataSet OpenSQLSet(string strSQL) | |
| 60 | + { | |
| 61 | + DataSet retTable = new DataSet(); | |
| 62 | + | |
| 63 | + try | |
| 64 | + { | |
| 65 | + mCN = new OleDbConnection(); | |
| 66 | + mCN.ConnectionString = U3Config.m_SqlConnStr; | |
| 67 | + mCN.Open(); | |
| 68 | + | |
| 69 | + mCmd = new OleDbCommand(strSQL, mCN); | |
| 70 | + OleDbDataAdapter da = new OleDbDataAdapter(mCmd); | |
| 71 | + da.Fill(retTable); | |
| 72 | + } | |
| 73 | + catch (Exception ex) | |
| 74 | + { | |
| 75 | + U3Util.ErrorLog(strSQL); | |
| 76 | + U3Util.ErrorLog(ex.Message); | |
| 77 | + } | |
| 78 | + finally | |
| 79 | + { | |
| 80 | + if (mCN != null) mCN.Close(); | |
| 81 | + } | |
| 82 | + return retTable; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public int ExcuteSql(string strSql) | |
| 86 | + { | |
| 87 | + try | |
| 88 | + { | |
| 89 | + mCN = new OleDbConnection(); | |
| 90 | + mCN.ConnectionString = U3Config.m_SqlConnStr; | |
| 91 | + mCN.Open(); | |
| 92 | + | |
| 93 | + mCmd = new OleDbCommand(strSql, mCN); | |
| 94 | + int iResult = mCmd.ExecuteNonQuery(); | |
| 95 | + | |
| 96 | + return iResult; | |
| 97 | + } | |
| 98 | + catch (Exception ex) | |
| 99 | + { | |
| 100 | + U3Util.ErrorLog(strSql); | |
| 101 | + U3Util.ErrorLog(ex.Message); | |
| 102 | + return 0; | |
| 103 | + } | |
| 104 | + finally | |
| 105 | + { | |
| 106 | + if (mCN != null) mCN.Close(); | |
| 107 | + } | |
| 108 | + } | |
| 109 | + | |
| 110 | + public bool ExcuteSqls(List<string> strSqls) | |
| 111 | + { | |
| 112 | + string strMsg = ""; | |
| 113 | + return ExcuteSqls(strSqls, out strMsg); | |
| 114 | + } | |
| 115 | + | |
| 116 | + public bool ExcuteSqls(List<string> strSqls, out string strMessage) | |
| 117 | + { | |
| 118 | + string strSQL = string.Empty; | |
| 119 | + try | |
| 120 | + { | |
| 121 | + mCN = new OleDbConnection(); | |
| 122 | + mCN.ConnectionString = U3Config.m_SqlConnStr; | |
| 123 | + mCN.Open(); | |
| 124 | + | |
| 125 | + mCmd = new OleDbCommand(); | |
| 126 | + mCmd.Connection = mCN; | |
| 127 | + } | |
| 128 | + catch (Exception ex) | |
| 129 | + { | |
| 130 | + U3Util.ErrorLog(ex.Message); | |
| 131 | + if (mCN != null) mCN.Close(); | |
| 132 | + strMessage = "DB접속 오류: " + ex.Message; | |
| 133 | + return false; | |
| 134 | + } | |
| 135 | + | |
| 136 | + int count = 0; | |
| 137 | + foreach (string strSql in strSqls) | |
| 138 | + { | |
| 139 | + strSQL = strSql; | |
| 140 | + try | |
| 141 | + { | |
| 142 | + mCmd.CommandText = strSql; | |
| 143 | + mCmd.ExecuteNonQuery(); | |
| 144 | + count++; | |
| 145 | + } | |
| 146 | + catch (Exception ex) | |
| 147 | + { | |
| 148 | + U3Util.ErrorLog(strSQL); | |
| 149 | + U3Util.ErrorLog(ex.Message); | |
| 150 | + } | |
| 151 | + } | |
| 152 | + if (mCN != null) mCN.Close(); | |
| 153 | + strMessage = string.Format("SQL 실행 완료({0}건 실행, {1}건 성공)", strSqls.Count, count); | |
| 154 | + return true; | |
| 155 | + } | |
| 156 | + } | |
| 157 | +} |
+++ SignusKHSVR/U3Util.cs
... | ... | @@ -0,0 +1,302 @@ |
| 1 | +using System; | |
| 2 | +using System.Collections.Generic; | |
| 3 | +using System.Linq; | |
| 4 | +using System.Text; | |
| 5 | +using System.Threading.Tasks; | |
| 6 | +using System.Windows.Forms; | |
| 7 | +using System.IO; | |
| 8 | +using System.Drawing; | |
| 9 | +using System.Drawing.Imaging; | |
| 10 | +using System.Drawing.Drawing2D; | |
| 11 | + | |
| 12 | +namespace SignusKHSVR | |
| 13 | +{ | |
| 14 | + public class U3Util | |
| 15 | + { | |
| 16 | + static public Random rnd = new Random(new System.DateTime().Millisecond); | |
| 17 | + | |
| 18 | + static public string GetErrorLogFile(bool bFullPath) | |
| 19 | + { | |
| 20 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 21 | + string AppName = Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf("\\") + 1); | |
| 22 | + string AppTitle = AppName.Substring(0, AppName.LastIndexOf(".")); | |
| 23 | + | |
| 24 | + if (bFullPath) | |
| 25 | + return AppPath + "\\" + AppTitle + "Error.txt"; | |
| 26 | + else | |
| 27 | + return AppTitle + "Error.txt"; | |
| 28 | + } | |
| 29 | + | |
| 30 | + static public string GetEventLogFile(bool bFullPath) | |
| 31 | + { | |
| 32 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 33 | + string AppName = Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf("\\") + 1); | |
| 34 | + string AppTitle = AppName.Substring(0, AppName.LastIndexOf(".")); | |
| 35 | + | |
| 36 | + if (bFullPath) | |
| 37 | + return AppPath + "\\" + AppTitle + "Event.txt"; | |
| 38 | + else | |
| 39 | + return AppTitle + "Event.txt"; | |
| 40 | + } | |
| 41 | + | |
| 42 | + static public string GetImagePath() | |
| 43 | + { | |
| 44 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 45 | + return AppPath + "\\" + "Images"; | |
| 46 | + } | |
| 47 | + | |
| 48 | + public static Bitmap ResizeImage(Image image, int width, int height) | |
| 49 | + { | |
| 50 | + var destRect = new Rectangle(0, 0, width, height); | |
| 51 | + var destImage = new Bitmap(width, height); | |
| 52 | + | |
| 53 | + destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); | |
| 54 | + | |
| 55 | + using (var graphics = Graphics.FromImage(destImage)) | |
| 56 | + { | |
| 57 | + graphics.CompositingMode = CompositingMode.SourceCopy; | |
| 58 | + graphics.CompositingQuality = CompositingQuality.HighQuality; | |
| 59 | + graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; | |
| 60 | + graphics.SmoothingMode = SmoothingMode.HighQuality; | |
| 61 | + graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; | |
| 62 | + | |
| 63 | + using (var wrapMode = new ImageAttributes()) | |
| 64 | + { | |
| 65 | + wrapMode.SetWrapMode(WrapMode.TileFlipXY); | |
| 66 | + graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); | |
| 67 | + } | |
| 68 | + } | |
| 69 | + return destImage; | |
| 70 | + } | |
| 71 | + | |
| 72 | + public static void ErrorLog(string strLog) | |
| 73 | + { | |
| 74 | + try | |
| 75 | + { | |
| 76 | + FileLog(strLog, GetErrorLogFile(false)); | |
| 77 | + } | |
| 78 | + catch | |
| 79 | + { | |
| 80 | + } | |
| 81 | + } | |
| 82 | + | |
| 83 | + public static void EventLog(string strLog) | |
| 84 | + { | |
| 85 | + try | |
| 86 | + { | |
| 87 | + FileLog(strLog, GetEventLogFile(false)); | |
| 88 | + } | |
| 89 | + catch | |
| 90 | + { | |
| 91 | + } | |
| 92 | + } | |
| 93 | + | |
| 94 | + public static void FileLog(string strLog, string strFileName) | |
| 95 | + { | |
| 96 | + string str = ""; | |
| 97 | + | |
| 98 | + DateTime t = DateTime.Now; | |
| 99 | + str = t.ToString("(yyyy-MM-dd HH:mm:ss.fff) "); | |
| 100 | + str += strLog; | |
| 101 | + | |
| 102 | + try | |
| 103 | + { | |
| 104 | + string AppPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\")); | |
| 105 | + string strLogFile = AppPath + "\\" + strFileName; | |
| 106 | + FileBackup(strLogFile); | |
| 107 | + FileWrite(strLogFile, str); | |
| 108 | + } | |
| 109 | + catch (Exception ex) | |
| 110 | + { | |
| 111 | + throw new Exception("FileLog->:" + ex.Message); | |
| 112 | + } | |
| 113 | + } | |
| 114 | + | |
| 115 | + public static void FileBackup(string strLogFile) | |
| 116 | + { | |
| 117 | + if (File.Exists(strLogFile)) | |
| 118 | + { | |
| 119 | + try | |
| 120 | + { | |
| 121 | + FileInfo f = new FileInfo(strLogFile); | |
| 122 | + if (f.Length >= (2 * 1024 * 1024)) | |
| 123 | + { | |
| 124 | + System.IO.File.Delete(strLogFile + ".bak"); | |
| 125 | + f.MoveTo(strLogFile + ".bak"); | |
| 126 | + } | |
| 127 | + } | |
| 128 | + catch (Exception ex) | |
| 129 | + { | |
| 130 | + throw new Exception("FileBackup->:" + ex.Message); | |
| 131 | + } | |
| 132 | + } | |
| 133 | + } | |
| 134 | + | |
| 135 | + public static void FileWrite(string strLogFile, string str) | |
| 136 | + { | |
| 137 | + try | |
| 138 | + { | |
| 139 | + FileStream fs = new FileStream(strLogFile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); | |
| 140 | + fs.Seek(0, SeekOrigin.End); | |
| 141 | + StreamWriter swFromFile = new StreamWriter(fs); | |
| 142 | + swFromFile.WriteLine(str); | |
| 143 | + swFromFile.Close(); | |
| 144 | + fs.Close(); | |
| 145 | + } | |
| 146 | + catch (Exception ex) | |
| 147 | + { | |
| 148 | + ErrorLog("FileWrite->:" + ex.Message); | |
| 149 | + } | |
| 150 | + } | |
| 151 | + | |
| 152 | + public static string FileRead(string strFileName) | |
| 153 | + { | |
| 154 | + if (System.IO.File.Exists(strFileName) == false) return ""; | |
| 155 | + | |
| 156 | + string result = ""; | |
| 157 | + try | |
| 158 | + { | |
| 159 | + FileStream fs = new FileStream(strFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); | |
| 160 | + fs.Seek(0, SeekOrigin.Begin); | |
| 161 | + StreamReader srFile = new StreamReader(fs, Encoding.Default, true); | |
| 162 | + result = srFile.ReadToEnd(); | |
| 163 | + srFile.Close(); | |
| 164 | + fs.Close(); | |
| 165 | + } | |
| 166 | + catch (Exception ex) | |
| 167 | + { | |
| 168 | + ErrorLog("FileRead->:" + ex.Message); | |
| 169 | + } | |
| 170 | + return result; | |
| 171 | + } | |
| 172 | + | |
| 173 | + public static bool GetBit(byte b, int bitNumber) | |
| 174 | + { | |
| 175 | + return (b & (1 << bitNumber)) != 0; | |
| 176 | + } | |
| 177 | + | |
| 178 | + public static bool GetBit(short s, int bitNumber) | |
| 179 | + { | |
| 180 | + return (s & (1 << bitNumber)) != 0; | |
| 181 | + } | |
| 182 | + | |
| 183 | + static public DateTime FromUnixTime(long unixTime) | |
| 184 | + { | |
| 185 | + var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); | |
| 186 | + return epoch.AddSeconds(unixTime); | |
| 187 | + } | |
| 188 | + | |
| 189 | + static public Int32 ToUnixTime(DateTime dt) | |
| 190 | + { | |
| 191 | + return (Int32)(dt.Subtract(new DateTime(1970, 1, 1, 0, 0, 0))).TotalSeconds; | |
| 192 | + } | |
| 193 | + | |
| 194 | + static public void DeleteAllFile(string strPath) | |
| 195 | + { | |
| 196 | + try | |
| 197 | + { | |
| 198 | + System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(strPath); | |
| 199 | + FileInfo[] lst = di.GetFiles(); | |
| 200 | + foreach (FileInfo fi in lst) | |
| 201 | + { | |
| 202 | + System.IO.File.Delete(fi.FullName); | |
| 203 | + } | |
| 204 | + } | |
| 205 | + catch | |
| 206 | + { | |
| 207 | + } | |
| 208 | + } | |
| 209 | + | |
| 210 | + public static string toStr(object obj, string def = "") | |
| 211 | + { | |
| 212 | + if (obj == null) return def; | |
| 213 | + | |
| 214 | + try | |
| 215 | + { | |
| 216 | + return obj.ToString().Trim(); | |
| 217 | + } | |
| 218 | + catch | |
| 219 | + { | |
| 220 | + return def; | |
| 221 | + } | |
| 222 | + } | |
| 223 | + | |
| 224 | + public static bool toBoolean(object obj, bool def = false) | |
| 225 | + { | |
| 226 | + if (obj == null) return def; | |
| 227 | + | |
| 228 | + try | |
| 229 | + { | |
| 230 | + return (bool)obj; | |
| 231 | + } | |
| 232 | + catch | |
| 233 | + { | |
| 234 | + return def; | |
| 235 | + } | |
| 236 | + } | |
| 237 | + | |
| 238 | + public static DateTime toDateTime(object obj) | |
| 239 | + { | |
| 240 | + try | |
| 241 | + { | |
| 242 | + return Convert.ToDateTime(obj); | |
| 243 | + } | |
| 244 | + catch | |
| 245 | + { | |
| 246 | + return DateTime.MinValue; | |
| 247 | + } | |
| 248 | + } | |
| 249 | + | |
| 250 | + public static Decimal toDecimal(object obj, Decimal def = 0M) | |
| 251 | + { | |
| 252 | + if (obj == null) return def; | |
| 253 | + try | |
| 254 | + { | |
| 255 | + return Convert.ToDecimal(obj); | |
| 256 | + } | |
| 257 | + catch | |
| 258 | + { | |
| 259 | + return def; | |
| 260 | + } | |
| 261 | + } | |
| 262 | + | |
| 263 | + public static int toInt(object A, int def = 0) | |
| 264 | + { | |
| 265 | + if (A == null) return def; | |
| 266 | + try | |
| 267 | + { | |
| 268 | + return Convert.ToInt32(Math.Round(Convert.ToDouble(U3Util.toStr(A, "")), 0)); | |
| 269 | + } | |
| 270 | + catch | |
| 271 | + { | |
| 272 | + return def; | |
| 273 | + } | |
| 274 | + } | |
| 275 | + | |
| 276 | + public static double toDouble(object A, double def = 0.0) | |
| 277 | + { | |
| 278 | + if (A == null) return def; | |
| 279 | + try | |
| 280 | + { | |
| 281 | + return double.Parse(U3Util.toStr(A, "")); | |
| 282 | + } | |
| 283 | + catch | |
| 284 | + { | |
| 285 | + return def; | |
| 286 | + } | |
| 287 | + } | |
| 288 | + | |
| 289 | + public static float toFloat(object A, float def = 0.0f) | |
| 290 | + { | |
| 291 | + if (A == null) return def; | |
| 292 | + try | |
| 293 | + { | |
| 294 | + return float.Parse(U3Util.toStr(A, "")); | |
| 295 | + } | |
| 296 | + catch | |
| 297 | + { | |
| 298 | + return def; | |
| 299 | + } | |
| 300 | + } | |
| 301 | + } | |
| 302 | +} |
+++ SignusKHSVR/hyundai.ico
| Binary file is not shown |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?