首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ActiveX组件中保存位图

如何从ActiveX组件中保存位图
EN

Stack Overflow用户
提问于 2019-08-29 20:29:38
回答 1查看 36关注 0票数 0

尝试保存AxMsTscAxNotSafeForScripting (微软终端服务客户端控制)的屏幕,但找不到有关它的任何信息...

我试了一个代码,但它只显示元素的字段...https://i.imgur.com/fo6jKDT.png

代码语言:javascript
复制
    [Flags]
    private enum DrawingOptions
    {
        PRF_CHECKVISIBLE = 0x00000001,
        PRF_NONCLIENT = 0x00000002,
        PRF_CLIENT = 0x00000004,
        PRF_ERASEBKGND = 0x00000008,
        PRF_CHILDREN = 0x00000010,
        PRF_OWNED = 0x00000020
    }

    private const uint WM_PAINT = 0xF;


    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    private static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr dc, DrawingOptions opts);

    var bm = new Bitmap(rdp.Width, rdp.Height, rdp.CreateGraphics());

        using (Graphics g = Graphics.FromImage(bm))
        {
            IntPtr dc = g.GetHdc();
            try
            {
                SendMessage(rdp.Handle, WM_PAINT, dc,
                DrawingOptions.PRF_CLIENT |
                DrawingOptions.PRF_NONCLIENT |
                DrawingOptions.PRF_CHILDREN);
            }
            finally
            {
                g.ReleaseHdc();
            }
        }
        pictureBox1.Image = bm;
EN

回答 1

Stack Overflow用户

发布于 2019-08-29 20:59:34

这段代码有助于保存表单图像并完美地显示ActiveX。由于该项目是静态的,我将只裁剪图像并获得我想要的屏幕截图。

代码语言:javascript
复制
 [DllImport("user32.dll")]
 public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
 [DllImport("user32.dll")]
 public static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags);

 public static Bitmap PrintWindow(IntPtr hwnd)    
 {       
      RECT rc;        
      GetWindowRect(hwnd, out rc);

      Bitmap bmp = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);        
      Graphics gfxBmp = Graphics.FromImage(bmp);        
      IntPtr hdcBitmap = gfxBmp.GetHdc();        

      PrintWindow(hwnd, hdcBitmap, 0);  

      gfxBmp.ReleaseHdc(hdcBitmap);               
      gfxBmp.Dispose(); 

      return bmp;   
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57710251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档