本帖最后由 imperialeast 于 2026-10-10 09:56 编辑
Option Explicit
'作者:夏*()
Dim Ipic(4) As IPictureDisp, XIA As XForm, Px As Long, Py As Long
Private Sub Form_Load()
Set Ipic(0) = LoadPicture(App.Path & "\MWO\MWO_Nor.bmp")
Set Ipic(1) = LoadPicture(App.Path & "\MWO\MWO_Ovr.jpg")
Set Ipic(2) = LoadPicture(App.Path & "\MWO\MWO_Dwn.jpg")
Set Ipic(3) = LoadPicture(App.Path & "\MWO\MWO_Gry.jpg")
Set Ipic(4) = LoadPicture(App.Path & "\MWO\Any.bmp")
With XIA
.hWnd = XFM.hWnd
.UseMainMask = True
.MainMaskColor = RGB(255, 0, 255)
.CoordinateMoveX = 3
.DoUPramters = CStr(XFM.hWnd)
.UseCurrentDC = False
.hDC = XFM.hDC
.Hotkey = "Ctrl+L"
.UseCheckBox = True
.UserCursorWay = App.Path & "\"
.UserMainCursor = App.Path & "\XMAIN.cur"
.UseSlider = False
.UseSysPopMenu = True
.UseSystemStyle = False
.UseToolTip = True
.lpCapRect = "0,0,510,0"
.XShape = "0,0,580,254"
.XCtrl = App.Path & "\MWO\UI.ini"
.XNormal = Ipic(0).Handle
.XOver = Ipic(1).Handle
.XDown = Ipic(2).Handle
.XGray = Ipic(3).Handle
.XAny = Ipic(4).Handle
End With
SetMyWindow XIA, AddressOf DoSub
'UpDateBackUI XIA, 0
SetRoundRect XFM.hWnd, 0, 0, 580, 254, 3, 3
With lFont(2)
.Caption = "输入>>>"
.ChrAngle = 0
.FontName = "黑体"
.ForeColor = vbWhite
.Left = 20
.Top = 76
.TextHeight = 12
.TextWidth = 7
.Weight = 600
End With
With lFont(3)
.Caption = "输出>>>"
.ChrAngle = 0
.FontName = "黑体"
.ForeColor = vbWhite
.Left = 20
.Top = 126
.TextHeight = 12
.TextWidth = 7
.Weight = 600
End With
With lFont(4)
.Caption = "作者:夏煜(QQ:499932452)"
.FontName = "黑体"
.ForeColor = vbWhite
.ChrAngle = 0
.Left = 180
.Top = 54
.TextHeight = 12
.TextWidth = 7
.Weight = 500
End With
SetAbstractW lFont()
BG2.Show
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Px = X * Screen.TwipsPerPixelX: Py = Y * Screen.TwipsPerPixelY
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Me.Left = Me.Left + (X * Screen.TwipsPerPixelX - Px): BG2.Left = Me.Left - Screen.TwipsPerPixelX: Me.Top = Me.Top + (Y * Screen.TwipsPerPixelY - Py): BG2.Top = Me.Top - Screen.TwipsPerPixelY
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload BG2
End Sub
Private Sub Kbp_Click(Index As Integer)
Dim I As Integer
Select Case Index
Case 0
Kbp(0).Checked = Not Kbp(0).Checked
If Kbp(0).Checked = True Then
BitRate = "32"
For I = 0 To 8
If I <> 0 Then Kbp(I).Checked = False
Next
End If
Case 1
Kbp(1).Checked = Not Kbp(1).Checked
If Kbp(1).Checked = True Then
BitRate = "56"
For I = 0 To 8
If I <> 1 Then Kbp(I).Checked = False
Next
End If
Case 2
Kbp(2).Checked = Not Kbp(2).Checked
If Kbp(2).Checked = True Then
BitRate = "80"
For I = 0 To 8
If I <> 2 Then Kbp(I).Checked = False
Next
End If
Case 3
Kbp(3).Checked = Not Kbp(3).Checked
If Kbp(3).Checked = True Then
BitRate = "96"
For I = 0 To 8
If I <> 3 Then Kbp(I).Checked = False
Next
End If
Case 4
Kbp(4).Checked = Not Kbp(4).Checked
If Kbp(4).Checked = True Then
BitRate = "128"
For I = 0 To 8
If I <> 4 Then Kbp(I).Checked = False
Next
End If
Case 5
Kbp(5).Checked = Not Kbp(5).Checked
If Kbp(5).Checked = True Then
BitRate = "160"
For I = 0 To 8
If I <> 5 Then Kbp(I).Checked = False
Next
End If
Case 6
Kbp(6).Checked = Not Kbp(6).Checked
If Kbp(6).Checked = True Then
BitRate = "192"
For I = 0 To 8
If I <> 6 Then Kbp(I).Checked = False
Next
End If
Case 7
Kbp(7).Checked = Not Kbp(7).Checked
If Kbp(7).Checked = True Then
BitRate = "256"
For I = 0 To 8
If I <> 7 Then Kbp(I).Checked = False
Next
End If
Case 8
Kbp(8).Checked = Not Kbp(8).Checked
If Kbp(8).Checked = True Then
BitRate = "320"
For I = 0 To 8
If I <> 8 Then Kbp(I).Checked = False
Next
End If
End Select
End Sub
Private Sub LAME_Click()
LAME.Checked = Not LAME.Checked
If LAME.Checked = True Then
Ogg.Checked = False
End If
GetQuality
If OutFolder = "" Then Exit Sub
If UCase(Right(SongWay, 3)) <> "WAV" Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "WAV"
Else
If XFM.Ogg.Checked = True Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "OGG"
Else
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "MP3"
End If
End If
ToutStr = OutFolder & "\" & OutName
lFont(1).Caption = GetShtFileName(ToutStr)
SetAbstract lFont()
' UpDateBackUI XIA
End Sub
Private Sub Ogg_Click()
Ogg.Checked = Not Ogg.Checked
If Ogg.Checked = True Then
LAME.Checked = False
End If
GetQuality
If OutFolder = "" Then Exit Sub
If UCase(Right(SongWay, 3)) <> "WAV" Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "WAV"
Else
If XFM.Ogg.Checked = True Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "OGG"
Else
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "MP3"
End If
End If
ToutStr = OutFolder & "\" & OutName
lFont(1).Caption = GetShtFileName(ToutStr)
SetAbstract lFont()
' UpDateBackUI XIA
End Sub
Private Sub Quty_Click(Index As Integer)
Dim I As Integer
Select Case Index
Case 0
Quty(0).Checked = Not Quty(0).Checked
If Quty(0).Checked = True Then
For I = 0 To 2
If I <> 0 Then Quty(I).Checked = False
Next
If LAME.Checked = True Then
Quality = " -f"
End If
If Ogg.Checked = True Then
Quality = " -q 2 "
End If
End If
Case 1
Quty(1).Checked = Not Quty(1).Checked
If Quty(1).Checked = True Then
For I = 0 To 2
If I <> 1 Then Quty(I).Checked = False
Next
If LAME.Checked = True Then
Quality = ""
End If
If Ogg.Checked = True Then
Quality = " -q 5 "
End If
End If
Case 2
Quty(2).Checked = Not Quty(2).Checked
If Quty(2).Checked = True Then
For I = 0 To 2
If I <> 2 Then Quty(I).Checked = False
Next
If LAME.Checked = True Then
Quality = " -h"
End If
If Ogg.Checked = True Then
Quality = " -q 10 "
End If
End If
End Select
End Sub
Public Sub GetQuality()
If Quty(0).Checked = True Then
If LAME.Checked = True Then
Quality = " -f"
End If
If Ogg.Checked = True Then
Quality = " -q 2 "
End If
End If
If Quty(1).Checked = True Then
If LAME.Checked = True Then
Quality = ""
End If
If Ogg.Checked = True Then
Quality = " -q 5 "
End If
End If
If Quty(2).Checked = True Then
If LAME.Checked = True Then
Quality = " -h"
End If
If Ogg.Checked = True Then
Quality = " -q 10 "
End If
End If
End Sub
Public Sub GetBitRate()
Dim I As Integer
For I = 0 To 8
If Kbp(I).Checked = True Then Exit For
Next
Select Case I
Case 0
BitRate = "32"
Case 1
BitRate = "56"
Case 2
BitRate = "80"
Case 3
BitRate = "96"
Case 4
BitRate = "128"
Case 5
BitRate = "160"
Case 6
BitRate = "192"
Case 7
BitRate = "256"
Case 8
BitRate = "320"
End Select
End Sub
Private Sub Timer1_Timer()
BG2.Left = Me.Left - Screen.TwipsPerPixelX
BG2.Top = Me.Top - Screen.TwipsPerPixelY
Timer1.Enabled = False
End Sub
'bg2 form
Private delp As DELTEPNGINF
Private Sub Form_Activate()
XFM.SetFocus
End Sub
Private Sub Form_Load()
Me.Width = 610 * Screen.TwipsPerPixelX
Me.Height = 294 * Screen.TwipsPerPixelY
DrawAlphaPNG BG2.hWnd, BG2.hDC, App.Path & "\MWO\bgx.png", 610, 294, delp, 255
Me.Left = XFM.Left - Screen.TwipsPerPixelX
Me.Top = XFM.Top - Screen.TwipsPerPixelY
End Sub
Private Sub Form_Unload(Cancel As Integer)
DeletePNG delp
End Sub
'mod
Option Explicit
'Author:XiaYu(ImperialEast---夏煜 2024-04-19)
Public SongWay As String, BitRate As Integer, Quality As String, OutName As String, OutFolder As String, InFolder As String, lFont(4) As FONTINFO, ToutStr As String
Private CmdStr As String
Sub DoSub(ByVal ID As Long, ByVal lpStr As String, ByVal lpStrPramter As String)
Select Case ID
Case 1001
ToutStr = ""
SetControlEnabled 1003, True
SongWay = GetFilePaths(XFM.hWnd, "打开WAVE文件>>>", "Music File|*.wav;*.mp3;*.ogg", Explorer窗口, App.Path, Chr(0))
SongWay = Trim(Replace(SongWay, Chr(0), ""))
With lFont(0)
.Caption = GetShtFileName(SongWay)
.ChrAngle = 0
.FontName = "宋体"
.ForeColor = vbWhite
.Left = 30
.Top = 92
.TextHeight = 12
.TextWidth = 7
.Weight = 500
End With
' SetAbstractW lFont
' UpDateBackUI XIA
InFolder = Left(SongWay, InStrRev(SongWay, "."))
'XFM.P.Cls
SetCheckBoxChecked 2001, False
If UCase(Right(SongWay, 3)) <> "WAV" Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "WAV"
If UCase(Right(SongWay, 3)) = "OGG" Then
XFM.Ogg.Checked = True
XFM.LAME.Checked = False
XFM.GetQuality
End If
Else
If XFM.Ogg.Checked = True Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "OGG"
Else
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "MP3"
End If
End If
With lFont(1)
.Caption = ""
.ChrAngle = 0
.FontName = "宋体"
.ForeColor = vbWhite
.Left = 30
.Top = 142
.TextHeight = 12
.TextWidth = 7
.Weight = 500
End With
SetAbstractW lFont
' UpDateBackUI XIA
OutFolder = ""
XFM.GetBitRate
XFM.Cls
Case 1002
If UCase(Right(SongWay, 3)) <> "WAV" Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "WAV"
Else
If XFM.Ogg.Checked = True Then
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "OGG"
Else
OutName = Mid(SongWay, InStrRev(SongWay, "\") + 1, InStrRev(SongWay, ".") - InStrRev(SongWay, "\")) & "MP3"
End If
End If
OutFolder = GetFoldPath(XFM.hWnd, "选择要存放文件的文件夹", BNormal普通)
ToutStr = OutFolder & "\" & OutName
lFont(1).Caption = GetShtFileName(ToutStr)
SetAbstractW lFont
' UpDateBackUI XIA
XFM.Cls
Case 1003
'处理数据转换
XFM.GetQuality
XFM.GetBitRate
'//MsgBox Quality & "," & BitRate
If ToutStr = "" Then Exit Sub
SetControlEnabled 1003, False
If UCase(Right(ToutStr, 3)) <> "WAV" Then
'L.A.M.E
If XFM.LAME.Checked = True Then
'2 Class type " --abr " / " -b "
CmdStr = App.Path & "\MWO\lame.exe" & Quality & " --abr " & BitRate & " " & """" & SongWay & """"
Shell CmdStr, vbHide
Do Until GetID("lame.exe") = 0
DoEvents
Loop
FileCopy SongWay & ".Mp3", ToutStr
On Error Resume Next
Kill SongWay & ".Mp3"
SetCheckBoxChecked 2001, True
End If
'OGG
If XFM.Ogg.Checked = True Then
CmdStr = App.Path & "\MWO\oggenc.exe" & Quality & " -b " & BitRate & " " & """" & SongWay & """"
Shell CmdStr, vbHide
Do Until GetID("oggenc.exe") = 0
DoEvents
Loop
If LCase(InFolder & "Ogg") <> LCase(ToutStr) Then
FileCopy InFolder & "Ogg", ToutStr
On Error Resume Next
Kill InFolder & "Ogg"
End If
SetCheckBoxChecked 2001, True
End If
Else
If UCase(Right(SongWay, 3)) = "MP3" Then
' XFM.LAME.Checked = True
' XFM.Ogg.Checked = False
'L.A.M.E
' If XFM.LAME.Checked = True Then
'2 Class type " --abr " / " -b "
' CmdStr = App.Path & "\MWO\lame.exe" & " --decode " & """" & SongWay & """"
' Shell CmdStr, vbHide
' Do Until GetID("lame.exe") = 0
' Loop
' FileCopy SongWay & ".WAV", XFM.TOUT.Text
' On Error Resume Next
' Kill SongWay & ".wav"
' MsgBox "文件已经转换完成!", vbInformation, "提示:"
' End If
Mp3ToWave SongWay, ToutStr, XFM.P
SetCheckBoxChecked 2001, True
Else
XFM.Ogg.Checked = True
XFM.LAME.Checked = False
'OGG
If XFM.Ogg.Checked = True Then
CmdStr = App.Path & "\MWO\oggdec.exe " & """" & SongWay & """"
Shell CmdStr, vbHide
Do Until GetID("oggdec.exe") = 0
DoEvents
Loop
If LCase(InFolder & "Wav") <> LCase(ToutStr) Then
FileCopy InFolder & "Wav", ToutStr
On Error Resume Next
Kill InFolder & "Wav"
End If
SetCheckBoxChecked 2001, True
End If
End If
End If
Case 1004
XFM.PopupMenu XFM.Menu
Case 2001
If GetCheckBoxChecked(2001) = True Then SetCheckBoxChecked 2001, False
Case 2002
If ToutStr <> "" Then OpenFolderAndSelectFile XFM.P.hWnd, ToutStr
Case Else
End Select
End Sub
Function GetRightWidth(ByVal FileName As String) As Long
Dim Lgth As Integer, I As Integer, Val As Integer
Lgth = Len(FileName)
For I = 1 To Lgth
If Asc(Mid(FileName, I, 1)) < 0 Then
Val = Val + 14
Else
Val = Val + 7
End If
Next
GetRightWidth = Val
End Function
Function GetShtFileName(ByVal FileName As String) As String
Dim H_Str As String, M_Str As String, E_Str As String
If GetRightWidth(FileName) > 427 Then
H_Str = Left(FileName, InStr(FileName, "\"))
M_Str = "......" & "\"
E_Str = Right(FileName, Len(FileName) - InStrRev(FileName, "\"))
GetShtFileName = H_Str & M_Str & E_Str
Else
GetShtFileName = FileName
End If
End Function
'api 声明
Option Explicit
'作者:夏煜 QQ{499932452} Email:imperialeast@126.com
Public Enum uFileX
Normal = 0
All = 1
User = 2
End Enum
Public Enum uFMsg
lBstrSize = 0
lBstrCreateTime = 1
lBstrAccessTime = 2
lBstrWriteTime = 3
lBstrVertion = 4
lBstrProductVer = 5
lBstrProgType = 6
lBstrSysType = 7
lBstrFileVersion = 8
End Enum
Public Enum KeyII
KeyShift = 1
KeyAlt = 2
KeyCtrl = 3
End Enum
Public Enum WndStyle
窗口置前ForeWnd = 0
最小化Minimize = 1
闪动Flash = 2
End Enum
Public Enum CmdShow
还原Restore = 9
最大化Max = 3
最小化Min = 6
显示窗口Show = 5
隐藏窗口Hide = 0
最大化MaxActive = 3 '// Active Form
最小化MinActive = 2 '// Active Form
显示窗口ShowNoActive = 4 '// No change Active Form
普通显示ShowNormal = 1
最小化MinNoActive = 7 '// No change Active Form
End Enum
Public Enum THD
恢复Resume = 0
挂起Suspend = 1
End Enum
Public Enum UPriority
Real实时 = &H100
High高 = &H80
High_Normal高于标准 = 32768
Nomal标准 = &H20
Low_Nomal低于标准 = 16384
Idle低 = &H40
End Enum
Public Type PROCESSINFO
lpFilename As String
lpMemory As Long
lpAddress As Long
lpProgType As String
End Type
Public Type PRECT
Top As Long
Left As Long
Bottom As Long
Right As Long
Width As Long
Height As Long
hWnd As Long
WindowCaptionHeight As Long
Size As Long
End Type
Public Enum TipMark
Errs = 3
Exc = 2
Tip = 1
End Enum
Public Enum ATTRY
Archive存档 = &H20
Compressed卷名 = &H800
Durectory目录文件夹 = &H10
Hidden隐藏 = &H2
Normal普通 = &H80
ReadOnly只读 = &H1
System系统 = &H4
Temporary别名 = &H100
End Enum
Public Enum BrowseX
BNormal普通 = &H1
BEX扩展 = &H2
BTEXTEX文本 = &H4
BComputer计算机 = &H1000
BPrinter打印机 = &H2000
BNOHIDE无隐藏 = &H8
End Enum
Public Enum OpenX
ReadOnly只读 = &H1
WritePrompt写入 = &H2
HideOnly隐藏 = &H4
NoChange未变 = &H8
ShowHelp帮助 = &H10
EnableHook钩子 = &H20
EnableTemplate模板 = &H40
EnableTemplateHandle模板句柄 = &H80
NoValidate无证 = &H100
AllowMultiSelect多行选择 = &H200
ExDifferent扩展 = &H400
PathExit路径退出 = &H800
FileExit文件退出 = &H1000
CreateTemprompt创建写入 = &H2000
ShareAware共享提示 = &H4000
NoReadOnlyRtn无只读返回 = &H8000
NoTestCreate无文件创建检测 = &H10000
NoNetworkBtn无工作按钮 = &H20000
NoLongNames无长名称 = &H40000 ' force no long names for 4.x modules
Explorer窗口 = &H80000 ' new look commdlg
NoDereferenceLinks = &H100000
LongNames长名称 = &H200000 ' force long names for 3.x modules
End Enum
Public Type DELTEPNGINF
Size As Long
hDC As Long
OldObj As Long
NowObj As Long
Token As Long
Height As Long
Width As Long
End Type
Private Type FONTINFO
ForeColor As Long
Left As Long
Top As Long
Weight As Long
Caption As String
ChrAngle As Long
TextWidth As Long
TextHeight As Long
FontName As String
LineDistance As Long
End Type
Declare Function GetFileVertionExA Lib "SysCtrl.dll" (ByVal FileName As String, ByVal uType As uFileX, Optional ByVal ChoseFileMsg As uFMsg, Optional ByVal UseErr As Boolean = True, Optional UseIntUnit As Boolean = False) As String
Declare Function SpaceFree Lib "SysCtrl.dll" () As Long
Declare Function SetPopMenuII Lib "SysCtrl.dll" (ByVal hWnd As Long, Optional ByVal ID As Long, Optional uSys As Boolean) As Boolean
Declare Function AnyMove Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function SetHotKey Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal Key1 As String, Optional ByVal Key2 As KeyII) As Long
Declare Function GetGratingPos Lib "SysCtrl.dll" (ByVal hWnd As Long, Line As Long, Row As Long) As Long '获取光栅位置
Declare Function GetTextByhWnd Lib "SysCtrl.dll" (ByVal hWnd As Long, Buff As String, Optional ByVal Lines As Long) As Long
Declare Function GetTxtCount Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function SetWindow Lib "SysCtrl.dll" (ByVal hWnd As Long, Optional Style As WndStyle) As Long
Declare Function SetWindowTopFace Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal IsToTop As Boolean) As Long
Declare Function SetFrmAlpha Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal uAlpha As Long) As Long
Declare Function SetAlphaExA Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal uAlpha As Long, Optional ByVal AlphaColor As Long = -1) As Long
Declare Sub MD64 Lib "SysCtrl.dll" (ByVal ToAddCode As String, ByVal IsDecode As Boolean, ToGetCode As String)
Declare Function MDX64 Lib "SysCtrl.dll" (ByVal ToAddCode As String, ByVal IsDecode As Boolean) As String
Declare Function SetWindowCursor Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal CursorPos As String) As Long
'Declare Function SetRoundRect Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal PixW As Long, ByVal PixH As Long, ByVal CircleX As Long, ByVal CircleY As Long, Optional ByVal fX As Long, Optional ByVal fY As Long) As Long
Declare Function SetOwnerWindow Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal MoveCaption As Boolean) As Long
Declare Function ShowFrm Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal lStyle As CmdShow) As Long
Declare Function LoadText Lib "SysCtrl.dll" (ByVal lpStr As String, Optional ByVal GetLine As Long) As String
Declare Function GetProcess Lib "SysCtrl.dll" (Optional ByVal lName As String, Optional ByVal PID As Long) As String
Declare Function GetMyID Lib "SysCtrl.dll" (Optional ByVal hWnd As Long) As Long
Declare Function GetID Lib "SysCtrl.dll" (ByVal lName As String) As Long
Declare Function GetNameID Lib "SysCtrl.dll" (ByVal uFindName As String) As String
Declare Function GetThreads Lib "SysCtrl.dll" (ByVal PID As Long) As String '/Test
Declare Function GetThread Lib "SysCtrl.dll" (ByVal PID As Long) As String
Declare Function SetThreads Lib "SysCtrl.dll" (ByVal PID As Long, Optional Style As THD) As Long
Declare Function SetThread Lib "SysCtrl.dll" (ByVal TID As Long, Optional Style As THD) As Long
Declare Function CloseProcessThread Lib "SysCtrl.dll" (ByVal PTID As Long, ByVal UsedProcess As Boolean) As Long
Declare Function GetModules Lib "SysCtrl.dll" (Optional ByVal PID As Long) As String
Declare Function GetModule Lib "SysCtrl.dll" (Optional ByVal PID As Long) As String
Declare Function SetPriority Lib "SysCtrl.dll" (ByVal ProcessID As Long, Optional ByVal UGet As UPriority) As Long
Declare Function GetPriority Lib "SysCtrl.dll" (ByVal ProcessID As Long, Optional ByRef LngPriority As Long) As String
Declare Function GetProcessMemory Lib "SysCtrl.dll" (ByVal ProcessID As Long, ByVal Flags As Boolean) As String
Declare Function GetProcessWay Lib "SysCtrl.dll" (ByVal ProcessID As Long) As String
Declare Function GetProcessInfo Lib "SysCtrl.dll" (ByVal ProcessID As Long, Info As PROCESSINFO) As Long
Declare Function GetEntireDriveInfo Lib "SysCtrl.dll" (GainDriveMsg As String, Optional ByVal SendStringTohWnd As Long) As Long
Declare Function CallAnyKeyEvent Lib "SysCtrl.dll" (ByVal vbKeyCode As String, ByVal SendKey As Boolean, Optional Parameter) As Long
Declare Function AnyKeyToKeyCode Lib "SysCtrl.dll" (ByVal KeyChr As String, ByVal InvalidChr As String, CodeBuff As String) As Long
Declare Function CallAnyMouseEvent Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal PosX As Long, ByVal PosY As Long, ByVal Flags As Long) As Long
Declare Function GetWindowhWndByStr Lib "SysCtrl.dll" (ByVal lpWindowCaption As String, ByVal SysWindow As Boolean, GainhWnd As Long, Optional ByVal lpChildSysWindow As String) As Long
Declare Function GetWindowPosByStr Lib "SysCtrl.dll" (ByVal lpWindowCaption As String, lpRect As PRECT, Optional ByVal hWnd As Long, Optional SysWindow As Boolean, Optional ByVal lpChildSysWindow As String) As Long
Declare Function GetUserNameExA Lib "SysCtrl.dll" () As String
Declare Function GetServiceState Lib "SysCtrl.dll" (ByVal ServiceName As String, ByVal ComputerName As String) As String
Declare Function SetServiceState Lib "SysCtrl.dll" (ByVal ServiceName As String, ByVal ComputerName As String, ByVal Flags As Long) As Long
Declare Function OpenFolderAndSelectFile Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal lpFilename As String) As Long
Declare Function GetSystemDPI Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function GetSystemTypeA Lib "SysCtrl.dll" () As String
Declare Function GetNowXY Lib "SysCtrl.dll" (ByVal XY As Long, ByVal IsX As Boolean, Optional ByVal IsPositive As Boolean = True) As Long
Declare Function AddTheam Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function DelTheam Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function CreateToolTipA Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal CtrlhWnd As Long, ByVal uTipText As String, Optional ByVal MaxWidth As Long, Optional ByVal Ball As Boolean = False, Optional ByVal uTitle As String, Optional ByVal ForeColor As Long, Optional ByVal BackColor As Long, Optional ByVal picMark As TipMark) As Long
Declare Function RemoveTool Lib "SysCtrl.dll" (ByVal hWnd As Long) As Long
Declare Function SetTipText Lib "SysCtrl.dll" (ByVal CtlhWnd As Long, ByVal uTipText As String, Optional ByVal uTitle As String) As Long
Declare Sub SetTipColor Lib "SysCtrl.dll" (ByVal ForeColor As Long, ByVal BackColor As Long)
Declare Sub SetTipStyle Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal TipBall As Boolean, ByVal TipAlways As Boolean, Optional ByVal Ico As TipMark, Optional ByVal uTitle As String)
Declare Sub DelToolTip Lib "SysCtrl.dll" ()
Declare Function hWndGet Lib "SysCtrl.dll" () As Long
Declare Sub SetDelay Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal NewValue As Long)
Declare Sub UpdateText Lib "SysCtrl.dll" (ByVal uhWnd As Long, ByVal uText As String)
Declare Function SetProtectThread Lib "SysCtrl.dll" (ByVal ProcessID As Long, ByVal Protect As Boolean) As Long
Declare Function ShowFileAttrib Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal FileName As String) As Long
Declare Function CreateFolder Lib "SysCtrl.dll" (ByVal lpStr As String) As Long
Declare Function DeleteFF Lib "SysCtrl.dll" (ByVal lpStr As String, ByVal IsFile As Boolean) As Long
Declare Function SetFolderIcon Lib "SysCtrl.dll" (ByVal lpFolderWay As String, ByVal IconWay As String) As Long
Declare Function SetFolderBackGround Lib "SysCtrl.dll" (ByVal lpFolderWay As String, ByVal PictureWay As String) As Long
Declare Function SetFolderTypeCode Lib "SysCtrl.dll" (ByVal lpFolderWay As String, ByVal Flags As Long) As Long
Declare Function CreateFolderA Lib "SysCtrl.dll" (ByVal lpStr As String) As Long
Declare Function GetFileAttr Lib "SysCtrl.dll" (ByVal uFile As String) As String
Declare Function SetFileAttr Lib "SysCtrl.dll" (ByVal lStr As String, ByVal Attr As ATTRY) As Long
Declare Function GetFoldPath Lib "SysCtrl.dll" (ByVal hWnd As Long, Optional ByVal BrowText As String, Optional ByVal Style As BrowseX) As String
Declare Function GetFilePaths Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal DialogTitle As String, ByVal uFilter As String, ByVal Style As OpenX, Optional ByVal StartPos As String, Optional Separator As String = ",") As String
Declare Function DrawPNG Lib "SysCtrl.dll" (ByVal hDC As Long, ByVal PngWay As String, ByVal PosX As Long, ByVal PosY As Long) As Long
Declare Function DrawAlphaPNG Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal hDC As Long, ByVal PngWay As String, ByVal ScaleWidth As Long, ByVal ScaleHeight As Long, DelPngINF As DELTEPNGINF, Optional ByVal Alpha As Long = 255) As Long
Declare Function DeletePNG Lib "SysCtrl.dll" (DelPng As DELTEPNGINF) As Long
Declare Function DrawPNGRect Lib "SysCtrl.dll" (ByVal hDC As Long, ByVal PngWay As String, ByVal X As Long, ByVal Y As Long, ByVal DrawX As Long, ByVal DrawY As Long, Optional ByVal DrawWidth As Long, Optional ByVal DrawHeight As Long) As Long
Declare Function DrawAnyAlphaPNG Lib "SysCtrl.dll" (ByVal hWnd As Long, ByVal hDC As Long, ByVal PngWay As String, ByVal WinWidth As Long, ByVal WinHeight As Long, DelPngINF As DELTEPNGINF, Optional ByVal X As Long, Optional ByVal Y As Long, Optional ByVal DrawXWidth As Long, Optional ByVal DrawXHeight As Long, Optional ByVal DrawX As Long, Optional ByVal DrawY As Long, Optional ByVal DrawWidth As Long, Optional ByVal DrawHeight As Long, Optional ByVal Alpha As Long = 255) As Long
Declare Function DrawAnyChr Lib "SysCtrl.dll" (ByVal hDC As Long, ByVal AnyChr As String, ByVal PosX As Long, PosY As Long, Optional ByVal ChrAngle As Long = 0, Optional ByVal ForeColor As Long = vbBlack, Optional ByVal BackColor As Long = vbWhite, Optional ByVal FontSize As Long = 12, Optional ByVal IsAlpha As Boolean = True) As Long
Declare Function DrawAnyText Lib "SysCtrl.dll" (ByVal hDC As Long, lpFont As FONTINFO) As Long
Declare Function SetFont Lib "SysCtrl.dll" (ByVal hDC As Long, ByVal ChrWidth As Long, ByVal ChrHeight As Long, Optional ByVal ForeColor As Long = vbBlack, Optional ChrAngle As Long = 0, Optional Weight As Long = 400, Optional ByVal FontName As String = "Times New Roman") As Boolean
’api声明
Option Explicit
'作者:夏煜 QQ{499932452} Email:imperialeast@126.com
Type WAVE_ERR
L_FirstErrPos As Long
L_LastErrPos() As Long
R_FirstErrPos As Long
R_LastErrPos() As Long
End Type
Enum ToAnyBit
To8 = 8
To16 = 16
To24 = 24
To32 = 32
End Enum
Type LSTDATAINFO
ID As String * 4
Size As Long
End Type
Type WAVEDATAINFO
NumChannels As Integer '声道
SapleRate As Long '采样频率
ByteRate As Long
BitsPerSaple As Integer '采样位数
BlockAlign As Integer '采样字节
DataPos As Long
DataSize As Long
End Type
Type RMSINFO
L_AverRMS As Single
R_AverRMS As Single
L_RMS As Single
R_RMS As Single
MinWaveVal As Long
Min2WaveVal As Long
MaxWaveVal As Long
Max2WaveVal As Long
End Type
Type RMSAVER
L_AverRMS As Single 'RMS 均衡值
R_AverRMS As Single
End Type
Enum NChannel
[Left Channel]
[Right Channel]
[Double Channel]
End Enum
Declare Function GetHeadInfoMsg Lib "WavJoin.dll" (ByVal lpWay As String, ListDat() As Byte, ByRef Dat As String, Optional ByRef Dlist As String) As Long
Declare Function GetByteRate Lib "WavJoin.dll" (ByVal lpWav As String) As Long
Declare Function GetBitPerSaple Lib "WavJoin.dll" (ByVal lpWav As String) As Long
Declare Function GetChannels Lib "WavJoin.dll" (ByVal lpWav As String) As Long
Declare Function GetBlockAlign Lib "WavJoin.dll" (ByVal lpWav As String) As Long
Declare Function GetWavDataSize Lib "WavJoin.dll" (ByVal lpWav As String) As Long
Declare Function GetWantData Lib "WavJoin.dll" (Dat() As Byte, ByRef GetDat() As Byte, Optional Start As Integer = 0, Optional Length As Integer = 0) As Long
Declare Function WavAdd Lib "WavJoin.dll" (ByVal FileWay As String, ByVal File2Way As String, ByVal OutPutWay As String) As Long
Declare Function GetListINFO Lib "WavJoin.dll" (Dat() As Byte) As String
Declare Function StringToBytes Lib "WavJoin.dll" (ByVal lpStr As String, GainDat() As Byte) As Boolean
Declare Function WavAddEX Lib "WavJoin.dll" (ByVal FileWay As String, ByVal File2Way As String, ByVal OutPutWay As String) As Long
Declare Function CreateWaveForm Lib "WavJoin.dll" (ByVal lpWav As String, ByVal pHDC1 As Object, ByVal pHDC2 As Object, ByVal DrawWaveWidth As Long, ByVal DrawWaveHeight As Long, Optional ByVal AmplitudePram As Long = 35) As Long
Declare Function GetFileErrSign Lib "WavJoin.dll" () As Long
Declare Function CreateWaveFormEx Lib "WavJoin.dll" (ByVal lpWav As String, ByVal pHDC1 As Object, ByVal pHDC2 As Object, Optional ByVal AmplitudePram As Long = 10000, Optional ByVal MaxDistance As Long = 100000) As Long
Declare Function CreateWaveFormExs Lib "WavJoin.dll" (ByVal lpWav As Variant, ByVal pHDC1 As Object, ByVal pHDC2 As Object, Optional ByVal AmplitudePram As Long = 10000, Optional ByVal MaxDistance As Long = 50000, Optional ByVal Try As Boolean = False, Optional ByVal Decibel As Integer = 0) As Long
Declare Function CreateMsWaveForm Lib "WavJoin.dll" (ByVal lpWav As String, ByVal pHDC1 As Object, ByVal pHDC2 As Object, ByVal StartDataPos As Long, ByVal EndDataPos As Long, Optional ByVal AmplitudePram As Long = 10000, Optional ByVal MaxDistance As Long = 20000, Optional ByVal Try As Boolean = False) As Long
Declare Function CreateBuffMsWaveForm Lib "WavJoin.dll" (ByVal lpWav As String, ByVal pHDC1 As Object, ByVal pHDC2 As Object, ByVal StartDataPos As Long, ByVal EndDataPos As Long, Optional ByVal AmplitudePram As Long = 10000, Optional ByVal MaxDistance As Long = 10000) As Long
Declare Function CreateWaveFormDotExs Lib "WavJoin.dll" (ByVal lpWav As Variant, ByVal pHDC1 As Object, ByVal pHDC2 As Object, Optional ByVal AmplitudePram As Long = 10000, Optional ByVal MaxDistance As Long = 50000, Optional ByVal Try As Boolean = False, Optional ByVal Decibel As Integer = 0, Optional ByVal StartPos As Long = 0, Optional ByVal EndPos As Long = 0) As Long
Declare Function GetWaveDataErr Lib "WavJoin.dll" (ByVal lpWav As String, WERR As WAVE_ERR) As Boolean
Declare Function GetWaveDataFirstErr Lib "WavJoin.dll" (ByVal lpWav As String, Optional ByVal IsExtend As Boolean = False) As Long
Declare Function WaveDataDBChanged Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOutPut As String, Optional ByVal Decibel As Integer = 0) As Boolean
Declare Function WaveBuffDbBitChanged Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOutWay As String, ByVal ToBit As Long, Optional ByVal Decibel As Integer = 0) As Boolean
Declare Function WaveDbBitChanged Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOutWay As String, ByVal ToBit As ToAnyBit, Optional ByVal Decibel As Integer = 0) As Boolean
Declare Function CreateListWaveFile Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOut As String, ListDI() As LSTDATAINFO, ListStr() As String) As Boolean
Declare Function GetWavDataInfo Lib "WavJoin.dll" (ByVal lpWav As String, WDI As WAVEDATAINFO) As Boolean
Declare Function GetWaveRMS Lib "WavJoin.dll" (ByVal lpWav As String, tRMS As RMSINFO, Optional ByVal StartSign As Long = 0, Optional ByVal EndSign As Long = 0, Optional ByVal XDot As Long = 10000) As Boolean
Declare Function GetWaveAverRMS Lib "WavJoin.dll" (ByVal lpWav As String, tRMS As RMSAVER, Optional ByVal StartSign As Long = 0, Optional ByVal EndSign As Long = 0, Optional ByVal XDot As Long = 10000) As Boolean
Declare Function GetWaveBuffAverRMS Lib "WavJoin.dll" (ByVal lpWav As String, tRMS As RMSAVER, ByVal StartSign As Long, ByVal EndSign As Long, Optional ByVal XDot As Long = 10000) As Boolean
Declare Function GetWavMusicLength Lib "WavJoin.dll" (ByVal lpWav As String) As Single
Declare Function WaveSplit Lib "WavJoin.dll" (ByVal lpWav As String, ByVal DatStartPos As Long, ByVal DatEndPos As Long, ByVal lpOutPutWay As String) As Boolean
Declare Function WaveSplitEx Lib "WavJoin.dll" (ByVal lpWav As String, ByVal DatStartPos As Long, ByVal DatEndPos As Long, ByVal lpOutPutWay As String) As Boolean
Declare Function WriteLRWaveFile Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOutWay As String, Optional ByVal IsL As Boolean = True) As Boolean
Declare Function GetOneChannelData Lib "WavJoin.dll" (ByVal lpWav As String, ByVal StartPos As Long, ByVal EndPos As Long, ChooseChannel As NChannel, ByRef AudioData() As Integer) As Boolean
Declare Function WriteWaveTwoChToOneChannel Lib "WavJoin.dll" (ByVal lpWav As String, ByVal lpOutWay As String, ChooseChannel As NChannel) As Boolean
Declare Function Mp3ToWave Lib "WavJoin.dll" (ByVal Mp3File As Variant, ByVal WaveFileOut As String, ByVal Ctrl As Object) As Boolean 'Ctrl 一般位PictureBox控件
|
|