⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modtools.bas

📁 VB多功能密码生成器
💻 BAS
字号:
Attribute VB_Name = "modTools"
'Download by http://www.codefans.net
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public DialogH As New CDialog
Public TmpPasswords() As String

Public Function GetCharPos(lpStr As String, lFindChar As String, sPosition As Integer) As Integer
Dim e_Pos As Integer, X

    e_Pos = -1
    For X = 1 To Len(lpStr)
        If LCase(Mid(lpStr, X, 1)) = LCase(lFindChar) Then
            e_Pos = X
            If sPosition = 0 Then ' find first
                Exit For
            End If
        End If
    Next
    
    X = 0
    GetCharPos = e_Pos
    e_Pos = 0
    
End Function

Function GetFilename(lpFile As String) As String
Dim e_Pos As Integer
    e_Pos = GetCharPos(lpFile, "\", 1)
    If e_Pos = -1 Then
        GetFilename = lpFile
    Else
        GetFilename = Trim(Mid(lpFile, e_Pos + 1, Len(lpFile)))
    End If
    e_Pos = 0
End Function

Function GetFileExt(lpFile As String) As String
Dim e_Pos As Integer
    e_Pos = GetCharPos(lpFile, ".", 1)
    If e_Pos = -1 Then
        GetFileExt = lpFile
        Exit Function
    Else
        GetFileExt = Trim(Mid(lpFile, e_Pos, Len(lpFile)))
        e_Pos = 0
    End If
End Function

Function isalnum(lpStr As String) As Boolean
Dim c As String, e_Pos As Integer

    For X = 1 To Len(lpStr)
        c = Mid(lpStr, X, 1)
        Select Case c
            Case "0" To "9": e_Pos = 1
            Case Else
                e_Pos = 0
                Exit For
        End Select
    Next X
    
    isalnum = e_Pos
    X = 0
    
End Function
Public Sub Swap(A, B)
Dim t
    'Swaps two values
    t = B
    B = A
    A = t
End Sub

Public Sub OpenSite(mHwnd As Long, lpUrl As String)
    ShellExecute mHwnd, "open", lpUrl, vbNullString, vbNullString, 1
End Sub

Function FixPath(lzPath As String) As String
   If Right(lzPath, 1) = "\" Then FixPath = lzPath Else FixPath = lzPath & "\"
End Function

Function Reserve(lpText As String)
Dim X As Integer, ch As String
    For X = Len(lpText) To 1 Step -1
        ch = ch & Mid$(lpText, X, 1)
    Next X
    
    Reserve = ch
    ch = ""
    X = 0
    
End Function

Function DeleteFileFx(lpFileName As String)
On Error Resume Next
    SetAttr lpFileName, vbNormal
    SaveFile lpFileName, ""
    Kill lpFileName
End Function

Function Invert(lpText As String)
Dim X As Integer, sBuff As String, ch As String
    For X = 1 To Len(lpText)
        ch = Mid$(lpText, X, 1)
        
        If ch = UCase(ch) Then
            ch = LCase(ch)
        Else
            ch = UCase(ch)
        End If
        
        sBuff = sBuff & ch
    Next X
    
    X = 0
    ch = ""
    Invert = sBuff
    sBuff = ""
End Function

Function GenPassword(Hi As Integer, lo As Integer, Length As Integer) As String
Dim X As Integer, s As String
    'Password generator 1
    Const Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    For X = 1 To Length
        Randomize
        s = s & Mid(Chars, (Hi + Int(Rnd * lo) + 1), 1)
    Next X
    
    X = 0
    GenPassword = s
    
End Function

Function GetExtPassword(Length As Integer) As String
Dim X As Integer, s As String
    'Password generator 2
    For X = 1 To Length
        Randomize
        s = s & Chr((127 + Int(Rnd * 127) + 1))
    Next X
    
    GetExtPassword = s
    s = ""
End Function

Function GetSpecialPassword(Length As Integer) As String
Dim X As Integer, s As String
    'Password generator 3
    Const sp_chars = "!""#$%&'()*+,-./:;<=>?@[\]^_`{}~|"
    
    For X = 1 To Length
        Randomize
        s = s & Mid(sp_chars, (Int(Rnd * 32) + 1), 1)
    Next X
    
    X = 0
    GetSpecialPassword = s
    s = ""
    
End Function

Function GetPasswordAll(Length As Integer) As String
Dim pTmp As String
    pTmp = GetExtPassword(127) & "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!""#$%&'()*+,-./:;<=>?@[\]^_`{}~|"
    
    For X = 1 To Length
        Randomize
        s = s & Mid(pTmp, (Int(Rnd * Len(pTmp)) + 1), 1)
    Next X
    
    X = 0
    GetPasswordAll = s
    s = ""
    
End Function

Sub SaveFile(lpFile As String, lpData As String)
Dim fp As Long
    fp = FreeFile
    Open lpFile For Output As #fp
        Print #fp, lpData;
    Close #fp
End Sub

Sub ExportRtf(lExportFile As String, mList() As String, lTemp As String)
Dim iSize As Long, X As Long, nEnd As String
Dim RtfHead As String, sList As String, sMsg As String

    iSize = UBound(mList)
    
    If iSize = 0 Then
        sMsg = "password generated."
    Else
        sMsg = "passwords generated."
    End If
    
    RtfHead = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}}" & vbCrLf
    RtfHead = RtfHead & "{\colortbl ;\red0\green0\blue255;}" & vbCrLf
    RtfHead = RtfHead & "{\*\generator " & lTemp & ";}\viewkind4\uc1\pard\nowidctlpar\cf1\b\f0\fs32 Generated Password List\cf0\par" & vbCrLf
    RtfHead = RtfHead & "\fs16 " & iSize + 1 & " " & sMsg & "\par" & vbCrLf
    RtfHead = RtfHead & "\par\fs20" & vbCrLf
    
    For X = 0 To iSize
        If X = iSize Then nEnd = "\fs32"
        sList = sList & "\fs20 " & (X + 1) & ".\tab " & mList(X) & nEnd & "\par" & vbCrLf
    Next X
    
    sList = sList & "\b0\par" & vbCrLf & "}" & vbCrLf
    
    SaveFile lExportFile, RtfHead & sList
    sMsg = ""
    RtfHead = ""
    sList = ""
    nEnd = ""
    iSize = 0
    Erase mList
    
End Sub

Sub ExportHtml(lExportFile As String, mList() As String, lTemp As String)
Dim iSize As Long, X As Long
Dim htmHead As String, sList As String, sMsg As String

    iSize = UBound(mList)
    
    If iSize = 0 Then
        sMsg = "password generated."
    Else
        sMsg = "passwords generated."
    End If
    
    htmHead = "<html>" & vbCrLf
    htmHead = htmHead & "<head>" & vbCrLf
    htmHead = htmHead & "<title>Generated Password List</title>" & vbCrLf
    htmHead = htmHead & "<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"">" & vbCrLf
    htmHead = htmHead & "</head>" & vbCrLf
    htmHead = htmHead & vbCrLf
    htmHead = htmHead & "<body bgcolor=""#FFFFFF"" text=""#000000"">" & vbCrLf
    htmHead = htmHead & "<!--" & lTemp & " -->" & vbCrLf
    htmHead = htmHead & "<p><b><font face=""Arial, Helvetica, sans-serif"" size=""4"" color=""#0000FF"">Generated" & vbCrLf
    htmHead = htmHead & "Password List</font></b><br>" & vbCrLf
    
    htmHead = htmHead & "  <font size=""1"" face=""Arial, Helvetica, sans-serif""><b>" & (iSize + 1) & " " & sMsg & "</b></font>" & vbCrLf
    htmHead = htmHead & "<ol>" & vbCrLf
    
    For X = 0 To iSize
       sList = sList & "<li><font face=""Arial, Helvetica, sans-serif"" size=""2""><b>" & mList(X) & "</b></font></li>" & vbCrLf
    Next X
    
    sList = sList & "</ol>" & vbCrLf
    sList = sList & "</body>" & vbCrLf
    sList = sList & "</html>" & vbCrLf
    
    SaveFile lExportFile, htmHead & sList
    sMsg = ""
    htmHead = ""
    sList = ""
    iSize = 0
    Erase mList
    
End Sub

Sub ExportTxt(lExportFile As String, mList() As String, lTemp As String)
Dim iSize As Long, X As Long
Dim TxtHead As String, sList As String, sMsg As String

    iSize = UBound(mList)
    
    If iSize = 0 Then
        sMsg = "password generated."
    Else
        sMsg = "passwords generated."
    End If
    
    TxtHead = "Generated Password List" & vbCrLf
    TxtHead = TxtHead & "- - - - - - - - - - - - - - - - - - -" & vbCrLf
    TxtHead = TxtHead & iSize + 1 & " " & sMsg & vbCrLf & vbCrLf
    
    For X = 0 To iSize
        sList = sList & (X + 1) & "." & vbTab & mList(X) & vbCrLf
    Next X
    
    sList = sList & vbCrLf & vbCrLf & lTemp & vbCrLf

    SaveFile lExportFile, TxtHead & sList
    sMsg = ""
    TxtHead = ""
    sList = ""
    iSize = 0
    Erase mList
    
End Sub

Sub ExportTxtPlain(lExportFile As String, mList() As String)
Dim iSize As Long, X As Long
Dim sList As String

    iSize = UBound(mList)
    
    For X = 0 To iSize
        sList = sList & mList(X) & vbCrLf
    Next X

    SaveFile lExportFile, TxtHead & sList
    sList = ""
    iSize = 0
    Erase mList
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -