如何通过VB编程将运行后的窗体保存为图片并保存?
1条回答 默认 最新
- The 祺℡ 2021-03-04 16:07关注
可以是可以,不过需要调用window dll去获取窗口handle。以下VB代码:
Imports System Imports System.Drawing Imports System.Drawing.Imaging Imports System.Runtime.InteropServices Namespace MyDll Friend Class MyClass Private Structure RECT Public x1 As Integer Public y1 As Integer Public x2 As Integer Public y2 As Integer End Structure Private Shared Declare Function FindWindow Lib "user32.dll" (lpClassName As String, lpWindowName As String) As IntPtr Private Shared Declare Function GetWindowDC Lib "user32.dll" (hwnd As IntPtr) As IntPtr Private Shared Declare Function GetWindowRect Lib "user32.dll" (hWnd As IntPtr, <Out()> ByRef rect As Win32Helper.RECT) As IntPtr Private Shared Declare Function PrintWindow Lib "user32.dll" (hwnd As IntPtr, hdcBlt As IntPtr, nFlags As UInteger) As Boolean Private Shared Declare Function CreateCompatibleDC Lib "gdi32.dll" (hdc As IntPtr) As IntPtr Private Shared Declare Function CreateCompatibleBitmap Lib "gdi32.dll" (hdc As IntPtr, nWidth As Integer, nHeight As Integer) As IntPtr Private Shared Declare Function SelectObject Lib "gdi32.dll" (hdc As IntPtr, hgdiobj As IntPtr) As IntPtr Private Shared Declare Function DeleteDC Lib "gdi32.dll" (hdc As IntPtr) As Integer Public Sub CaptureWindowToFile(lpWindowName As String, filename As String, format As ImageFormat) Dim expr_07 As IntPtr = Win32Helper.FindWindow(Nothing, lpWindowName) Dim windowDC As IntPtr = Win32Helper.GetWindowDC(expr_07) Dim intPtr As IntPtr = Win32Helper.CreateCompatibleDC(windowDC) Dim rECT As Win32Helper.RECT Win32Helper.GetWindowRect(expr_07, rECT) Dim intPtr2 As IntPtr = Win32Helper.CreateCompatibleBitmap(windowDC, rECT.x2 - rECT.x1, rECT.y2 - rECT.y1) Win32Helper.SelectObject(intPtr, intPtr2) Win32Helper.PrintWindow(expr_07, intPtr, 0U) Dim arg_65_0 As Image = Image.FromHbitmap(intPtr2) Win32Helper.DeleteDC(windowDC) Win32Helper.DeleteDC(intPtr) arg_65_0.Save(filename, format) End Sub End Class End Namespace
解决 无用评论 打赏 举报
悬赏问题
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
- ¥15 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 牛顿斯科特系数表表示