Option Explicit Private g_bCapturing As Boolean Private m_iCameraID(4) As Long'================== '连接设备 '================== Private Sub Form_Load() Dim iCardID As Long
'######################################### '在这里,仅仅演示了Preview模式的显示 '如果要Overlay显示,将Connect的参数改为True '######################################### iCardID = sdk2000.Connect(False) If iCardID < 0 Then Caption = "未连接" mnuOperate.Enabled = False MsgBox "无设备可连接!" End If
m_iCameraID(0) = 0 m_iCameraID(1) = 1 m_iCameraID(2) = 2 m_iCameraID(3) = 3 End SubPrivate Sub Form_Resize() sdk2000.Width = Me.ScaleWidth sdk2000.Height = Me.ScaleHeight End Sub'================== '断开设备 '================== Private Sub Form_Unload(Cancel As Integer) sdk2000.Disconnect End Sub'================== '4Video(Plus)卡特性 '================== Private Sub mnu4VideoPlus_Click() Load dlg4VideoPlus dlg4VideoPlus.SetCameraID m_iCameraID(0), m_iCameraID(1), m_iCameraID(2), m_iCameraID(3) dlg4VideoPlus.Initialize sdk2000 dlg4VideoPlus.Show vbModal Unload dlg4VideoPlus End Sub'================== '是否捕捉音频 '================== Private Sub mnuCaptureAudio_Click() sdk2000.CaptureAudio = Not mnuCaptureAudio.Checked End Sub'================== '选择视频压缩算法 '================== Private Sub mnuChooseCompressor_Click() Load dlgChooseCompressor dlgChooseCompressor.Initialize sdk2000 dlgChooseCompressor.Show vbModal Unload dlgChooseCompressor End Sub'================== '设置视频参数 '================== Private Sub mnuConfig_Click() Load dlgConfig dlgConfig.Initialize sdk2000 dlgConfig.Show vbModal Unload dlgConfig mnuNormalSize_Click End SubPrivate Sub mnuDlgCaptureFilter_Click() sdk2000.DlgVideoProperty End SubPrivate Sub mnuDlgCapturePin_Click() sdk2000.DlgCaptureFormat End SubPrivate Sub mnuDlgCrossbar_Click() sdk2000.DlgVideoSource End SubPrivate Sub mnuDlgPreviewPin_Click() sdk2000.DlgPreviewFormat mnuNormalSize_Click End Sub'================== '图像存入粘贴板 '================== Private Sub mnuEditCopy_Click() Dim ok As Boolean ok = sdk2000.EditCopy If ok Then MsgBox "图像已存入粘贴板" Else MsgBox "保存失败!" End If End SubPrivate Sub mnuFileExit_Click() Unload Me End Sub'================== '新建 '================== Private Sub mnuFileNew_Click() Dim frmD As frmDocument Set frmD = New frmDocument frmD.Show End Sub'================== '设置Logo '================== Private Sub mnuLogo_Click() Load dlgLogo dlgLogo.Initialize sdk2000 dlgLogo.Show vbModal Unload dlgLogo End Sub'================== '标准尺寸 '================== Private Sub mnuNormalSize_Click() Dim normalWidth, normalHeight As Long Dim wt, ht, wp, hp As Long Dim aw, ah As Long Dim iCardID As Long
If Me.WindowState = vbMaximized Then Me.WindowState = vbNormal End If
Me.ScaleMode = vbPixels wp = Me.ScaleWidth hp = Me.ScaleHeight
Me.Width = aw + normalWidth * wt / wp Me.Height = ah + normalHeight * ht / hp '======================================== '并非再次连接,仅仅是得到已连接的设备的卡号 '======================================== iCardID = sdk2000.Connect(False) Caption = "第" & CStr(iCardID) & "路: " & CStr(normalWidth) & " x " & CStr(normalHeight) End SubPrivate Sub mnuOperate_Click() mnuShowDlg.Enabled = Not g_bCapturing mnuStreamState.Enabled = Not g_bCapturing mnuStartCapture.Enabled = Not g_bCapturing mnuStopCapture.Enabled = g_bCapturing mnuCaptureAudio.Checked = sdk2000.CaptureAudio End SubPrivate Sub mnuPause_Click() sdk2000.Pause End SubPrivate Sub mnuRun_Click() sdk2000.Run End Sub'================= '图像存盘:BMP '================= Private Sub mnuSaveBMP_Click() Dim ok As Boolean ok = sdk2000.SaveImageToBmp("C:\Capture.bmp") If ok Then MsgBox "图像存为 C:\Capture.bmp" Else MsgBox "保存失败!" End If End Sub'================= '图像存盘:JPG '================= Private Sub mnuSaveJPG_Click() Dim ok As Boolean ok = sdk2000.SaveImageToJpg("C:\Capture.jpg", 65) If ok Then MsgBox "图像存为 C:\Capture.jpg" Else MsgBox "保存失败!" End If End Sub'================= '开始录像 '================= Private Sub mnuStartCapture_Click() Dim ok As Boolean
If g_bCapturing = False Then MsgBox "按“确定”开始录像到文件:C:\Capture.avi" ok = sdk2000.StartCapture("C:\capture.avi") If ok Then g_bCapturing = True Else MsgBox "录像失败! 请查看文件是否正在被别的程序使用" End If End If End SubPrivate Sub mnuStop_Click() sdk2000.Stop End Sub'================= '停止录像 '================= Private Sub mnuStopCapture_Click() If g_bCapturing Then g_bCapturing = False sdk2000.StopCapture End If End Sub
http://free.efile.com.cn/huangtao/ScreenEnglishShot.jpg
http://free.efile.com.cn/huangtao/ScreenShot.jpgsource download url:
http://free.efile.com.cn/huangtao/SmartmailSource.rar
Private g_bCapturing As Boolean
Private m_iCameraID(4) As Long'==================
'连接设备
'==================
Private Sub Form_Load()
Dim iCardID As Long
'#########################################
'在这里,仅仅演示了Preview模式的显示
'如果要Overlay显示,将Connect的参数改为True
'#########################################
iCardID = sdk2000.Connect(False)
If iCardID < 0 Then
Caption = "未连接"
mnuOperate.Enabled = False
MsgBox "无设备可连接!"
End If
g_bCapturing = False
sdk2000.Left = 0
sdk2000.Top = 0
mnuNormalSize_Click
m_iCameraID(0) = 0
m_iCameraID(1) = 1
m_iCameraID(2) = 2
m_iCameraID(3) = 3
End SubPrivate Sub Form_Resize()
sdk2000.Width = Me.ScaleWidth
sdk2000.Height = Me.ScaleHeight
End Sub'==================
'断开设备
'==================
Private Sub Form_Unload(Cancel As Integer)
sdk2000.Disconnect
End Sub'==================
'4Video(Plus)卡特性
'==================
Private Sub mnu4VideoPlus_Click()
Load dlg4VideoPlus
dlg4VideoPlus.SetCameraID m_iCameraID(0), m_iCameraID(1), m_iCameraID(2), m_iCameraID(3)
dlg4VideoPlus.Initialize sdk2000
dlg4VideoPlus.Show vbModal
Unload dlg4VideoPlus
End Sub'==================
'是否捕捉音频
'==================
Private Sub mnuCaptureAudio_Click()
sdk2000.CaptureAudio = Not mnuCaptureAudio.Checked
End Sub'==================
'选择视频压缩算法
'==================
Private Sub mnuChooseCompressor_Click()
Load dlgChooseCompressor
dlgChooseCompressor.Initialize sdk2000
dlgChooseCompressor.Show vbModal
Unload dlgChooseCompressor
End Sub'==================
'设置视频参数
'==================
Private Sub mnuConfig_Click()
Load dlgConfig
dlgConfig.Initialize sdk2000
dlgConfig.Show vbModal
Unload dlgConfig
mnuNormalSize_Click
End SubPrivate Sub mnuDlgCaptureFilter_Click()
sdk2000.DlgVideoProperty
End SubPrivate Sub mnuDlgCapturePin_Click()
sdk2000.DlgCaptureFormat
End SubPrivate Sub mnuDlgCrossbar_Click()
sdk2000.DlgVideoSource
End SubPrivate Sub mnuDlgPreviewPin_Click()
sdk2000.DlgPreviewFormat
mnuNormalSize_Click
End Sub'==================
'图像存入粘贴板
'==================
Private Sub mnuEditCopy_Click()
Dim ok As Boolean
ok = sdk2000.EditCopy
If ok Then
MsgBox "图像已存入粘贴板"
Else
MsgBox "保存失败!"
End If
End SubPrivate Sub mnuFileExit_Click()
Unload Me
End Sub'==================
'新建
'==================
Private Sub mnuFileNew_Click()
Dim frmD As frmDocument
Set frmD = New frmDocument
frmD.Show
End Sub'==================
'设置Logo
'==================
Private Sub mnuLogo_Click()
Load dlgLogo
dlgLogo.Initialize sdk2000
dlgLogo.Show vbModal
Unload dlgLogo
End Sub'==================
'标准尺寸
'==================
Private Sub mnuNormalSize_Click()
Dim normalWidth, normalHeight As Long
Dim wt, ht, wp, hp As Long
Dim aw, ah As Long
Dim iCardID As Long
If Me.WindowState = vbMaximized Then
Me.WindowState = vbNormal
End If
normalWidth = sdk2000.GetPreviewWidth()
normalHeight = sdk2000.GetPreviewHeight()
Me.ScaleMode = vbTwips
wt = Me.ScaleWidth
ht = Me.ScaleHeight
aw = Me.Width - wt
ah = Me.Height - ht
Me.ScaleMode = vbPixels
wp = Me.ScaleWidth
hp = Me.ScaleHeight
Me.Width = aw + normalWidth * wt / wp
Me.Height = ah + normalHeight * ht / hp '========================================
'并非再次连接,仅仅是得到已连接的设备的卡号
'========================================
iCardID = sdk2000.Connect(False)
Caption = "第" & CStr(iCardID) & "路: " & CStr(normalWidth) & " x " & CStr(normalHeight)
End SubPrivate Sub mnuOperate_Click()
mnuShowDlg.Enabled = Not g_bCapturing
mnuStreamState.Enabled = Not g_bCapturing
mnuStartCapture.Enabled = Not g_bCapturing
mnuStopCapture.Enabled = g_bCapturing
mnuCaptureAudio.Checked = sdk2000.CaptureAudio
End SubPrivate Sub mnuPause_Click()
sdk2000.Pause
End SubPrivate Sub mnuRun_Click()
sdk2000.Run
End Sub'=================
'图像存盘:BMP
'=================
Private Sub mnuSaveBMP_Click()
Dim ok As Boolean
ok = sdk2000.SaveImageToBmp("C:\Capture.bmp")
If ok Then
MsgBox "图像存为 C:\Capture.bmp"
Else
MsgBox "保存失败!"
End If
End Sub'=================
'图像存盘:JPG
'=================
Private Sub mnuSaveJPG_Click()
Dim ok As Boolean
ok = sdk2000.SaveImageToJpg("C:\Capture.jpg", 65)
If ok Then
MsgBox "图像存为 C:\Capture.jpg"
Else
MsgBox "保存失败!"
End If
End Sub'=================
'开始录像
'=================
Private Sub mnuStartCapture_Click()
Dim ok As Boolean
If g_bCapturing = False Then
MsgBox "按“确定”开始录像到文件:C:\Capture.avi"
ok = sdk2000.StartCapture("C:\capture.avi")
If ok Then
g_bCapturing = True
Else
MsgBox "录像失败! 请查看文件是否正在被别的程序使用"
End If
End If
End SubPrivate Sub mnuStop_Click()
sdk2000.Stop
End Sub'=================
'停止录像
'=================
Private Sub mnuStopCapture_Click()
If g_bCapturing Then
g_bCapturing = False
sdk2000.StopCapture
End If
End Sub