📄 cdrecord.vb
字号:
Me.lstRecord.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.lstRecord.Size = New System.Drawing.Size(196, 220)
Me.lstRecord.TabIndex = 4
'
'_Label1_3
'
Me._Label1_3.BackColor = System.Drawing.SystemColors.Control
Me._Label1_3.Cursor = System.Windows.Forms.Cursors.Default
Me._Label1_3.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label1.SetIndex(Me._Label1_3, CType(3, Short))
Me._Label1_3.Location = New System.Drawing.Point(280, 72)
Me._Label1_3.Name = "_Label1_3"
Me._Label1_3.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._Label1_3.Size = New System.Drawing.Size(135, 15)
Me._Label1_3.TabIndex = 3
Me._Label1_3.Text = "转录音轨:"
'
'cbxFormat
'
Me.cbxFormat.BackColor = System.Drawing.SystemColors.Window
Me.cbxFormat.Cursor = System.Windows.Forms.Cursors.Default
Me.cbxFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cbxFormat.DropDownWidth = 344
Me.cbxFormat.ForeColor = System.Drawing.SystemColors.WindowText
Me.cbxFormat.Location = New System.Drawing.Point(80, 32)
Me.cbxFormat.Name = "cbxFormat"
Me.cbxFormat.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cbxFormat.Size = New System.Drawing.Size(344, 20)
Me.cbxFormat.TabIndex = 17
'
'_Label1_5
'
Me._Label1_5.BackColor = System.Drawing.SystemColors.Control
Me._Label1_5.Cursor = System.Windows.Forms.Cursors.Default
Me._Label1_5.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label1.SetIndex(Me._Label1_5, CType(5, Short))
Me._Label1_5.Location = New System.Drawing.Point(8, 32)
Me._Label1_5.Name = "_Label1_5"
Me._Label1_5.RightToLeft = System.Windows.Forms.RightToLeft.No
Me._Label1_5.Size = New System.Drawing.Size(72, 15)
Me._Label1_5.TabIndex = 16
Me._Label1_5.Text = "音频格式:"
Me._Label1_5.TextAlign = System.Drawing.ContentAlignment.TopRight
'
'cmdCancel
'
Me.cmdCancel.BackColor = System.Drawing.SystemColors.Control
Me.cmdCancel.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.cmdCancel.Enabled = False
Me.cmdCancel.Location = New System.Drawing.Point(200, 287)
Me.cmdCancel.Name = "cmdCancel"
Me.cmdCancel.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdCancel.Size = New System.Drawing.Size(56, 24)
Me.cmdCancel.TabIndex = 7
Me.cmdCancel.Text = "取消"
'
'tmrRecord
'
Me.tmrRecord.Interval = 10
'
'cmdRefresh
'
Me.cmdRefresh.BackColor = System.Drawing.SystemColors.Control
Me.cmdRefresh.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdRefresh.Location = New System.Drawing.Point(5, 324)
Me.cmdRefresh.Name = "cmdRefresh"
Me.cmdRefresh.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdRefresh.Size = New System.Drawing.Size(179, 24)
Me.cmdRefresh.TabIndex = 8
Me.cmdRefresh.Text = "更新CD信息"
'
'cmdTo
'
Me.cmdTo.BackColor = System.Drawing.SystemColors.Control
Me.cmdTo.Cursor = System.Windows.Forms.Cursors.Default
Me.cmdTo.Location = New System.Drawing.Point(200, 120)
Me.cmdTo.Name = "cmdTo"
Me.cmdTo.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.cmdTo.Size = New System.Drawing.Size(56, 25)
Me.cmdTo.TabIndex = 2
Me.cmdTo.Text = ">>"
'
'lblNumTracks
'
Me.lblNumTracks.BackColor = System.Drawing.SystemColors.Control
Me.lblNumTracks.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.lblNumTracks.Cursor = System.Windows.Forms.Cursors.Default
Me.lblNumTracks.ForeColor = System.Drawing.SystemColors.ControlText
Me.lblNumTracks.Location = New System.Drawing.Point(317, 2)
Me.lblNumTracks.Name = "lblNumTracks"
Me.lblNumTracks.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.lblNumTracks.Size = New System.Drawing.Size(104, 20)
Me.lblNumTracks.TabIndex = 14
Me.lblNumTracks.TextAlign = System.Drawing.ContentAlignment.TopCenter
'
'lblStatus
'
Me.lblStatus.BackColor = System.Drawing.SystemColors.Control
Me.lblStatus.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.lblStatus.Cursor = System.Windows.Forms.Cursors.Default
Me.lblStatus.ForeColor = System.Drawing.Color.Red
Me.lblStatus.Location = New System.Drawing.Point(280, 328)
Me.lblStatus.Name = "lblStatus"
Me.lblStatus.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.lblStatus.Size = New System.Drawing.Size(196, 20)
Me.lblStatus.TabIndex = 15
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopCenter
Me.lblStatus.Visible = False
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.CancelButton = Me.cmdCancel
Me.ClientSize = New System.Drawing.Size(488, 391)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.cbxFormat, Me.cmdCancel, Me.cmdFrom, Me.cmdStart, Me.txtFile, Me.lstRecord, Me.cmdTo, Me.lstTracks, Me.cmdRefresh, Me._Label1_5, Me.lblStatus, Me._Label1_4, Me._Label1_3, Me._Label1_0, Me.lblNumTracks, Me._Label1_2, Me.lblCDID, Me._Label1_1})
Me.Location = New System.Drawing.Point(125, 103)
Me.Name = "Form1"
Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
Me.Text = "CD Recorder"
Me.ResumeLayout(False)
End Sub
#End Region
#Region "升级支持"
Private Shared m_vb6FormDefInstance As Form1
Private Shared m_InitializingDefInstance As Boolean
Public Shared Property DefInstance() As Form1
Get
If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then
m_InitializingDefInstance = True
m_vb6FormDefInstance = New Form1()
m_InitializingDefInstance = False
End If
DefInstance = m_vb6FormDefInstance
End Get
Set
m_vb6FormDefInstance = Value
End Set
End Property
#End Region
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
Dim lStart, lCurTrack, lFinish As Integer
Dim lTrackLengths() As Integer
Dim aFile As String
Dim bGroups As Boolean
Private Function CString(ByRef aStr As String) As String
CString = ""
Dim k As Integer
k = InStr(aStr, Chr(0))
If k Then
CString = VB.Left(aStr, k - 1)
End If
End Function
Private Sub StartTrackRecording()
Dim lSamples, lRet, lBits, lChannels As Integer
lCurTrack = VB6.GetItemData(lstRecord, lstRecord.SelectedIndex)
lblStatus.Text = "Track " & lCurTrack
aFile = txtFile.Text & "-" & lCurTrack & ".wav"
lStart = 0
lFinish = 0
For lRet = 1 To Val(lblNumTracks.Text)
If lRet = lCurTrack Then Exit For
lStart = lStart + lTrackLengths(lRet)
Next
lFinish = lStart + lTrackLengths(lCurTrack)
If bGroups Then
Do
If lstRecord.Items.Count - 1 = lstRecord.SelectedIndex Then Exit Do
lstRecord.SelectedIndex = lstRecord.SelectedIndex + 1
If VB6.GetItemString(lstRecord, lstRecord.SelectedIndex) = "--- Group ---" Then Exit Do
lCurTrack = VB6.GetItemData(lstRecord, lstRecord.SelectedIndex)
lFinish = lFinish + lTrackLengths(lCurTrack)
Loop
End If
Select Case VB6.GetItemString(cbxFormat, cbxFormat.SelectedIndex)
Case "8.000kHz, 8bit Mono, 7k/sec" : lSamples = 8000 : lBits = 8 : lChannels = 1
Case "8.000kHz, 8bit Stereo, 15k/sec" : lSamples = 8000 : lBits = 8 : lChannels = 2
Case "8.000kHz, 16bit Mono, 15k/sec" : lSamples = 8000 : lBits = 16 : lChannels = 1
Case "8.000kHz, 16bit Stereo, 31k/sec" : lSamples = 8000 : lBits = 16 : lChannels = 2
Case "11.025kHz, 8bit Mono, 10k/sec" : lSamples = 11025 : lBits = 8 : lChannels = 1
Case "11.025kHz, 8bit Stereo, 21k/sec" : lSamples = 11025 : lBits = 8 : lChannels = 2
Case "11.025kHz, 16bit Mono, 21k/sec" : lSamples = 11025 : lBits = 16 : lChannels = 1
Case "11.025kHz, 16bit Stereo, 43k/sec" : lSamples = 11025 : lBits = 16 : lChannels = 2
Case "22.050Hz, 8bit Mono, 21k/sec" : lSamples = 22050 : lBits = 8 : lChannels = 1
Case "22.050Hz, 8bit Stereo, 43k/sec" : lSamples = 22050 : lBits = 8 : lChannels = 2
Case "22.050Hz, 16bit Mono, 43k/sec" : lSamples = 22050 : lBits = 16 : lChannels = 1
Case "22.050Hz, 16bit Stereo, 86k/sec" : lSamples = 22050 : lBits = 16 : lChannels = 2
Case "44.100Hz, 8bit Mono, 43k/sec" : lSamples = 44100 : lBits = 8 : lChannels = 1
Case "44.100Hz, 8bit Stereo, 86k/sec" : lSamples = 44100 : lBits = 8 : lChannels = 2
Case "44.100Hz, 16bit Mono, 86k/sec" : lSamples = 44100 : lBits = 16 : lChannels = 1
Case "44.100Hz, 16bit Stereo, 172k/sec" : lSamples = 44100 : lBits = 16 : lChannels = 2
End Select
If mciSendString("open new type waveaudio alias capture", Nothing, 0, 0) Then MsgBox("Error opening waveaudio", MsgBoxStyle.Critical) : cmdCancel_Click(cmdCancel, New System.EventArgs())
If lFinish Then
If mciSendString("set capture samplespersec " & lSamples, Nothing, 0, 0) Then MsgBox("Error setting capture samplespersec", MsgBoxStyle.Critical) : mciSendString("close capture", Nothing, 0, 0) : cmdCancel_Click(cmdCancel, New System.EventArgs())
End If
If lFinish Then
If mciSendString("set capture channels " & lChannels, Nothing, 0, 0) Then MsgBox("Error setting capture channels", MsgBoxStyle.Critical) : mciSendString("close capture", Nothing, 0, 0) : cmdCancel_Click(cmdCancel, New System.EventArgs())
End If
If lFinish Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -