VB.NET屏幕截图方法2则

【搬运】VB.NET屏幕截图方法2则

vb.net

复制代码
    
    
' 根据VB6代码改的,经过本人优化。请先导入Drawing类库。

Declare Function SelectObject Lib " gdi32 " ( ByVal hdc As Integer , ByVal hObject As Integer ) As Integer
Declare Function BitBlt Lib " gdi32 " ( ByVal hDestDC As Integer , ByVal x As Integer , ByVal y As Integer , ByVal nWidth As Integer , ByVal nHeight As Integer , ByVal hSrcDC As Integer , ByVal xSrc As Integer , ByVal ySrc As Integer , ByVal dwRop As Integer ) As Integer
Declare Function CreateCompatibleBitmap Lib " gdi32 " ( ByVal hdc As Integer , ByVal nWidth As Integer , ByVal nHeight As Integer ) As Integer
Declare Function CreateDC Lib " gdi32 " Alias " CreateDCA " ( ByVal lpDriverName As String , ByVal lpDeviceName As String , ByVal lpOutput As String , ByRef lpInitData As Integer ) As Integer
Declare Function CreateCompatibleDC Lib " gdi32 " ( ByVal hdc As Integer ) As Integer

Function GetSerPic( Optional ByVal BitWidth As Integer = - 1 , Optional ByVal BitHeight As Integer = - 1 ) As Image
If BitWidth < 0 Then BitWidth = My.Computer.Screen.Bounds.Width
If BitHeight < 0 Then BitHeight = My.Computer.Screen.Bounds.Height
Dim Bhandle, DestDC, SourceDC As IntPtr
SourceDC
= CreateDC( " DISPLAY " , Nothing , Nothing , 0 )
DestDC
= CreateCompatibleDC(SourceDC)
Bhandle
= CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight)
SelectObject(DestDC, Bhandle)
BitBlt(DestDC,
0 , 0 , BitWidth, BitHeight, SourceDC, 0 , 0 , & HCC0020)
Return Image.FromHbitmap(Bhandle)
End Function
复制代码

 

复制代码
    
    
' 最近学了Graphics类的画图方法,所以无聊就写了两个小程序。
'
这一例是不使用系统API就可以进行屏幕截取的代码。

Public Class frmMain

Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me .Hide()
Dim p1 As New Point( 0 , 0 )
Dim p2 As New Point(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
Dim pic As New Bitmap(p2.X, p2.Y)
Using g As Graphics = Graphics.FromImage(pic)
g.CopyFromScreen(p1, p1, p2)
Me .BackgroundImage = pic
End Using
Me .Show()
End Sub

End Class
复制代码

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.Net中,我们可以使用一些库来生成屏幕录像并将其保存为MP4格式。 首先,我们需要安装并引用一个开源的库,例如FFmpegInteropX,它是一个基于FFmpeg的多媒体框架。 接下来,我们需要编写代码来进行屏幕录像和MP4生成。下面是一个简单的示例: ```vb Imports FFmpegInteropXLib Public Class MainForm Dim recorder As MediaCapture Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click Dim savePicker As New FileSavePicker() savePicker.SuggestedStartLocation = PickerLocationId.VideosLibrary savePicker.FileTypeChoices.Add("MP4 Files", New List(Of String)() From {".mp4"}) savePicker.SuggestedFileName = "ScreenRecording" Dim saveFile As StorageFile = Await savePicker.PickSaveFileAsync() If saveFile IsNot Nothing Then Dim profile As MediaEncodingProfile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto) recorder = New MediaCapture() Await recorder.InitializeAsync(New MediaCaptureInitializationSettings()) recorder.StartRecordToStorageFileAsync(profile, saveFile) End If End Sub Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click If recorder IsNot Nothing Then recorder.StopRecordAsync() End If End Sub End Class ``` 在上面的示例代码中,我们首先创建了一个FileSavePicker对象来让用户选择保存录像的文件路径。然后,我们创建了一个MediaEncodingProfile来指定MP4文件的编码质量。接下来,我们初始化了一个MediaCapture对象,并使用StartRecordToStorageFileAsync方法开始录像,并将其保存到用户选择的文件中。最后,我们提供了一个停止录像的按钮点击事件。 请注意,这只是一个基本示例,你还可以添加更多功能,例如录制指定区域的屏幕、添加声音等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值