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

📄 modannex.bas

📁 一个VB编写的
💻 BAS
📖 第 1 页 / 共 2 页
字号:
Attribute VB_Name = "modAnnexModl"
Option Explicit

'-----
Public Const AkaIro As Long = &HA0A0FF      '愒怓
Public Const AoIro As Long = &HFFC0C0       '惵怓
Public Const KiIro As Long = &HC0FFFF       '墿怓
Public Const HaiIro As Long = &H8000000F    '奃怓
Public Const Makkakka As Long = &HFF&       '恀愒
Public Const DaidaiIro As Long = &H80C0FF   '烌怓
Public Const KuroIro As Long = &H0&         '崟怓
Public Const SiroIro As Long = &HFFFFFF     '敀怓
Public Const MidoriIro As Long = &HC0FFC0   '椢怓
Public Const MizuIro As Long = &HFFFFC0     '悈怓
Public Const SiroHai As Long = &HE0E0E0     '敀奃怓
'-----
Public iniFile$ 'ini僼傽僀儖(僼儖僷僗)

Public SysDir$
Public TmpDir$
Public ParDir$
Public DatDir$
Public TDatDir$
Public SDatDir$
Public IniDirFName$ '儗僕僗僩儕曐懚応強
Public IniTstName$  '帋尡柤徧(Hai Sen Hip... etc.)

Public RekeyFlag As Integer '(0:忦審擖椡 1:帋尡屻)


'------API
Public n_Windir As String * 255
Public n_Crtdir As String * 255
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Declare Function GetCurrentDirectory Lib "kernel32.dll" Alias "GetCurrentDirectoryA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

' 僋儔僗柤偲僞僀僩儖偱僂傿儞僪僂傪専嶕偟僂傿儞僪僂僴儞僪儖傪庢摼偡傞
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'僇儗儞僩僗儗僢僪偺幚峴傪巜掕偺帪娫偩偗拞抐偡傞
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'***************************************
'*        ini僼傽僀彂偒崬傒
'***************************************
Private Function ReadIniString(path As String, title As String, keyword As String) As String
    Dim StrBuf As String * 100          'GetPrivateProfileString偺暥帤楍庢摼僄儕傾
    Dim length As Long, WK As String
    StrBuf = ""
    
    length = GetPrivateProfileString(title, keyword, "", StrBuf, 100, path)
        WK = StrConv(StrBuf, vbFromUnicode)
        WK = LeftB(WK, length)
        WK = StrConv(WK, vbUnicode)
    ReadIniString = WK 'Left(StrBuf, length)

End Function

'***************************************
'*      ini僼傽僀儖撉崬傒(Long)
'***************************************
Private Function ReadIniLong(path As String, title As String, keyword As String) As Long
    
    ReadIniLong = GetPrivateProfileInt(title, keyword, 0, path)

End Function

'***************************************
'*     ini僼傽僀儖撉崬傒(String)
'***************************************
Private Function WriteIniString(path As String, title As String, keyword As String, writedata As String) As Long
    
    WriteIniString = WritePrivateProfileString(title, keyword, writedata, path)

End Function

'***************************************
'*         奺僼僅儖僟嶌惉
'***************************************
Public Sub DataFolderGenerate(sBasyo As String)
    Dim gRET As Integer
    
    If sBasyo = "" Then
        SysDir$ = App.path
    Else
        SysDir$ = sBasyo
    End If
    
    gRET = DataFolder(SysDir$ + "\TEMP")    'TEMP
    gRET = DataFolder(SysDir$ + "\PARA")    'PARA
    gRET = DataFolder(SysDir$ + "\DATA")    'DATA
End Sub

'***************************************
'*         ini僼傽僀儖柤嶌惉
'***************************************
Public Function iniFileGenerate(sTesTName As String, sBasyo As String) As String
    
    If Right(sBasyo, 1) = "\" Then
        iniFileGenerate = sBasyo + sTesTName + ".ini"
    Else
        iniFileGenerate = sBasyo + "\" + sTesTName + ".ini"
    End If

End Function

'***************************************
'*   慜夞偺僼僅乕儉偺埵抲傪撉傒崬傓
'***************************************
Public Sub TestForm_Input(oForm As Object)
    Dim gRET As Long
    Dim Pt_Top As Single, Pt_Left As Single
    Dim sForm As String
    
    sForm = oForm.Name
    
    Pt_Top = ReadIniLong(iniFile$, oForm.Caption, "Top")
    Pt_Left = ReadIniLong(iniFile$, oForm.Caption, "Left")
    
    If (Pt_Top < 0) Or (Pt_Top > 16000) Then Pt_Top = 0
    If (Pt_Left < 0) Or (Pt_Left > 16000) Then Pt_Left = 0
    
    oForm.Top = Pt_Top
    oForm.Left = Pt_Left
End Sub

'***************************************
'*   廔椆帪偺僼僅乕儉偺埵抲傪彂偒崬傓
'***************************************
Public Sub TestForm_OutPut(oForm As Object)
    Dim gRET As Long
    Dim Pt_Top As Single, Pt_Left As Single
    Dim sForm As String
    
    sForm = oForm.Name
    Pt_Top = oForm.Top
    Pt_Left = oForm.Left
    
    If (Pt_Top < 0) Or (Pt_Top > 16000) Then Pt_Top = 0
    If (Pt_Left < 0) Or (Pt_Left > 16000) Then Pt_Left = 0
    
    gRET = WriteIniString(iniFile$, oForm.Caption, "Top", CStr(Pt_Top))
    gRET = WriteIniString(iniFile$, oForm.Caption, "Left", CStr(Pt_Left))
End Sub

'***************************************
'*  丂丂 僼僅乕儉傪拞墰埵抲偵偡傞
'***************************************
Public Sub TestForm_Center(oForm As Form)
    Dim ScHe As Integer
    Dim ScWi As Integer
    
    ScHe = Screen.Height
    ScWi = Screen.Width
    oForm.Move (ScWi \ 2) - (oForm.Width \ 2), (ScHe \ 2) - (oForm.Height \ 2)

End Sub

'***********************************
'* 丂僼傽僀儖柤梡嬛巭暥帤敳偒庢傝
'***********************************
Public Sub ufFileChkFName(ByRef Name As String)

End Sub

'***********************************
'*  丂丂 暥帤悢帤寘崌傢偣
'***********************************
Public Function plcFormat(nData As Variant, nPlace As String, nNum As Integer) As String
    Dim iWK As Integer, sWK As Single, WK As String
    iWK = Val(nPlace)
    If iWK = 0 Then
        sWK = Val(nData)
        plcFormat = Right(Space(nNum) + Format(sWK, nPlace), nNum)
    Else
        WK = StrConv(nData + Space(nNum), vbFromUnicode)
        WK = LeftB(WK, nNum)
        WK = StrConv(WK, vbUnicode)
        plcFormat = WK
    End If
End Function

'******************************
'*   僼僅儖僟偺妋擣偲愝掕
'******************************
Public Sub DataFolderPrepare(sParental As String, sChild As String, _
                             sComplete As String, ANew As Boolean)
    Dim J As Integer
    Dim RET1 As Integer

    '怴婯-----
    ANew = False '偡偱偵偁傞
    '僨傿儗僋僩儕乕愝掕-----
    sComplete = sParental + "\" + sChild
    RET1 = DataFolder(sComplete)      'sParental + "\" + sChild
    If RET1 = 1 Then    '僼僅儖僟偑懚嵼偟側偐偭偨(弶婜偲擣幆)
        ANew = True '怴婯-----
    End If

End Sub

'******************************
'*   巊梡僼僅儖僟偺妋擣偲愝掕
'******************************
Public Sub DataFolderConfirm()
    
    TmpDir$ = ReadIniString(iniFile$, "Directory", "TmpDir")
    ParDir$ = ReadIniString(iniFile$, "Directory", "ParDir")
    DatDir$ = ReadIniString(iniFile$, "Directory", "DatDir")
    TDatDir$ = ReadIniString(iniFile$, "Directory", "TDatDir")
    SDatDir$ = ReadIniString(iniFile$, "Directory", "SDatDir")
    
    If TmpDir$ = "" Then TmpDir$ = SysDir$ + "\TEMP"
    If ParDir$ = "" Then ParDir$ = SysDir$ + "\PARA"
    If DatDir$ = "" Then DatDir$ = SysDir$ + "\DATA"
    If TDatDir$ = "" Then TDatDir$ = SysDir$
    If SDatDir$ = "" Then SDatDir$ = SysDir$

End Sub

'******************************
'*   巊梡僼僅儖僟偺峏怴
'******************************
Public Sub DataFolderUpdate()
    
    Dim gRET As Long
    
    gRET = WriteIniString(iniFile$, "Directory", "TmpDir", TmpDir$)
    gRET = WriteIniString(iniFile$, "Directory", "ParDir", ParDir$)
    gRET = WriteIniString(iniFile$, "Directory", "DatDir", DatDir$)
    gRET = WriteIniString(iniFile$, "Directory", "TDatDir", TDatDir$)
    gRET = WriteIniString(iniFile$, "Directory", "SDatDir", SDatDir$)

End Sub

'******************************
'*  嶌嬈僼僅儖僟偺妋擣仌嶌惉
'******************************
Private Function DataFolder(N As String) As Integer
    Dim WK As String
    Dim FileNumB1 As Integer
    On Error GoTo NotFolder
    
    '-----
    WK = N
    FileNumB1 = FreeFile
    Open WK + "\TEST.$$$" For Output As #FileNumB1
    Close #FileNumB1
    Kill WK + "\TEST.$$$"
    On Error GoTo 0
    DataFolder = 0
Exit Function
    
    
NotFolder:
    On Error GoTo 0
    Close #FileNumB1
    MkDir WK
    DataFolder = 1
End Function

'***********************************
'*       擖椡抣偺斖埻妋擣
'***********************************
Public Function ufTextErrSearch(Name As String, param As Variant, _
                            Max As Single, xCmp As String, Min As Single, nCmp As String, UGNG As String, _
                            oForm As Object, oText As Object) As Boolean
    Dim oKomoku As Object, RET As Integer
    
    ufTextErrSearch = True
    
    Set oKomoku = oText
    
    Select Case xCmp
    Case ">=", "=>"     '嵟戝偑埲忋偱偁傞-----
        Select Case nCmp

⌨️ 快捷键说明

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