From 3d7b335a06eac829572902d77f9091b179d95098 Mon Sep 17 00:00:00 2001 From: Chikyun Date: Sun, 5 May 2019 22:25:20 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B6=8C=ED=95=9C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Epole/Common.vb | 16 ++- Epole/MakeList.vb | 58 ++++----- Epole/My Project/AssemblyInfo.vb | 4 +- Epole/ReadMe.txt | 3 +- Epole/dialogForm/DemoDlg.Designer.vb | 105 +++------------- Epole/dialogForm/DemoDlg.vb | 46 +++---- Epole/dialogForm/SplashScreen.vb | 181 ++++++++++++--------------- Epole/업로드폼/XLSImport.vb | 30 ++--- Epole/입력폼/AddEpole_SkNetworks.vb | 8 +- Epole/입력폼/AddEpole_jdung.vb | 8 +- Epole/입력폼/AddEpole_karo.vb | 8 +- Epole/통합번호찰_가로등.vbproj | 10 ++ Epole/통합번호찰_가로등.vbproj.user | 3 +- Epole_통합가로등.v12.suo | Bin 249344 -> 322560 bytes 14 files changed, 206 insertions(+), 274 deletions(-) diff --git a/Epole/Common.vb b/Epole/Common.vb index 144aa1e..a1d5903 100644 --- a/Epole/Common.vb +++ b/Epole/Common.vb @@ -54,6 +54,10 @@ Module Common Dim PATTERNTABLE As DataTable End Structure + Public RunCnt As Integer = 0 + Public RunDate As Date = Now + Public Admin As Boolean = False + Public StyleList() As SStyle Public DataBaseFile As String = My.Application.Info.DirectoryPath & "\database\irea.mdb" @@ -77,7 +81,7 @@ Module Common Public MenuFont As Cfont '//޴ Public FormFont As Cfont '// - Public UserInfo As S_AuthInfo '// + ' Public UserInfo As S_AuthInfo '// Public Enum Work_Type kakong = 0 @@ -148,10 +152,10 @@ Module Common End Function Public Function Check_auth() As Boolean - If UserInfo.Type = E_AuthType.Demo Then - MsgBox("δ ̱ ϴ", MsgBoxStyle.Critical, "ӽûڱ") - Return False - End If + 'If UserInfo.Type = E_AuthType.Demo Then + ' MsgBox("δ ̱ ϴ", MsgBoxStyle.Critical, "ӽûڱ") + ' Return False + 'End If Return True End Function @@ -205,7 +209,7 @@ Module Common End Sub Public Sub AddLog(ByVal t1 As Boolean, ByVal txt As String, Optional ByVal t2fn As String = "") - If UserInfo.Type = E_AuthType.Admin Then Log.RichTextBox1.AppendText(txt & vbCrLf) + 'If UserInfo.Type = E_AuthType.Admin Then Log.RichTextBox1.AppendText(txt & vbCrLf) End Sub Public Sub showlog() Log.Show() diff --git a/Epole/MakeList.vb b/Epole/MakeList.vb index 0d98daf..7643ef4 100644 --- a/Epole/MakeList.vb +++ b/Epole/MakeList.vb @@ -32,7 +32,7 @@ Public Class MakeList Private Sub MakeList_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If e.KeyCode = Keys.F12 Then Dim msg As String = InputBox("pass") - If msg = "arin" Then UserInfo.Type = E_AuthType.Admin + If msg = "arin" Then Admin = True 'UserInfo.Type = E_AuthType.Admin ShowMenu() End If End Sub @@ -40,18 +40,20 @@ Public Class MakeList Private Sub ShowMenu() For Each Obj As ToolStripMenuItem In Me.mbt_addnew.DropDownItems If Not Obj.Tag Is Nothing Then '//±װִ ȮѴ. - If UserInfo.Type = E_AuthType.Admin Then - Obj.Visible = True - Else - Obj.Visible = False - For Each C As Char In UserInfo.Permission - ' MsgBox(C & "//" & Obj.Tag.ToString) - If Obj.Tag.ToString.ToUpper = C.ToString.ToUpper Then '//±װٸ 밡 - Obj.Visible = True - Exit For - End If - Next - End If + Obj.Visible = True + + 'If Admin Then + ' Obj.Visible = True + 'Else + ' Obj.Visible = False + ' For Each C As Char In UserInfo.Permission + ' ' MsgBox(C & "//" & Obj.Tag.ToString) + ' If Obj.Tag.ToString.ToUpper = C.ToString.ToUpper Then '//±װٸ 밡 + ' Obj.Visible = True + ' Exit For + ' End If + ' Next + 'End If End If Next @@ -67,24 +69,24 @@ Public Class MakeList End If Me.view1.ASetting_Load(False) - - Select Case UserInfo.Type - Case E_AuthType.Admin - Me.lb_auth.Text = "[]" - Me.lb_auth.ForeColor = Color.Green - Case E_AuthType.Demo - Me.lb_auth.Text = "[ӽû]" - Me.lb_auth.ForeColor = Color.Blue - Case E_AuthType.Normal - Me.lb_auth.Text = "[]" - Me.lb_auth.ForeColor = Color.Black - End Select + Me.lb_auth.Text = "[:" + RunDate.ToShortDateString() + "]" + 'Select Case UserInfo.Type + ' Case E_AuthType.Admin + ' Me.lb_auth.Text = "[:" + RunDate.ToShortDateString() + "]" + ' Me.lb_auth.ForeColor = Color.Green + ' Case E_AuthType.Demo + ' Me.lb_auth.Text = "[ӽû]" + ' Me.lb_auth.ForeColor = Color.Blue + ' Case E_AuthType.Normal + ' Me.lb_auth.Text = "[]" + ' Me.lb_auth.ForeColor = Color.Black + 'End Select ShowMenu() - If UserInfo.Type = E_AuthType.Demo Then - If DemoDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then End - End If + 'If UserInfo.Type = E_AuthType.Demo Then + ' If DemoDlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then End + 'End If Me.Text = My.Application.Info.ProductName & " Ver. {0}.{1:00}.{2}.{3}" Me.Text = System.String.Format(Me.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build, My.Application.Info.Version.Revision) diff --git a/Epole/My Project/AssemblyInfo.vb b/Epole/My Project/AssemblyInfo.vb index ce8a009..9edcc7b 100644 --- a/Epole/My Project/AssemblyInfo.vb +++ b/Epole/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' 지정되도록 할 수 있습니다. ' - - + + diff --git a/Epole/ReadMe.txt b/Epole/ReadMe.txt index d97a391..74ef04a 100644 --- a/Epole/ReadMe.txt +++ b/Epole/ReadMe.txt @@ -1,4 +1,5 @@ -170717 * 가로등입력화면 관리번호2에서 틀고정 +190505 인증로직변경 +170717 * 가로등입력화면 관리번호2에서 틀고정 * 통합번호찰 프로그램(가로등) 으로 프로그램및 폴더명 모두 수정 * 분리출력시 페이지 이동시에 데이터가 1개 누락되는 현상 제거 170716 diff --git a/Epole/dialogForm/DemoDlg.Designer.vb b/Epole/dialogForm/DemoDlg.Designer.vb index 08e58fb..1a10d88 100644 --- a/Epole/dialogForm/DemoDlg.Designer.vb +++ b/Epole/dialogForm/DemoDlg.Designer.vb @@ -37,15 +37,10 @@ Partial Class DemoDlg Me.LabelCopyright = New System.Windows.Forms.Label() Me.LabelCompanyName = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() - Me.Button4 = New System.Windows.Forms.Button() - Me.Button3 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() - Me.lb_ip = New System.Windows.Forms.Label() Me.lb_expiredate = New System.Windows.Forms.Label() - Me.lb_usertype = New System.Windows.Forms.Label() - Me.lb_remaincnt = New System.Windows.Forms.Label() Me.lb_msg = New System.Windows.Forms.Label() Me.TableLayoutPanel.SuspendLayout() CType(Me.LogoPictureBox, System.ComponentModel.ISupportInitialize).BeginInit() @@ -76,7 +71,7 @@ Partial Class DemoDlg Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 46.95652!)) Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 13.47826!)) Me.TableLayoutPanel.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 8.0!)) - Me.TableLayoutPanel.Size = New System.Drawing.Size(527, 250) + Me.TableLayoutPanel.Size = New System.Drawing.Size(527, 235) Me.TableLayoutPanel.TabIndex = 0 ' 'LogoPictureBox @@ -86,7 +81,7 @@ Partial Class DemoDlg Me.LogoPictureBox.Location = New System.Drawing.Point(3, 3) Me.LogoPictureBox.Name = "LogoPictureBox" Me.TableLayoutPanel.SetRowSpan(Me.LogoPictureBox, 7) - Me.LogoPictureBox.Size = New System.Drawing.Size(167, 244) + Me.LogoPictureBox.Size = New System.Drawing.Size(167, 229) Me.LogoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage Me.LogoPictureBox.TabIndex = 0 Me.LogoPictureBox.TabStop = False @@ -106,7 +101,7 @@ Partial Class DemoDlg 'LabelVersion ' Me.LabelVersion.Dock = System.Windows.Forms.DockStyle.Fill - Me.LabelVersion.Location = New System.Drawing.Point(180, 24) + Me.LabelVersion.Location = New System.Drawing.Point(180, 22) Me.LabelVersion.Margin = New System.Windows.Forms.Padding(7, 0, 3, 0) Me.LabelVersion.MaximumSize = New System.Drawing.Size(0, 16) Me.LabelVersion.Name = "LabelVersion" @@ -118,7 +113,7 @@ Partial Class DemoDlg 'LabelCopyright ' Me.LabelCopyright.Dock = System.Windows.Forms.DockStyle.Fill - Me.LabelCopyright.Location = New System.Drawing.Point(180, 48) + Me.LabelCopyright.Location = New System.Drawing.Point(180, 44) Me.LabelCopyright.Margin = New System.Windows.Forms.Padding(7, 0, 3, 0) Me.LabelCopyright.MaximumSize = New System.Drawing.Size(0, 16) Me.LabelCopyright.Name = "LabelCopyright" @@ -130,7 +125,7 @@ Partial Class DemoDlg 'LabelCompanyName ' Me.LabelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill - Me.LabelCompanyName.Location = New System.Drawing.Point(180, 72) + Me.LabelCompanyName.Location = New System.Drawing.Point(180, 66) Me.LabelCompanyName.Margin = New System.Windows.Forms.Padding(7, 0, 3, 0) Me.LabelCompanyName.MaximumSize = New System.Drawing.Size(0, 16) Me.LabelCompanyName.Name = "LabelCompanyName" @@ -142,50 +137,22 @@ Partial Class DemoDlg 'Panel1 ' Me.Panel1.BackColor = System.Drawing.Color.Transparent - Me.Panel1.Controls.Add(Me.Button4) - Me.Panel1.Controls.Add(Me.Button3) Me.Panel1.Controls.Add(Me.Button2) Me.Panel1.Controls.Add(Me.Button1) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill - Me.Panel1.Location = New System.Drawing.Point(176, 211) + Me.Panel1.Location = New System.Drawing.Point(176, 196) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(348, 26) + Me.Panel1.Size = New System.Drawing.Size(348, 24) Me.Panel1.TabIndex = 2 ' - 'Button4 - ' - Me.Button4.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Button4.BackColor = System.Drawing.Color.Transparent - Me.Button4.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Button4.Location = New System.Drawing.Point(71, 1) - Me.Button4.Name = "Button4" - Me.Button4.Size = New System.Drawing.Size(62, 25) - Me.Button4.TabIndex = 4 - Me.Button4.Text = "인증2(&B)" - Me.Button4.UseVisualStyleBackColor = False - Me.Button4.Visible = False - ' - 'Button3 - ' - Me.Button3.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Button3.BackColor = System.Drawing.Color.Transparent - Me.Button3.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Button3.Location = New System.Drawing.Point(2, 1) - Me.Button3.Name = "Button3" - Me.Button3.Size = New System.Drawing.Size(69, 25) - Me.Button3.TabIndex = 3 - Me.Button3.Text = "인증1(&A)" - Me.Button3.UseVisualStyleBackColor = False - Me.Button3.Visible = False - ' 'Button2 ' - Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Button2.BackColor = System.Drawing.Color.Transparent Me.Button2.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Button2.Location = New System.Drawing.Point(133, 1) + Me.Button2.Dock = System.Windows.Forms.DockStyle.Left + Me.Button2.Location = New System.Drawing.Point(0, 0) Me.Button2.Name = "Button2" - Me.Button2.Size = New System.Drawing.Size(83, 25) + Me.Button2.Size = New System.Drawing.Size(83, 24) Me.Button2.TabIndex = 2 Me.Button2.Text = "홈페이지(&H)" Me.Button2.UseVisualStyleBackColor = False @@ -196,7 +163,7 @@ Partial Class DemoDlg Me.Button1.BackColor = System.Drawing.Color.Transparent Me.Button1.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Button1.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte)) - Me.Button1.Location = New System.Drawing.Point(284, 1) + Me.Button1.Location = New System.Drawing.Point(284, -1) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(64, 25) Me.Button1.TabIndex = 1 @@ -207,67 +174,34 @@ Partial Class DemoDlg ' Me.TableLayoutPanel1.ColumnCount = 1 Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - Me.TableLayoutPanel1.Controls.Add(Me.lb_ip, 0, 4) Me.TableLayoutPanel1.Controls.Add(Me.lb_expiredate, 0, 1) - Me.TableLayoutPanel1.Controls.Add(Me.lb_usertype, 0, 2) - Me.TableLayoutPanel1.Controls.Add(Me.lb_remaincnt, 0, 3) Me.TableLayoutPanel1.Controls.Add(Me.lb_msg, 0, 0) Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill - Me.TableLayoutPanel1.Location = New System.Drawing.Point(173, 95) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(173, 87) Me.TableLayoutPanel1.Margin = New System.Windows.Forms.Padding(0) Me.TableLayoutPanel1.Name = "TableLayoutPanel1" - Me.TableLayoutPanel1.RowCount = 5 + Me.TableLayoutPanel1.RowCount = 2 Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!)) Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(354, 113) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(354, 106) Me.TableLayoutPanel1.TabIndex = 3 ' - 'lb_ip - ' - Me.lb_ip.AutoSize = True - Me.lb_ip.Location = New System.Drawing.Point(3, 92) - Me.lb_ip.Name = "lb_ip" - Me.lb_ip.Size = New System.Drawing.Size(53, 12) - Me.lb_ip.TabIndex = 1 - Me.lb_ip.Text = "아이피 : " - ' 'lb_expiredate ' Me.lb_expiredate.AutoSize = True - Me.lb_expiredate.Location = New System.Drawing.Point(3, 23) + Me.lb_expiredate.Location = New System.Drawing.Point(3, 53) Me.lb_expiredate.Name = "lb_expiredate" Me.lb_expiredate.Size = New System.Drawing.Size(77, 12) Me.lb_expiredate.TabIndex = 0 Me.lb_expiredate.Text = "인증만료일 : " ' - 'lb_usertype - ' - Me.lb_usertype.AutoSize = True - Me.lb_usertype.Location = New System.Drawing.Point(3, 46) - Me.lb_usertype.Name = "lb_usertype" - Me.lb_usertype.Size = New System.Drawing.Size(73, 12) - Me.lb_usertype.TabIndex = 0 - Me.lb_usertype.Text = "사용자형태 :" - ' - 'lb_remaincnt - ' - Me.lb_remaincnt.AutoSize = True - Me.lb_remaincnt.Location = New System.Drawing.Point(3, 69) - Me.lb_remaincnt.Name = "lb_remaincnt" - Me.lb_remaincnt.Size = New System.Drawing.Size(93, 12) - Me.lb_remaincnt.TabIndex = 0 - Me.lb_remaincnt.Text = "사용가능 횟수 : " - ' 'lb_msg ' Me.lb_msg.AutoSize = True Me.lb_msg.Dock = System.Windows.Forms.DockStyle.Fill Me.lb_msg.Location = New System.Drawing.Point(3, 0) Me.lb_msg.Name = "lb_msg" - Me.lb_msg.Size = New System.Drawing.Size(348, 23) + Me.lb_msg.Size = New System.Drawing.Size(348, 53) Me.lb_msg.TabIndex = 0 Me.lb_msg.Text = "." Me.lb_msg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -276,7 +210,7 @@ Partial Class DemoDlg ' Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(547, 266) + Me.ClientSize = New System.Drawing.Size(547, 251) Me.Controls.Add(Me.TableLayoutPanel) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog Me.MaximizeBox = False @@ -298,12 +232,7 @@ Partial Class DemoDlg Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel Friend WithEvents Button2 As System.Windows.Forms.Button - Friend WithEvents Button3 As System.Windows.Forms.Button Friend WithEvents lb_expiredate As System.Windows.Forms.Label - Friend WithEvents lb_usertype As System.Windows.Forms.Label - Friend WithEvents lb_remaincnt As System.Windows.Forms.Label Friend WithEvents lb_msg As System.Windows.Forms.Label - Friend WithEvents Button4 As System.Windows.Forms.Button - Friend WithEvents lb_ip As System.Windows.Forms.Label End Class diff --git a/Epole/dialogForm/DemoDlg.vb b/Epole/dialogForm/DemoDlg.vb index cfea50d..0551890 100644 --- a/Epole/dialogForm/DemoDlg.vb +++ b/Epole/dialogForm/DemoDlg.vb @@ -1,12 +1,12 @@ Public NotInheritable Class DemoDlg Private Sub DemoDlg_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing - If UserInfo.Type = E_AuthType.Demo AndAlso UserInfo.Cnt > 10 Then - End - Else - Me.DialogResult = Windows.Forms.DialogResult.OK - Me.Dispose() - End If + 'If UserInfo.Type = E_AuthType.Demo AndAlso UserInfo.Cnt > 10 Then + ' End + 'Else + ' Me.DialogResult = Windows.Forms.DialogResult.OK + ' Me.Dispose() + 'End If End Sub Private Sub DemoDlg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load @@ -27,24 +27,24 @@ Me.LabelCompanyName.Text = My.Application.Info.CompanyName Display_info() - If UserInfo.Type = E_AuthType.Demo AndAlso UserInfo.Cnt > 10 Then '//사용불가다 - Me.Button1.Text = "끝내기(&O)" - End If + 'If UserInfo.Type = E_AuthType.Demo AndAlso UserInfo.Cnt > 10 Then '//사용불가다 + ' Me.Button1.Text = "끝내기(&O)" + 'End If 'Me.TextBoxDescription.Text = My.Application.Info.Description End Sub Private Sub Display_info() - Me.lb_expiredate.Text = "인증만료일 : " & UserInfo.ExpireDate - Select Case UserInfo.Type - Case E_AuthType.Admin - Me.lb_usertype.Text = "사용자형태 : 관리자" - Case E_AuthType.Demo - Me.lb_usertype.Text = "사용자형태 : 임시(일부기능만 사용가능)" - Me.lb_remaincnt.Text = "사용 횟수 : " & UserInfo.Cnt & "/10" & IIf(UserInfo.Cnt > 10, "[사용횟수초과]", "") - Case E_AuthType.Normal - Me.lb_usertype.Text = "사용자형태 : 정상" - End Select - Me.lb_ip.Text = "아이피 : " & GetFirstIP() + Me.lb_expiredate.Text = "인증만료일 : " & RunDate.ToShortDateString() + 'Select Case UserInfo.Type + ' Case E_AuthType.Admin + ' Me.lb_usertype.Text = "사용자형태 : 관리자" + ' Case E_AuthType.Demo + ' Me.lb_usertype.Text = "사용자형태 : 임시(일부기능만 사용가능)" + ' Me.lb_remaincnt.Text = "사용 횟수 : " & UserInfo.Cnt & "/10" & IIf(UserInfo.Cnt > 10, "[사용횟수초과]", "") + ' Case E_AuthType.Normal + ' Me.lb_usertype.Text = "사용자형태 : 정상" + 'End Select + 'Me.lb_ip.Text = "아이피 : " & GetFirstIP() End Sub Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click @@ -55,7 +55,7 @@ Process.Start(HomePage) End Sub - Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click + Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim auth As New CEpole.Auth Dim NewKey As String = InputBox("인증번호1을 입력하세요") If NewKey <> "" AndAlso auth.check_key1(NewKey) Then '//뭔가있고 정상이라면 @@ -66,10 +66,10 @@ MsgBox("취소되었거나 정상적인 키가 아닙니다", MsgBoxStyle.Critical, "오류") Me.Close() End If - + End Sub - Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click + Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim auth As New CEpole.Auth Dim NewKey As String = InputBox("인증번호2를 입력하세요") If NewKey <> "" AndAlso auth.Check_key2(NewKey) Then '//뭔가있고 정상이라면 diff --git a/Epole/dialogForm/SplashScreen.vb b/Epole/dialogForm/SplashScreen.vb index b9dbf62..39c913e 100644 --- a/Epole/dialogForm/SplashScreen.vb +++ b/Epole/dialogForm/SplashScreen.vb @@ -3,7 +3,7 @@ Public NotInheritable Class SplashScreen Dim install, installkey As Long Dim auth As New ACC.MyAuth - Dim Runcnt As Integer = 0 + 'Dim Runcnt As Integer = 0 Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If My.Application.Info.Title <> "" Then @@ -19,13 +19,30 @@ Public NotInheritable Class SplashScreen Me.Show() : My.Application.DoEvents() If Not LoadINI() Then End '//환경파일 불러오기실패시 종료한다. - ReadAuth() - - - If Command().ToUpper = "ARIN2506" Then - UserInfo.Type = E_AuthType.Admin '//파라미터로 운영자모드 가능하게 + If Command() <> "ARIN" AndAlso Not ReadAuth() Then '//에러났을떄는 카운터를 확인 + '//사용횟수가 10번ㅇ르 초과했는지 확인 + Runcnt = Me.ReadAuthcount + Dim f As New fAuth() + If (f.ShowDialog <> Windows.Forms.DialogResult.OK) Then + End + End If + 'If Runcnt >= 10 Then + ' Dim NewKey As String = InputBox("인증번호를 입력하세요 (인증번호는 숫자로만 이루어져 있습니다)") + ' If IsNumeric(NewKey) = False Then + ' MsgBox("프로그램을 재실행 하세요", MsgBoxStyle.Information, "확인") + ' End + ' End If + ' auth.SetAuth(NewKey, My.Application.Info.DirectoryPath & "\epole.ini") + ' MsgBox("프로그램을 재실행 하세요", MsgBoxStyle.Information, "확인") + ' End + 'Else + ' MsgBox(CStr(10 - Runcnt) & "번의 사용횟수가 남았습니다", MsgBoxStyle.Critical, "실행확인") + 'End If End If + 'If Command().ToUpper = "ARIN2506" Then + ' UserInfo.Type = E_AuthType.Admin '//파라미터로 운영자모드 가능하게 + 'End If 'If Not ReadAuth() Then DemoDlg.ShowDialog() @@ -36,109 +53,77 @@ Public NotInheritable Class SplashScreen MakeList.Show() Me.Dispose() End Sub - Private Function ReadAuth() As Boolean - - '//기능해제 160516 - UserInfo.Permission = New Char() {"B"} - UserInfo.Cnt = 1 - UserInfo.ExpireDate = Date.Now.AddYears(1) - UserInfo.Type = E_AuthType.Normal - Return True - - - '//먼저파일에 있는 키를 체크한다. - Dim Key1 As String = ini.Read("main", "key1", "") - Dim key2 As String = ini.Read("main", "key2", "") - Dim KeyCnt As String = ini.Read("main", "keycount", "11" & CStr(11).GetHashCode) '//없으면 최대로한다. - - If key2 = "" Then UserInfo.Permission = "A" '//아무것도 없으면 1번메뉴만 실행가능하게한다. - - Try - If IsNumeric(KeyCnt.Substring(2)) = False Then - UserInfo.Cnt = 11 - UserInfo.Type = E_AuthType.Demo - UserInfo.Permission = "A" - Return False + Private Function ReadAuthcount() As Integer + Dim RunCnt As Integer = 0 + Dim ini As New MyINI(My.Application.Info.DirectoryPath & "\epole.ini") + Dim RegDate As String = ini.Read("main", "regdate2", "") + Dim CurDate As String = Me.auth.GetDateNumberEnc(Today.AddDays(-10)) + If RegDate = "" Then '//등록일이없으면 10번카운터를 셋팅한다. + RunCnt = 1 + ini.Write("main", "reg2", RunCnt) '//1일로한다. + ini.Write("main", "regdate2", Me.auth.GetDateNumberEnc(Today)) '//1일로한다. + Else + '//상요자가 숫자를 임의로 고칠수있으니 설치된 날짜랑 오늘이랑 10일이상차이나면 횟수에상관없이 사용불가로한다. + If CurDate > RegDate Then + MsgBox("프로그램을 사용할 수 없습니다" & vbCrLf & "배포업체에 문의하세요", MsgBoxStyle.Information, "확인") + Return 10 End If - Catch ex As Exception - UserInfo.Cnt = 11 - UserInfo.Type = E_AuthType.Demo - UserInfo.Permission = "A" - Return False - End Try - - '//둘다비어있으면 데모상태로한다. - If Key1 = "" AndAlso key2 = "" Then - UserInfo.Type = E_AuthType.Demo - If CStr(11).GetHashCode = KeyCnt.Substring(2) Then '//가져온 카운트랑 10이랑같으면 다썻다는 말이다. - UserInfo.Cnt = 11 - Else '//아니라면 아직 무료횟수가 남았다는ㄱ다 - Dim Cnt As Integer = KeyCnt.Substring(0, 2) '//02 라고치자 - Cnt += 1 '//하나증가해서 기록한다. - ini.Write("main", "keycount", Format(Cnt, "00") & Format(Cnt, "00").GetHashCode) - UserInfo.Cnt = Cnt + RunCnt = ini.Read("main", "reg2", 10) '//없으면 10으로한다 즉 사용못하게하겠다는거다 + If RunCnt < 10 Then + RunCnt += 1 + ini.Write("main", "reg2", RunCnt) '//1일로한다. End If - Return False - End If - - Dim auth As New CEpole.Auth - If Key1.IndexOf("%") = -1 Then Key1 = "0%" & Key1 - If Not auth.check_key1(Key1) OrElse Not auth.Check_key2(key2) Then '//키중에 오류가있다면 사용불가로한다. - UserInfo.Cnt = 11 - UserInfo.Type = E_AuthType.Demo - UserInfo.Permission = "A" - Return False - End If - '//여기까지왓다면 둘다 정상이란소리다. : - '//IP가 맞는지 확인 - Dim Cip() As String = GetFirstIP.Split(".") - Dim Cipsum As Short = 0 - Dim IPok As Boolean = False - For Each a As String In Cip - Try - Cipsum += Val(a) - Catch ex As Exception - IPok = True - '//아이피에 문제가잇다 이거는 메일보낸다. 그리고 사용은 가능하게한다. - End Try - Next - 'If IPok = False Then - ' If Cipsum <> Val(Key1.Split("%")(0)) Then '//인증코드의 아이피의 합과 현재아이피의 합이 틀리다면 - ' UserInfo.Cnt = 11 '//데모상태로 전환한다. - ' UserInfo.Type = E_AuthType.Demo - ' UserInfo.Permission = "A" - ' Return False - ' End If - 'End If - - '//권한정보셋팅 - UserInfo.Permission = key2.Split("%")(0).ToCharArray - Dim k() As String = Key1.Split("%") - '//닐짜비교() - Dim Curdate As Date = Today - Dim UserDate As Date = CDate(k(1).Substring(0, 4) & "-" & k(1).Substring(4, 2) & "-" & k(1).Substring(6, 2)) - If Curdate > UserDate Then '//지정된날짜가 오늘보다 컷을경우 즉 기간을 오버했다는것이다. 사용불가이다. - UserInfo.Cnt = 11 - UserInfo.Type = E_AuthType.Demo - Return False - Else '//정상사용자이다 - UserInfo.ExpireDate = UserDate.ToShortDateString - UserInfo.Type = E_AuthType.Normal - Return True End If + If RunCnt >= 10 Then Return 10 + Return RunCnt End Function + Private Function ReadAuth() As Boolean + If install = 0 OrElse installkey = 0 Then + ' MsgBox("인증정보가 존재하지 않습니다." & vbCrLf & vbCrLf & "홈페이지 [자료실] 에서 인증번호를 확인하세요" & vbCrLf & "062-382-0411" & vbCrLf & Common.HomePage, MsgBoxStyle.Critical, "확인") + 'Process.Start(HomePage) + Return False + End If + + Dim 현재날짜값 As Long = auth.GetDateNumber(Now) + + If 현재날짜값 > install Then + ' MsgBox("사용기간이 초과되었습니다." & vbCrLf & vbCrLf & "홈페이지 [자료실] 에서 인증번호를 확인하세요" & vbCrLf & "062-382-0411" & vbCrLf & Common.HomePage, MsgBoxStyle.Critical, "확인") + 'Process.Start(HomePage) + Return False '//만기일을 초과했다면 + End If + + 'Dim FI As New System.IO.FileInfo(My.Application.Info.DirectoryPath & "\epole.ini") + 'If (auth.GetDateNumber(FI.LastAccessTimeUtc)) > Now.ToFileTimeUtc Then '//설정파일을 접근한 날짜가 오늘보다 크면 즉 오늘이 조작디었을경우다 + ' ' MsgBox("사용기간이 초과되었습니다." & vbCrLf & vbCrLf & "홈페이지 [자료실] 에서 인증번호를 확인하세요" & vbCrLf & "062-382-0411" & vbCrLf & Common.HomePage, MsgBoxStyle.Critical, "확인") + ' 'Process.Start(HomePage) + ' Return False '//만기일을 초과했다면 + 'End If + + Dim 해쉬값 As Integer = install.GetHashCode() + If installkey.ToString <> 해쉬값 Then '//인증정보가 손상되었다면 + ' MsgBox("인증정보가 손상되었습니다" & vbCrLf & vbCrLf & "홈페이지 [자료실] 에서 인증번호를 확인하세요" & vbCrLf & "062-382-0411" & vbCrLf & Common.HomePage, MsgBoxStyle.Critical, "확인") + 'Process.Start(HomePage) + Return False + End If + + Rundate = Date.FromFileTimeUtc(install) + + Return True + ' MsgBox(auth.GetDateNumberEnc(Now)) + End Function Private Sub SetAuth(ByVal NewDate As Date) - Dim auth As New ACC.MyAuth + Dim auth As New MyAuth Dim Arinini As New MyINI(My.Application.Info.DirectoryPath & "\epole.ini") - Arinini.Write("main", "install", auth.GetDateNumber(NewDate)) - Arinini.Write("main", "installkey", auth.GetDateNumberEnc(NewDate)) + Arinini.Write("main", "install2", auth.GetDateNumber(NewDate)) + Arinini.Write("main", "installkey2", auth.GetDateNumberEnc(NewDate)) MsgBox("기록완료") End Sub + Private Function LoadINI() As Boolean Me.lb_msg.Text = "환경설정 데이터를 읽어옵니다" @@ -163,8 +148,8 @@ Public NotInheritable Class SplashScreen Common.ViewFont.FontName = buf(0) Common.ViewFont.FontSize = buf(1) - Me.install = Arinini.Read("main", "install", 0) - Me.installkey = Arinini.Read("main", "installkey", 0) + Me.install = Arinini.Read("main", "install2", 0) + Me.installkey = Arinini.Read("main", "installkey2", 0) buf = Arinini.Read("main", "menufont", "굴림,9").Split(",") Common.MenuFont.FontName = buf(0) diff --git a/Epole/업로드폼/XLSImport.vb b/Epole/업로드폼/XLSImport.vb index fe3bc0c..4fed81c 100644 --- a/Epole/업로드폼/XLSImport.vb +++ b/Epole/업로드폼/XLSImport.vb @@ -106,11 +106,11 @@ Public Class XLSImport Dim Nullcnt As Short = 0 NOTICE("(ӽ)ͺ̽ մϴ(ҺҰ)", Me.lb_msg) - If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then - MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ - "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") - Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 - End If + 'If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then + ' MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ + ' "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") + ' Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 + 'End If Me.DT_Sknetworks.Rows.Clear() : Me.DT_Sknetworks.AcceptChanges() For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows '//ο쿡شϴµ ٺѴ @@ -190,11 +190,11 @@ Public Class XLSImport Dim NullCnt As Short = 0 NOTICE("(ӽ)ͺ̽ մϴ(ҺҰ)", Me.lb_msg) - If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then - MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ - "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") - Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 - End If + 'If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then + ' MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ + ' "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") + ' Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 + 'End If Me.DT_Karo.Rows.Clear() : Me.DT_Karo.AcceptChanges() For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows '//ο쿡شϴµ ٺѴ @@ -297,11 +297,11 @@ Public Class XLSImport Dim nullcnt As Short = 0 NOTICE("(ӽ)ͺ̽ մϴ(ҺҰ)", Me.lb_msg) - If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then - MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ - "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") - Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 - End If + 'If (Me.tb_ecnt.Text = 0 AndAlso UserInfo.Type = E_AuthType.Demo) OrElse (UserInfo.Type = E_AuthType.Demo AndAlso (Me.tb_ecnt.Text - Me.tb_scnt.Text) > 100) Then + ' MsgBox("ӽûڴ ڵīƮ(0) " & vbCrLf & vbCrLf & _ + ' "īͿ ī 100 մϴ", MsgBoxStyle.Information, "Ȯ") + ' Me.tb_ecnt.Text = Me.tb_scnt.Text + 100 + 'End If Me.DT_Jdung.Rows.Clear() : Me.DT_Jdung.AcceptChanges() For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows '//ο쿡شϴµ ٺѴ diff --git a/Epole/입력폼/AddEpole_SkNetworks.vb b/Epole/입력폼/AddEpole_SkNetworks.vb index 55e3476..71fe27f 100644 --- a/Epole/입력폼/AddEpole_SkNetworks.vb +++ b/Epole/입력폼/AddEpole_SkNetworks.vb @@ -409,10 +409,10 @@ Public Class AddEpole_SKNetworks MsgBox(" õ ʵ Ǿֽϴ", MsgBoxStyle.Critical, "Ȯ") Return End If - If UserInfo.Type = E_AuthType.Demo Then - MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") - End If - Dim Aa As New Cls_SkNetworks.PrintForm(Me.DT, IIf(UserInfo.Type = E_AuthType.Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) + 'If UserInfo.Type = E_AuthType.Demo Then + ' MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") + 'End If + Dim Aa As New Cls_SkNetworks.PrintForm(Me.DT, IIf(Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) Aa.Show() End Sub diff --git a/Epole/입력폼/AddEpole_jdung.vb b/Epole/입력폼/AddEpole_jdung.vb index c3156e9..2b71fe3 100644 --- a/Epole/입력폼/AddEpole_jdung.vb +++ b/Epole/입력폼/AddEpole_jdung.vb @@ -421,10 +421,10 @@ Public Class AddEpole_jDung MsgBox(" õ ʵ Ǿֽϴ", MsgBoxStyle.Critical, "Ȯ") Return End If - If UserInfo.Type = E_AuthType.Demo Then - MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") - End If - Dim Aa As New Cls_Jdung.PrintForm(Me.DT, IIf(UserInfo.Type = E_AuthType.Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) + 'If UserInfo.Type = E_AuthType.Demo Then + ' MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") + 'End If + Dim Aa As New Cls_Jdung.PrintForm(Me.DT, IIf(Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) Aa.Show() End Sub diff --git a/Epole/입력폼/AddEpole_karo.vb b/Epole/입력폼/AddEpole_karo.vb index f1fc917..09227ff 100644 --- a/Epole/입력폼/AddEpole_karo.vb +++ b/Epole/입력폼/AddEpole_karo.vb @@ -452,10 +452,10 @@ Public Class AddEpole_karo MsgBox(" õ ʵ Ǿֽϴ", MsgBoxStyle.Critical, "Ȯ") Return End If - If UserInfo.Type = E_AuthType.Demo Then - MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") - End If - Dim Aa As New Cls_Karo.PrintForm(Me.DT, IIf(UserInfo.Type = E_AuthType.Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) + 'If UserInfo.Type = E_AuthType.Demo Then + ' MsgBox(" ӽûԴϴ" & vbCrLf & " ޼ ӽûڸ µ˴ϴ", MsgBoxStyle.Information, "Ȯ") + 'End If + Dim Aa As New Cls_Karo.PrintForm(Me.DT, IIf(Admin, True, False), Me.view1.⺻Ÿε, CType(Me.bs.Current, DataRowView)) Aa.Show() End Sub diff --git a/Epole/통합번호찰_가로등.vbproj b/Epole/통합번호찰_가로등.vbproj index 6b994cb..65ee07b 100644 --- a/Epole/통합번호찰_가로등.vbproj +++ b/Epole/통합번호찰_가로등.vbproj @@ -160,6 +160,13 @@ Form + + + fAuth.vb + + + Form + Form_Work.vb @@ -266,6 +273,9 @@ Designer Frm_ViewSetup.vb + + fAuth.vb + Form_Work.vb Designer diff --git a/Epole/통합번호찰_가로등.vbproj.user b/Epole/통합번호찰_가로등.vbproj.user index 07e85fa..531adef 100644 --- a/Epole/통합번호찰_가로등.vbproj.user +++ b/Epole/통합번호찰_가로등.vbproj.user @@ -3,7 +3,8 @@ false false - ARIN25061 + + false diff --git a/Epole_통합가로등.v12.suo b/Epole_통합가로등.v12.suo index 01889f779262683e69088a9ab61ae7362bc1d06d..32619b4cde2c527416d30d2b6e0cd482b5cd01ef 100644 GIT binary patch literal 322560 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 delta 12028 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 TK5(;9YU}%%>-7JVyN~|@8Ip5%