以前写的一个VB仓存管理系统(四)

    技术2022-05-20  51

    有朋友评论资源说“希望分有所值”,让我很忐忑。我自己觉得呢,对于我们初学者来说,一篇完整的、原创的、实用的连载,应该要比从网上copy来的零散技术文章更有价值一点。当然,我也会更努力一点,争取不让大家失望。下载了资源包的朋友们在安装和运行过程中有什么问题,请给我来信:1186823464@qq.com。这次在运行过程中我又发现了几处问题,但还没有来得及解决,请朋友们指正,万分感激。废话少说,请看启动和登录界面:

     

     

     

      

     

     

     

    启动窗体的源码:

    Private Sub Form_Load() Me.Timer1.Enabled = False If App.PrevInstance Then Call mymsgbox("应用程序已在运行中!", "", "yes", "c") End Else Me.Timer1.Enabled = True Me.Label1.Caption = "正在读取系统配置......" End If End Sub Private Sub Timer1_Timer() On Error GoTo myrong '******************************************************************************* Call Pause(1) Me.Label1.Caption = "正在连接系统数据库......" Call openmyini("read") Dim userid As String, pwd As String userid = "" pwd = "" Decipher "zhlinpboy", inputdata(11), userid Decipher "zhlinpboy", inputdata(13), pwd '生成数据库连接字符串 Select Case inputdata(7) Case "MS ACCESS" connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/mydb/zhlinpb.dll;" Case Else connstr = "Provider=SQLOLEDB.1;Password=" + pwd + ";Persist Security Info = True;User ID = " + userid + ";Initial Catalog=" + inputdata(9) + ";Data Source=" + inputdata(3) End Select Call myopen rs.Open "select 姓名 from users order by 姓名 desc", conn, 1, 1 Call Pause(1) Me.Label1.Caption = "正在启动应用程式......" Call Pause(1) Unload Me Form2.Show myrong: '错误处理 If Err.Number <> 0 Then Call mymsgbox("系统运行时错误,错误号:" & Str(Err.Number), "错误描述:" & Err.Description, "yes", "e") Err.Clear End End If End Sub Private Sub Pause(ByVal sSec As Long) Dim StartSec As Long StartSec = GetTickCount() While (GetTickCount() - StartSec) / 500 < sSec DoEvents Wend End Sub

     

     

    登录窗体的源码:

    Dim logincount As Integer Private Sub Combo1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" End Sub Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer) Call isme End Sub Private Sub Combo1_LostFocus() Call isme End Sub Private Sub dcButton1_Click() If Combo1.Text <> "" And Text1 <> "" Then Dim passwd As String passwd = "" Cipher "zhlinpboy", Text1, passwd Call myopen rs.Open "select 姓名,权限 from users where 姓名 = '" & Combo1.Text + "' and 密码 = '" & passwd + "'", conn, 1, 1 If rs.RecordCount <> 1 Then logincount = logincount + 1 If logincount <= 3 Then Me.Hide Call mymsgbox("无效的用户名或密码,请重新输入!", "", "yes", "e") Form2.Show Text1 = "" Text1.SetFocus Else Unload Me Form4.Show End If Else username = rs(0) quanxian = rs(1) Unload Me MDIForm1.Show End If Call myclose End If End Sub Private Sub dcButton2_Click() Me.Hide Call mymsgbox("确定退出本系统吗?", "", "", "q") If myreturn = "no" Then Form2.Show Form2.Combo1.SetFocus End If If myreturn = "yes" Then End End Sub Private Sub dcButton3_Click() Form1.Show 1 fromform = "login" End Sub Private Sub Form_Load() On Error GoTo myrong logincount = 0 Dim rtn As Long rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE) '取的窗口原先的样式 rtn = rtn Or WS_EX_LAYERED '使窗体添加上新的样式WS_EX_LAYERED SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn '把新的样式赋给窗体 SetLayeredWindowAttributes Me.hwnd, 100, 248, LWA_ALPHA '把窗体设置成半透明样式,第二个参数表示透明程度 Me.FormShaper1.ShapeIt "myform" If Not rs.BOF And Not rs.EOF Then Me.Combo1.Clear For i = 1 To rs.RecordCount Me.Combo1.AddItem rs(0), i - 1 rs.MoveNext Next i End If Call myclose myrong: '错误处理 If Err.Number <> 0 Then Call mymsgbox("系统运行时错误,错误号:" & Str(Err.Number), "错误描述:" & Err.Description, "yes", "e") Err.Clear End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call dcButton1_Click End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Call isme End Sub Private Sub isme() If Me.Combo1.Text = "zhlinpb" And Text1 = "13577158467" Then Me.dcButton3.Visible = True Else Me.dcButton3.Visible = False End If End Sub Private Sub Text1_LostFocus() Call isme End Sub

     

     

    说明:

     

    1、这两个窗体的代码相对简单。启动窗主要是读取配置文件,并解密数据库的用户名和密码,然后生成连接数据库的字符串连接数据库。如果相配则启动登录窗体,如果不配三次则启动警告窗体(很搞笑的窗体,是学习制作不规则窗体的好例子)。该窗体不太实用,仅为了花哨而已,呵呵……

     

    2、在登录窗口中输入用户名:zhlinpb 密码:13577158467 则会出现系统设置按钮,这可以算是一个后门吧,主要是为了程序的用户表被篡改后可以使用一个万能的用户名和密码来修改配置文件,方便系统维护。系统设置里面还有加密字符应用,可以让你直接把加密后的密文写到配置文件里。在修改配置文件前请一定备份,但建议大家在整体了解该系统前不要去修改你的配置文件,否则会导致程序无法连接数据库。如果朋友们对此配置窗体有兴趣,请留言告知,我会在今后详细说明一下,因为它的个人色彩特别浓。

     

    3、小技巧:登录窗体的下拉框有快捷键(ALT+UP),选中后回车就会跳到密码框。在实际应用中我个人觉得非常实用,可以极大的提高你的操作速度。

     


    最新回复(0)