zoukankan      html  css  js  c++  java
  • C# 获取桌面

                  

     [System.Runtime.InteropServices.DllImport(”gdi32.dll”)]
    
            public static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, UInt32 dwRop);
    
          //创建桌面句柄
    
            [System.Runtime.InteropServices.DllImportAttribute(”gdi32.dll”)]
    
            public static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, int lpInitData);
    
            [System.Runtime.InteropServices.DllImport(”gdi32.dll”)]
    
            public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
    
            //转换为本地的图像资源
    
            [System.Runtime.InteropServices.DllImport(”gdi32.dll”)]
    
            public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
    
            [System.Runtime.InteropServices.DllImport(”gdi32.dll”)]
    
            public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
    
            [System.Runtime.InteropServices.DllImport(”gdi32.dll”)]
    
            public static extern int DeleteDC(IntPtr hdc);
    
            //释放用过的设备句柄
    
            [DllImport(”user32.dll”)]
    
            public static extern bool ReleaseDC(
    
             IntPtr hwnd, IntPtr hdc
    
             );
    
            //释放用过的画笔等资源
    
            [DllImport(”gdi32.dll”)]
    
            public static extern bool DeleteObject(
    
              IntPtr hdc
    
             );
    
            
    
    /// <summary>
    
            /// 截取屏幕图像
    
            /// </summary>
    
            /// <param name=”Width”>宽</param>
    
            /// <param name=”Height”>高</param>
    
            /// <param name=”x”>x坐标(全屏时候为0)</param>
    
            /// <param name=”y”>y坐标(全屏时候为0)</param>
    
            /// <returns></returns>
    
            public Bitmap fullphoto(int Width,int Height,int x,int y)
    
            {
    
                Bitmap bitmap;
    
                //try
    
                //{
    
                    IntPtr hScreenDc = CreateDC(”DISPLAY”, null, null, 0); // 创建桌面句柄
    
                    IntPtr hMemDc = CreateCompatibleDC(hScreenDc); // 创建与桌面句柄相关连的内存DC
    
                    IntPtr hBitmap = CreateCompatibleBitmap(hScreenDc, Width, Height);   
    
                    IntPtr hOldBitmap = SelectObject(hMemDc, hBitmap);
    
                    BitBlt(hMemDc, x, y, Width, Height, hScreenDc, x, y, (UInt32)0xcc0020);
    
                    IntPtr map = SelectObject(hMemDc, hOldBitmap);
    
                    bitmap = Bitmap.FromHbitmap(map);  
    
                    ReleaseDC(hBitmap, hScreenDc);
    
                    DeleteDC(hScreenDc);//删除用过的对象
    
                    DeleteDC(hMemDc);//删除用过的对象
    
                    DeleteDC(hOldBitmap);
    
                    DeleteObject(hBitmap);
    
                   
    
                  
    
                //}
    
                //catch (Exception wx)
    
                //{
    
                //    return null;
    
                    //}
    
                    // number= number +1;
    
                    // bitmap.Save(”screen” + number + “.bmp”);
    
                
    
                return bitmap;
    
            }
    

           

  • 相关阅读:
    Lucene的分页查询
    Lucene索引库的简单优化
    Lucene的排序搜索
    Axure RP 6.5学习记录(1)界面介绍
    Lucene的高亮器Highlighter
    关于Lucene以及索引和搜索的流程
    Lucene初体验
    linux 下 ansi_x3.41968 java 邮件附件乱码
    SQL Server DBA工作内容详解
    SQL Server 导出 insert into 脚本
  • 原文地址:https://www.cnblogs.com/DotNetCSharp/p/2116574.html
Copyright © 2011-2022 走看看