在C#中保存打印屏幕

use*_*977 6 c#

Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
                                    Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap as Image);
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
bitmap.Save(@"C:\Temp\printscreen.jpg", ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

这是我的打印屏幕按钮代码.问题是我按下按钮几次,它只是写在旧图像文件(printscreen.jpg)上,它不会创建另一个新的图像文件,如printscreen1.jpg.

Chr*_*ken 7

试试这个.它每次都会生成一个唯一的文件.

Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
                                    Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap as Image);
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
bitmap.Save(@"C:\Temp\printscreen"+Guid.NewGuid()+".jpg", ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

要么

Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
                                    Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(bitmap as Image);
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
var date = DateTime.Now.ToString("MMddyyHmmss");
bitmap.Save(@"C:\Temp\printscreen"+date+".jpg", ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

  • +1(又名我来了)如何使用当前日期而不是GUID?似乎更合适. (5认同)

Ehs*_*san 6

它不会创建另一个新的图像文件

你不是要求它创建一个代码

bitmap.Save(@"C:\Temp\printscreen.jpg", ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

总是写到同一个文件.

新图像文件,例如printscreen1.jpg

如果要创建新文件,则需要动态生成文件名.就像是

 string fileName = System.IO.Path.GetTempPath() + DateTime.Now.ToString() + ".jpg";
 bitmap.Save(fileName, ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)