Без опису
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. Option Explicit On
  2. Imports System.IO
  3. Imports System.Net
  4. Public Class Login
  5. ReadOnly screenWidth = Screen.PrimaryScreen.Bounds.Width
  6. ReadOnly screenHeight = Screen.PrimaryScreen.Bounds.Height
  7. ' TODO: 插入程式碼,利用提供的使用者名稱和密碼執行自訂驗證
  8. ' (請參閱 http://go.microsoft.com/fwlink/?LinkId=35339)。
  9. ' 如此便可將自訂主體附加到目前執行緒的主體,如下所示:
  10. ' My.User.CurrentPrincipal = CustomPrincipal
  11. ' 其中 CustomPrincipal 是用來執行驗證的 IPrincipal 實作。
  12. ' 接著,My.User 便會傳回封裝在 CustomPrincipal 物件中的識別資訊,
  13. ' 例如使用者名稱、顯示名稱等。
  14. ReadOnly ds2 As New DataSet
  15. Public Property Credentials As ICredentials
  16. Public Property Target1 As String
  17. Private Property MYSQL1 As String
  18. Dim MACKK As String 'MAC碼
  19. Dim diskId As String '數字ID
  20. Dim diskSerialNumber As String '硬碟序列
  21. Dim diskModel As String '磁盘型態
  22. Dim FFGG As Integer : Dim GGHH As Integer
  23. Dim HostName As String
  24. Dim IPAdress As IPAddress
  25. Dim MYIP As String
  26. Private Sub Set_清單1()
  27. FDT_dgv.DataSource = Nothing : ds2.Clear()
  28. FDT_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  29. FDT_dgv.ColumnHeadersHeight = 25
  30. FDT_dgv.AllowUserToAddRows = False
  31. ConnOpen()
  32. SQL1 = "SELECT 資料夾名稱, 指定 FROM FTP資料夾管理"
  33. CmdSet_For_DGV() : da.Fill(ds2) : FDT_dgv.DataSource = ds2.Tables(0) : conn.Close()
  34. End Sub
  35. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  36. '-----------------------刪除自動更新項目-----------------------------------------------------------------------------------------------------------------------------------------------
  37. Dim Str As String = Application.StartupPath
  38. If File.Exists(Str + "\SYS-UPDATE.exe") Then : File.Delete(Str + "\SYS-UPDATE.exe") : End If
  39. Timer1.Enabled = False
  40. End Sub
  41. <Obsolete>
  42. Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  43. '-----------------------控件基本設定-----------------------------------------------------------------------------------------------------------------------------------------------
  44. CheckBox1.Enabled = False : CheckBox3.Checked = True : CheckBox3.Enabled = False : CheckBox1.Enabled = False
  45. TextBox4.Text = "1"
  46. Label1.Text = "執行檔版本號 : " & 版本
  47. 網段.ShowDialog()
  48. If 登入判斷 = True And 內外網 = False Then
  49. ComboBox1.Text = "工巧明內網"
  50. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  51. ElseIf 登入判斷 = False And 內外網 = False Then
  52. ComboBox1.Text = "工巧明內網"
  53. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  54. ElseIf 登入判斷 = True And 內外網 = True Then
  55. ComboBox1.Text = "工巧明外網"
  56. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  57. End If
  58. '-----------------------取得本機IP-----------------------------------------------------------------------------------------------------------------------------------------------
  59. HostName = Dns.GetHostName '获得本机的机器名
  60. IPAdress = Dns.GetHostByName(HostName).AddressList.GetValue(0) '获得本机的IP
  61. MYIP = IPAdress.ToString
  62. '-----------------------IP比對----------------------------------------------------------------------------------------------------------------------------------------------------
  63. If Strings.Left(MYIP, 10) = "192.168.12" Or Strings.Left(MYIP, 7) = "10.0.0." Then
  64. ComboBox1.Text = "工巧明內網"
  65. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  66. Else
  67. ComboBox1.Text = "工巧明外網"
  68. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  69. End If
  70. Timer1.Enabled = True
  71. End Sub
  72. <Obsolete>
  73. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  74. '-----------------------確認登入伺服器位置-----------------------------------------------------------------------------------------------------------------------------------------
  75. If ComboBox1.Text = "工巧明內網" Then
  76. HostName = Dns.GetHostName '获得本机的机器名
  77. IPAdress = Dns.GetHostByName(HostName).AddressList.GetValue(0) '获得本机的IP
  78. MYIP = IPAdress.ToString
  79. If Strings.Left(MYIP, 10) = "192.168.12" Or Strings.Left(MYIP, 7) = "10.0.0." Then
  80. 登入人IP = "192.168.12.127"
  81. 登入()
  82. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  83. End If
  84. ElseIf ComboBox1.Text = "工巧明外網" Then
  85. HostName = Dns.GetHostName '获得本机的机器名
  86. IPAdress = Dns.GetHostByName(HostName).AddressList.GetValue(0) '获得本机的IP
  87. MYIP = IPAdress.ToString
  88. If Strings.Left(MYIP, 10) <> "192.168.12" Or Strings.Left(MYIP, 7) <> "10.0.0." Then
  89. 登入人IP = "180.177.181.162,5264"
  90. 登入()
  91. OK.Enabled = True : Cancel.Enabled = True : CheckBox1.Checked = True
  92. End If
  93. End If
  94. UsernameTextBox.Focus()
  95. End Sub
  96. Private Sub 登入()
  97. '-----------------------寫入連線字串-----------------------------------------------------------------------------------------------------------------------------------------------
  98. SQL_連線字串_ERP() : SQL_連線字串_考勤()
  99. g_conn_type = ComboBox1.Text & "伺服器"
  100. '-----------------------系統版本號寫入-----------------------------------------------------------------------------------------------------------------------------------------------
  101. ConnOpen()
  102. SQL1 = "SELECT 系統認證版本號 FROM 版本號管理 "
  103. CmdSet_For_dr()
  104. If dr.Read() Then
  105. Label2.Text = "資料庫版本號 : " & dr("系統認證版本號") : 版本號 = dr("系統認證版本號")
  106. End If : conn.Close()
  107. '-----------------------FTP資料夾登入位置宣告--------------------------------------------------------------------------------------------------------------------------------------
  108. ConnOpen()
  109. SQL1 = "SELECT FTP地址, FTP帳號, FTP密碼 FROM FTP資料庫管理 WHERE 地區 LIKE N'" & ComboBox1.Text & "'"
  110. CmdSet_For_dr()
  111. If dr.Read() Then
  112. Target = dr("FTP地址") : FTP帳號 = dr("FTP帳號") : FTP密碼 = dr("FTP密碼")
  113. End If : conn.Close()
  114. Set_清單1()
  115. For i As Integer = 0 To FDT_dgv.Rows.Count - 1
  116. If FDT_dgv(1, i).Value.ToString = "AA00" Then : AA(0) = FDT_dgv(0, i).Value.ToString : End If
  117. If FDT_dgv(1, i).Value.ToString = "AA01" Then : AA(1) = FDT_dgv(0, i).Value.ToString : End If
  118. If FDT_dgv(1, i).Value.ToString = "AA02" Then : AA(2) = FDT_dgv(0, i).Value.ToString : End If
  119. If FDT_dgv(1, i).Value.ToString = "AA03" Then : AA(3) = FDT_dgv(0, i).Value.ToString : End If
  120. If FDT_dgv(1, i).Value.ToString = "AA04" Then : AA(4) = FDT_dgv(0, i).Value.ToString : End If
  121. Next
  122. If Strings.Right(Label1.Text, 10) <> Strings.Right(Label2.Text, 10) Then
  123. 自動更新2()
  124. Else
  125. Me.Size = New Size(466, 279)
  126. If screenWidth = 1920 And screenHeight = 1080 Then : Me.Location = New Point(727, 401)
  127. ElseIf screenWidth = 1366 And screenHeight = 768 Then : Me.Location = New Point(450, 245)
  128. ElseIf screenWidth = 1440 And screenHeight = 900 Then : Me.Location = New Point(487, 311)
  129. ElseIf screenWidth = 1280 And screenHeight = 1024 Then : Me.Location = New Point(407, 373)
  130. ElseIf screenWidth = 1600 And screenHeight = 900 Then : Me.Location = New Point(567, 311)
  131. End If
  132. End If
  133. End Sub
  134. Private Sub 自動更新1()
  135. Dim aa1 As MsgBoxResult
  136. aa1 = MsgBox("系統版本號 與 資料庫版本號 對應不上,請開發人員注意是否有其他人員修改。並決定是否下載最新的執行檔?", MsgBoxStyle.OkCancel)
  137. If aa1 = MsgBoxResult.Ok Then
  138. Dim Str As String = Application.StartupPath
  139. My.Computer.Network.DownloadFile(Target & AA(0) & "/" & "SYS-UPDATE.exe", Str + "\SYS-UPDATE.exe")
  140. Shell(Str + "\SYS-UPDATE.exe", vbNormalFocus)
  141. Me.Close()
  142. Else
  143. 登入第二層()
  144. End If
  145. End Sub
  146. Private Sub 自動更新2()
  147. Dim aa1 As MsgBoxResult
  148. aa1 = MsgBox("系統版本號 與 資料庫版本號 對應不上,請下載最新的執行檔。", MsgBoxStyle.OkCancel)
  149. If aa1 = MsgBoxResult.Ok Then
  150. Dim Str As String = Application.StartupPath
  151. My.Computer.Network.DownloadFile(Target & AA(0) & "/" & "SYS-UPDATE.exe", Str + "\SYS-UPDATE.exe")
  152. Shell(Str + "\SYS-UPDATE.exe", vbNormalFocus)
  153. Me.Close()
  154. End If
  155. End Sub
  156. Private Sub 登入第一層()
  157. If UsernameTextBox.Text = "" Then
  158. MsgBox("請輸入帳號! 如使用刷登入,請確定該卡片有合法註冊!")
  159. ElseIf UsernameTextBox.Text <> "" Then
  160. If UsernameTextBox.Text = "" Then
  161. MsgBox("請輸入帳號!")
  162. ElseIf UsernameTextBox.Text <> "" Then
  163. If TextBox4.Text = "1" Then
  164. '-----------考勤權限取得-----------------------------------------------------------------------------------------------------------------
  165. ConnOpen()
  166. MYSQL1 = "SELECT ID卡號 FROM 使用者權限管理表 WHERE (帳號 = '" & UsernameTextBox.Text & "')"
  167. cmd.Connection = conn : cmd.CommandText = MYSQL1 : dr = cmd.ExecuteReader
  168. If dr.Read() Then
  169. ID卡號_tb.Text = dr("ID卡號") : conn.Close()
  170. ConnOpen_AM()
  171. SQL1 = "SELECT DIN" & 登入權限 & " FROM 使用者權限管理表 WHERE (ID卡號 LIKE '" & ID卡號_tb.Text & "')"
  172. CmdSet_For_dr()
  173. If dr.Read() Then
  174. For I As Integer = 1 To 權限數量
  175. BB(I) = dr.Item(I)
  176. Next
  177. End If
  178. End If : conn.Close()
  179. '-----------主系統權限取得-----------------------------------------------------------------------------------------------------------------
  180. ConnOpen()
  181. MYSQL1 = "SELECT " & 登入權限AQL & " FROM 使用者權限管理表 WHERE (帳號 = '" & UsernameTextBox.Text & "')"
  182. cmd.Connection = conn : cmd.CommandText = MYSQL1 : dr = cmd.ExecuteReader
  183. If dr.Read() Then
  184. TextBox1.Text = dr("密碼").ToString : gUserName = dr("姓名").ToString : TextBox2.Text = dr("密碼日期").ToString
  185. For I As Integer = 0 To 32
  186. CC(I) = dr.Item(I + 4)
  187. Next
  188. FFGG = DateDiff("d", TextBox2.Text, Format(Today(), "yyyy/MM/dd"))
  189. conn.Close()
  190. ConnOpen()
  191. MYSQL1 = "SELECT 人員編號 FROM 人員資料 WHERE (姓名 = '" & gUserName & "')"
  192. cmd.Connection = conn : cmd.CommandText = MYSQL1 : dr = cmd.ExecuteReader
  193. If dr.Read() Then
  194. 員工編號 = dr("人員編號").ToString : conn.Close()
  195. End If
  196. If CC(24) = True Then
  197. GGHH = 密碼時限 - FFGG
  198. If GGHH <= 0 Then
  199. MsgBox("密碼過期!")
  200. 個人帳號管理.ShowDialog()
  201. Else
  202. If Strings.Right(Label1.Text, 10) <> Strings.Right(Label2.Text, 10) Then
  203. If CC(26) = True Then
  204. 自動更新1()
  205. Else
  206. 自動更新2()
  207. End If
  208. Else
  209. 登入第二層()
  210. End If
  211. End If
  212. Else
  213. If Strings.Right(Label1.Text, 10) <> Strings.Right(Label2.Text, 10) Then
  214. If CC(26) = True Then
  215. 自動更新1()
  216. Else
  217. 自動更新2()
  218. End If
  219. Else
  220. 登入第二層()
  221. End If
  222. End If
  223. End If
  224. dr.Close()
  225. End If
  226. End If
  227. End If
  228. conn.Close()
  229. End Sub
  230. Private Sub 登入第二層()
  231. If PasswordTextBox.Text = TextBox1.Text Then
  232. If TextBox1.Text = "" Then
  233. MsgBox("帳號或密碼錯誤,請重新輸入!")
  234. Else
  235. Me.Hide()
  236. GCM_ERP_SYS.Show() : PasswordTextBox.Text = "" : UsernameTextBox.Text = ""
  237. End If
  238. ElseIf PasswordTextBox.Text <> TextBox1.Text Then
  239. MsgBox("帳號或密碼錯誤,請重新輸入!")
  240. End If
  241. End Sub
  242. Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
  243. If ComboBox1.Text = "" Then
  244. MsgBox("請正確選擇正確資料庫!")
  245. Else
  246. '-----MAC碼----------------------------------------------------------------------------------------------
  247. Dim Wmi As New Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration")
  248. For Each WmiObj As Management.ManagementObject In Wmi.Get
  249. If CBool(WmiObj("IPEnabled")) Then
  250. MACKK = WmiObj("MACAddress")
  251. End If
  252. Next
  253. '-----硬碟資料----------------------------------------------------------------------------------------------
  254. Dim cmicWmi As New Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
  255. For Each cmicWmiObj As Management.ManagementObject In cmicWmi.Get
  256. diskId = cmicWmiObj("signature")
  257. diskSerialNumber = cmicWmiObj("serialnumber")
  258. diskModel = cmicWmiObj("Model")
  259. Exit For
  260. Next
  261. If UsernameTextBox.Text = "b70340" Or UsernameTextBox.Text = "B70340" Then
  262. 登入第一層() : 判斷重登 = False
  263. ElseIf CheckBox3.Checked = True Then
  264. conn.Close()
  265. ConnOpen()
  266. SQL1 = "SELECT MAC碼 FROM 系統綁定電腦資訊
  267. WHERE 硬碟ID LIKE N'" & diskId & "' AND 硬碟序列 LIKE N'" & diskSerialNumber & "' AND 磁盘型態 LIKE N'" & diskModel & "'"
  268. CmdSet_For_dr()
  269. If dr.Read() Then
  270. conn.Close()
  271. 登入第一層()
  272. Else
  273. conn.Close()
  274. MsgBox("該電腦沒有註冊,無法使用系統。")
  275. End If
  276. ElseIf CheckBox3.Checked = False Then
  277. 登入第一層()
  278. End If
  279. End If
  280. End Sub
  281. Private Sub Cancel_Click(sender As Object, e As EventArgs) Handles Cancel.Click
  282. Me.Close()
  283. End Sub
  284. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles 更新下載_ch.CheckedChanged
  285. If 更新下載_ch.Checked = False Then
  286. Me.Size = New Size(466, 279)
  287. If screenWidth = 1920 And screenHeight = 1080 Then : Me.Location = New Point(727, 401)
  288. ElseIf screenWidth = 1366 And screenHeight = 768 Then : Me.Location = New Point(450, 245)
  289. ElseIf screenWidth = 1440 And screenHeight = 900 Then : Me.Location = New Point(487, 311)
  290. ElseIf screenWidth = 1280 And screenHeight = 1024 Then : Me.Location = New Point(407, 373)
  291. ElseIf screenWidth = 1600 And screenHeight = 900 Then : Me.Location = New Point(567, 311)
  292. End If
  293. Else
  294. Me.Size = New Size(705, 279)
  295. If screenWidth = 1920 And screenHeight = 1080 Then : Me.Location = New Point(608, 401)
  296. ElseIf screenWidth = 1366 And screenHeight = 768 Then : Me.Location = New Point(331, 245)
  297. ElseIf screenWidth = 1440 And screenHeight = 900 Then : Me.Location = New Point(368, 311)
  298. ElseIf screenWidth = 1280 And screenHeight = 1024 Then : Me.Location = New Point(288, 373)
  299. ElseIf screenWidth = 1600 And screenHeight = 900 Then : Me.Location = New Point(448, 311)
  300. End If
  301. End If
  302. End Sub
  303. Private Sub UsernameTextBox_TextChanged(sender As Object, e As EventArgs) Handles UsernameTextBox.TextChanged
  304. If CheckBox1.Checked = False Then
  305. Else
  306. If IsNumeric(UsernameTextBox.Text) = True Then
  307. If UsernameTextBox.Text.Length = 10 Then
  308. ID卡號_tb.Text = UsernameTextBox.Text
  309. ConnOpen()
  310. MYSQL1 = "SELECT 帳號, 密碼 FROM 使用者權限管理表 WHERE (ID卡號 = '" & UsernameTextBox.Text & "')"
  311. cmd.Connection = conn : cmd.CommandText = MYSQL1 : dr = cmd.ExecuteReader
  312. If dr.Read() Then
  313. UsernameTextBox.Text = dr("帳號").ToString
  314. PasswordTextBox.Text = dr("密碼").ToString
  315. conn.Close()
  316. Else
  317. UsernameTextBox.Text = "" : PasswordTextBox.Text = "" : conn.Close()
  318. End If
  319. Exit Sub : Me.OK.PerformClick()
  320. End If
  321. End If
  322. End If
  323. End Sub
  324. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.Click
  325. UsernameTextBox.Focus()
  326. End Sub
  327. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  328. Dim Str As String = Application.StartupPath
  329. My.Computer.Network.DownloadFile(Target & AA(0) & "/" & "SYS-UPDATE.exe", Str + "\SYS-UPDATE.exe")
  330. Shell(Str + "\SYS-UPDATE.exe", vbNormalFocus)
  331. Me.Close()
  332. End Sub
  333. End Class