No Description
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 16KB

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