Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LoginForm1.vb 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. Imports System.IO
  2. Imports System.Text
  3. Public Class LoginForm1
  4. Dim IP公, IP測1, IP測2, 印尼測試內網網段, 內網線路, 可登入 As Boolean
  5. Dim MACKK As String 'MAC碼
  6. Dim diskId As String '數字ID
  7. Dim diskSerialNumber As String '硬碟序列
  8. Dim diskModel As String '磁盘型態
  9. Private ReadOnly 對話框(15) As String : Dim FFGG As Integer : Dim GGHH As Integer
  10. Dim Str As String = Application.StartupPath
  11. Private Sub 語言轉換讀取()
  12. If 系統語言 = "繁體中文" Then : 語言 = "CH" : ElseIf 系統語言 = "English" Then : 語言 = "EN" : ElseIf 系統語言 = "Indonesian" Then : 語言 = "IN" : End If
  13. 密碼_lb.Text = 系統語言字典("G000-103-" & 語言) : 執行檔版本號_lb.Text = 系統語言字典("G000-102-" & 語言) & " : " & 版本
  14. 資料庫版本號_lb.Text = 系統語言字典("G000-104-" & 語言) & " : " & 資料庫版本 : 系統語言_lb.Text = 系統語言字典("G000-100-" & 語言)
  15. 公司線路_rb.Text = 系統語言字典("H000-100-" & 語言) : 伺服器區域_lb.Text = 系統語言字典("H000-101-" & 語言) : 對話框(5) = 系統語言字典("H000-113-" & 語言)
  16. 使用者名稱_lb.Text = 系統語言字典("H000-104-" & 語言) : 對話框(1) = 系統語言字典("H000-109-" & 語言) : 對話框(7) = 系統語言字典("H000-115-" & 語言)
  17. 測試線路_rb.Text = 系統語言字典("H000-105-" & 語言) : 對話框(3) = 系統語言字典("H000-111-" & 語言) : 對話框(9) = 系統語言字典("H000-108-" & 語言)
  18. 對話框(0) = 系統語言字典("H000-107-" & 語言) : 對話框(2) = 系統語言字典("H000-110-" & 語言) : 對話框(4) = 系統語言字典("H000-112-" & 語言)
  19. 對話框(6) = 系統語言字典("H000-114-" & 語言) : 對話框(8) = 系統語言字典("H000-116-" & 語言) : 對話框(10) = 系統語言字典("H000-106-" & 語言)
  20. 對話框(11) = 系統語言字典("H000-117-" & 語言) : 對話框(12) = 系統語言字典("H000-118-" & 語言) : 對話框(13) = 系統語言字典("H000-119-" & 語言)
  21. 對話框(14) = 系統語言字典("H000-120-" & 語言) : 對話框(15) = 系統語言字典("H000-102-" & 語言)
  22. End Sub
  23. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 伺服器區域_cb.SelectedIndexChanged
  24. '-----------------------確認登入伺服器位置-----------------------------------------------------------------------------------------------------------------------------------------
  25. If 伺服器區域_cb.Text = "公司內網" Then
  26. IP公 = True
  27. If IP公 = True Then : 登入人IP = "192.168.1.63,2433" : 登入() : 刷卡登入_ch.Checked = True : Else : MGB(對話框(11), 1) : Me.Close() : End If
  28. ElseIf 伺服器區域_cb.Text = "公司雲端" Then
  29. IP公 = True
  30. If IP公 = True Then : 登入人IP = PA49 : 登入() : 刷卡登入_ch.Checked = True : Else : MGB(對話框(11), 1) : Me.Close() : End If
  31. ElseIf 伺服器區域_cb.Text = "測試雲端" Then
  32. IP測1 = True
  33. If IP測1 = True Then : 登入人IP = "106.1.48.106,4567" : 登入() : 刷卡登入_ch.Checked = True : Else : MGB(對話框(11), 1) : Me.Close() : End If
  34. ElseIf 伺服器區域_cb.Text = "印尼測試" Then
  35. If IP測2 = True Then : 登入人IP = "192.168.1.63,2433"
  36. If SQL_連線狀態模組2.ConnectTest2("192.168.1.63,2433") = True Then : 登入() : 刷卡登入_ch.Checked = True : Else : MGB(對話框(11), 1) : Me.Close() : End If
  37. Else : MGB(對話框(11), 1) : Me.Close() : End If
  38. End If
  39. End Sub
  40. Private Sub 登入()
  41. '-----------------------寫入連線字串-----------------------------------------------------------------------------------------------------------------------------------------------
  42. If Strings.Left(伺服器區域_cb.Text, 2) = "印尼" Or Strings.Left(伺服器區域_cb.Text, 2) = "公司" Then
  43. SQL_連線字串_正式() : SQL_連線字串_正式_工程SQL() : SQL_連線字串_正式_管理SQL()
  44. Else
  45. SQL_連線字串_測試() : SQL_連線字串_測試_工程SQL() : SQL_連線字串_測試_管理SQL()
  46. End If
  47. g_conn_type = 伺服器區域_cb.Text & "伺服器"
  48. '-----------------------系統版本號寫入-----------------------------------------------------------------------------------------------------------------------------------------------
  49. SQL_系統版本號驗證()
  50. If dr.Read() Then : 資料庫版本 = dr("內帳系統") : 版本號 = dr("內帳系統") : End If : conn.Close()
  51. 語言轉換讀取()
  52. 系統語言_cb.Items.Clear() : 系統語言_cb.Items.Add("繁體中文") : 系統語言_cb.Items.Add("Indonesian") : 系統語言_cb.Items.Add("English")
  53. '-----MAC碼與硬碟資料-------------------------------------------------------------------------------------------------------------------------------------------------------------
  54. Dim Wmi As New Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration")
  55. For Each WmiObj As Management.ManagementObject In Wmi.Get
  56. If CBool(WmiObj("IPEnabled")) Then
  57. MACKK = WmiObj("MACAddress")
  58. End If
  59. Next
  60. Dim cmicWmi As New Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
  61. For Each cmicWmiObj As Management.ManagementObject In cmicWmi.Get
  62. diskId = cmicWmiObj("size") 'diskId = cmicWmiObj("signature")
  63. diskSerialNumber = cmicWmiObj("serialnumber")
  64. diskModel = cmicWmiObj("Model")
  65. Exit For
  66. Next
  67. End Sub
  68. Private Sub LoginForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  69. 語言轉換讀取()
  70. Panel1.SendToBack() : 伺服器區域_cb.Text = 計算機.伺服器區域_cb.Text : 系統語言_cb.Text = 系統語言
  71. 低網速模式 = True
  72. '-----------------------FTP資料夾登入位置宣告--------------------------------------------------------------------------------------------------------------------------------------
  73. Target = "https://gcm-smart.com/ERP/HX-PGS/"
  74. If Strings.Right(執行檔版本號_lb.Text, 10) <> Strings.Right(資料庫版本號_lb.Text, 10) Then
  75. 登入() : 自動更新2()
  76. Else : End If
  77. End Sub
  78. Private Sub LoginForm1_Closing(sender As Object, e As EventArgs) Handles MyBase.Closing
  79. 計算機.Close()
  80. End Sub
  81. Private Sub 系統語言_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 系統語言_cb.SelectedIndexChanged
  82. 系統語言 = 系統語言_cb.Text
  83. Dim strDirName As String : Dim Strs As String = Application.StartupPath
  84. If File.Exists(Strs & "\LANGUAGE.txt") Then : File.Delete(Strs & "\LANGUAGE.txt") : End If
  85. strDirName = Strs & "\LANGUAGE.txt"
  86. Try
  87. Using fs As New IO.FileStream(strDirName, FileMode.Append)
  88. Using sw As New StreamWriter(fs, Encoding.Default)
  89. Dim stra As String
  90. If 系統語言 = "繁體中文" Then : stra = "CHER" : ElseIf 系統語言 = "English" Then : stra = "Engl"
  91. ElseIf 系統語言 = "Indonesian" Then : stra = "Indo" : Else : stra = "CHER" : End If
  92. sw.WriteLine(stra) '插入一整行
  93. sw.Flush()
  94. End Using
  95. End Using
  96. Catch ex As Exception : End Try : 語言轉換讀取()
  97. End Sub
  98. Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
  99. If 系統語言_cb.Text = " " Or 系統語言_cb.Text = "" Then : MGB(對話框(9), 1)
  100. Else
  101. '-----電腦綁定判斷-------------------------------------------------------------------------------------------------------------------------------------------------------------
  102. If 登入綁定_ch.Checked = True Then
  103. PA1 = MACKK : PA2 = diskId : PA3 = diskSerialNumber : PA4 = diskModel
  104. SQL_電腦綁定()
  105. If dr.Read() Then
  106. conn.Close() : 登入第一層()
  107. Else
  108. If 帳號_rtb.Text = "b70340" Or 帳號_rtb.Text = "B70340" Then
  109. conn.Close() : 登入第一層()
  110. Else
  111. conn.Close() : MGB(對話框(6), 1) : Me.Close()
  112. End If
  113. End If
  114. Else
  115. conn.Close() : 登入第一層()
  116. End If
  117. End If
  118. End Sub
  119. Private Sub 登入第一層()
  120. If 帳號_rtb.Text = "b70340" Or 帳號_rtb.Text = "B70340" Then
  121. If Strings.Right(執行檔版本號_lb.Text, 10) <> Strings.Right(資料庫版本號_lb.Text, 10) Then
  122. If 伺服器區域_cb.Text = "測試雲端" Then
  123. 自動更新2()
  124. 登入程序() : 判斷重登 = False
  125. Else
  126. MGB(對話框(1), 1)
  127. 登入程序() : 判斷重登 = False
  128. End If
  129. Else
  130. 登入程序() : 判斷重登 = False
  131. End If
  132. Else
  133. If Strings.Right(執行檔版本號_lb.Text, 10) <> Strings.Right(資料庫版本號_lb.Text, 10) Then
  134. If 伺服器區域_cb.Text = "測試雲端" Then
  135. 自動更新2()
  136. Else
  137. MGB(對話框(1), 1)
  138. End If
  139. Else
  140. 登入程序() : 判斷重登 = False
  141. End If
  142. End If
  143. End Sub
  144. Private Sub 登入程序()
  145. If 帳號_rtb.Text = "" Then : MGB(對話框(2), 1) : ElseIf 帳號_rtb.Text <> "" Then
  146. If 帳號_rtb.Text = "" Then : MGB(對話框(3), 1) : ElseIf 帳號_rtb.Text <> "" Then
  147. SQL_使用者級別宣告() : If dr.Read() Then : 登入人級別 = dr("級別").ToString : End If
  148. SQL_系統預設值()
  149. If dr.Read() Then
  150. 密碼時限 = dr("密碼重設天數") : 行政採購簽核級別基數 = dr("行政採購二級") : 建築採購簽核級別基數 = dr("建築採購二級")
  151. 比例1 = dr("比例1") : 比例2 = dr("比例2") : 比例3 = dr("比例3") : 分母 = dr("圖片伺服器上限") : 工程圖庫限制 = dr("圖片伺服器上限")
  152. End If
  153. SQL_使用者權限宣告()
  154. If dr.Read() Then
  155. 密碼驗證_tb.Text = dr("密碼").ToString : 密碼日期_tb.Text = dr("密碼日期").ToString
  156. gUserName = dr("姓名").ToString : 登入人部門 = dr("部門").ToString : 登入人課別 = dr("課別").ToString
  157. 登入人組別 = dr("組別").ToString
  158. For I As Integer = 1 To 權限數量 : CC(I) = dr.Item(I + 8 - 1) : Next
  159. FFGG = DateDiff("d", 密碼日期_tb.Text, Format(Today(), "yyyy/MM/dd"))
  160. If CC(45) = True Then : GGHH = 密碼時限 - FFGG
  161. If GGHH <= 0 Then
  162. MGB(對話框(4), 1) : 個人帳號管理.ShowDialog()
  163. Else : 登入第二層() : End If
  164. Else : 登入第二層() : End If
  165. Else : MGB(對話框(15), 1) : End If : dr.Close()
  166. End If
  167. End If
  168. conn.Close()
  169. End Sub
  170. Private Sub 登入第二層()
  171. If 密碼_rtb.Text = 密碼驗證_tb.Text Then
  172. If 密碼驗證_tb.Text = "" Then : MGB(對話框(5), 1)
  173. Else
  174. Me.Hide() : HX_PGS_ERP_SYS.Show() : 密碼_rtb.Text = "" : 帳號_rtb.Text = ""
  175. End If
  176. ElseIf 密碼_rtb.Text <> 密碼驗證_tb.Text Then : MGB(對話框(5), 1) : End If
  177. End Sub
  178. Private Sub 自動更新2()
  179. Dim Str As String = Application.StartupPath
  180. If File.Exists(Str + "\NOTAUTO.txt") Then
  181. If 帳號_rtb.Text = "b70340" Or 帳號_rtb.Text = "B70340" Then : Else : End If
  182. Else
  183. My.Computer.Network.DownloadFile(Target & "Calculator-SYS-UPDATE.exe", Str + "\Calculator-SYS-UPDATE.exe")
  184. Shell(Str + "\Calculator-SYS-UPDATE.exe", vbNormalFocus) : Me.Close()
  185. End If
  186. End Sub
  187. Private Sub 公司線路_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 公司線路_rb.Click
  188. If IP公 = False Then : 公司線路_rb.Checked = False : 測試線路_rb.Checked = True : MGB(對話框(12), 1)
  189. Else : 伺服器區域_cb.Text = "公司雲端" : 公司線路_rb.Checked = True : 測試線路_rb.Checked = False : MGB(對話框(13), 1) : End If
  190. End Sub
  191. Private Sub 測試線路_rb_CheckedChanged(sender As Object, e As EventArgs) Handles 測試線路_rb.Click
  192. 公司線路_rb.Checked = False : 測試線路_rb.Checked = True
  193. If IP測1 = True Or IP測2 = True Then : 伺服器區域_cb.Text = "測試雲端" : ElseIf IP測1 = False And IP測2 = False Then : 伺服器區域_cb.Text = "公司雲端" : MGB(對話框(14), 1) : End If
  194. End Sub
  195. Private Sub 帳號_rtb_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles 帳號_rtb.GotFocus
  196. 帳號_rtb.ImeMode = 2
  197. End Sub
  198. Private Sub UsernameTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles 帳號_rtb.KeyPress
  199. If e.KeyChar = ChrW(13) Then : Me.OK.PerformClick() : End If
  200. End Sub
  201. Private Sub PasswordTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles 密碼_rtb.KeyPress
  202. If e.KeyChar = ChrW(13) Then : Me.OK.PerformClick() : End If
  203. End Sub
  204. Private Sub UsernameTextBox_TextChanged(sender As Object, e As EventArgs) Handles 帳號_rtb.TextChanged
  205. If 刷卡登入_ch.Checked = False Then : Else
  206. If IsNumeric(帳號_rtb.Text) = True Then
  207. If 帳號_rtb.Text.Length = 10 Then
  208. SQL_刷卡登入()
  209. If dr.Read() Then
  210. 帳號_rtb.Text = dr("帳號").ToString : 密碼_rtb.Text = dr("密碼").ToString : conn.Close()
  211. Else
  212. 帳號_rtb.Text = "" : 密碼_rtb.Text = "" : conn.Close()
  213. End If
  214. Exit Sub : Me.OK.PerformClick()
  215. End If
  216. End If
  217. End If
  218. End Sub
  219. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles 刷卡登入_ch.Click
  220. 帳號_rtb.Focus()
  221. End Sub
  222. Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
  223. 計算機.Close()
  224. End Sub
  225. End Class