首页 > 其他分享 >WinForm截屏

WinForm截屏

时间:2023-11-14 14:55:32浏览次数:25  
标签:int bytes System bitmap 截屏 ms rc WinForm

 public void CutAppForm(int Localtion_X,int Localtion_Y, int picWidth,int picHeight,ref byte[] bytes)
 {
     string filePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
     string fileName = DateTime.Now.ToString("yyyy?MM?dd?HH?mm?ss?") + ".jpg";
     try
     {
         Screen screen = Screen.AllScreens.FirstOrDefault();
         Rectangle rc = new Rectangle(Localtion_X, Localtion_Y, picWidth, picHeight);

         Bitmap bitmap = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
         this.DrawToBitmap(bitmap, rc);

         using (Graphics memoryGrahics = Graphics.FromImage(bitmap))
         {
             memoryGrahics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy);//?????????????
         }
         bitmap.Save(filePath + fileName, ImageFormat.Png);
         MessageBox.Show("?????:" + filePath + fileName);

         MemoryStream ms = new MemoryStream();
         bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
         ms.Seek(0, System.IO.SeekOrigin.Begin);
         bytes = new byte[ms.Length];
         ms.Read(bytes, 0, bytes.Length);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }

 [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
 public static extern bool BitBlt(IntPtr hdcDest, 
                                      int nXDest,
                                      int nYDest,
                                      int nWidth,
                                      int nHeight,
                                      IntPtr hdcSrc,  
                                      int nXSrc,
                                      int nYSrc,
                                      System.Int32 dwRop  
                                      );
}

 

标签:int,bytes,System,bitmap,截屏,ms,rc,WinForm
From: https://www.cnblogs.com/chengeng/p/17831590.html

相关文章

  • 【Windows】WinForms程序调用WinRT的API清空剪切板
    首先这是.NETFramework4.6项目才用的方法,高版本直接安装Microsoft.Windows.SDK.Contracts包来使用就行了。此代码实现了手动调用API获取WinRT的剪切板对象,并通过虚函数指针调用ClearHistory方法清空剪切板历史记录(Win+V)。1usingSystem;2usingSystem.Runtime.Compile......
  • C#学习-winform窗口程序实践-简易学生信息管理系统
    最近逐步开始学习C#,今天完成了一个简易的C#实现的winform窗口程序,如下图所示,可以实现插入,修改,删除学生信息和查询学生成绩;使用VS并连接了mysql数据库 插入 选中相应的信息可以修改 删除 ......
  • C#winform学习3(C#连接MySQL数据库)
    需要引用MySQL.data.dll文件1.右键引用,如果没有MySQL.data.dll文件则选择浏览一般这个文件会存放在C:\ProgramFiles(x86)\MySQL\ConnectorNET8.0\Assemblies如果没有,需要去官网自己下载即可,参考:visualstudio2019使用MySQL.data的引用-知乎(zhihu.com)官网下载地址:MySQ......
  • winform调用WebApi
    post请求:publicstaticstringHttpPost(stringurl,stringbody){//ServicePointManager.ServerCertificateValidationCallback=newRemoteCertificateValidationCallback(CheckValidationResult);Encodingencoding=En......
  • 记录一个Winform语言切换失效的解决方法
    设置Thread.CurrentThread.CurrentUICulture =newCultureInfo("zh-CHS");仍然显示英文界面,解决方式是VisualStudioInstaller中选择单个组件.netframework3.5开发工具,重新编译解决。原因可能是VisualStudio在编译resourcedll时输出了错误的.netframework版本,比如选择targe......
  • C#winform学习2
    1.在工具栏中实现以下效果工具箱-->菜单和工具栏-->ToolStrip,拖拽进来后,选择button,右键DisplayStyle-->ImageAndText然后再在属性中修改文本为员工查询 2.进度一:完成页面以及基础的页面连接 ......
  • 解决VS2005在Winform窗体设计界面中数据源窗口灰化不显示数据源的问题
    近日发现一个问题,在项目中添加了几个数据源,当在Code界面时,数据源窗口可以显示出我添加的数据源,但是一切换到窗体设计界面,数据源窗口就灰化,数据源窗口中所有的数据源都消失了,切换到Code界面,数据源有出来了,切换到设计界面,又消失了,百思不得其解,一定是VS出问题了……最后经过一顿搜索,原......
  • DevExpress WinForms桑基图组件,开创大数据流可视化新方式!
    界面控件DevExpressWinForms能帮助开发者创建信息丰富的WinForms应用程序,使用其SankeyDiagram(桑基图)控件,您可以非常轻松地可视化大数据的数据流。DevExpressWinForms有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用......
  • QT实现将截屏保存为图片实践
    QT代实现将截屏保存为图片实践使用QGuiApplication::primaryScreen()可以取得当前屏幕,取得将QScreen->grabWindow(0)存入QPixmap即可。这里可以看到QT的封装非常方便我们取得屏幕截图。 开始截屏按扭代码voidTestWidget::on_pushButton_clicked(){this->hide();//隐藏当前......
  • C#winform学习1
    Form1.cs:业务代码自动方式:Form1.Designer.cs:界面代码,一般是设计器自动生成的(最好不要修改该文件)手动方式:在Form1.cs中手动方式添加事件处理vsstudio会有代码提示,直接按TAB键即可代码补全1.窗口自适应1.将textbox的自适应关闭 2.重写OnLayout方法protectedoverride......