WinForm PrtScSysRq键保存屏幕图片到C盘? [图]

zhaozhijun0207 2009-06-12 11:11:44
[VS2005]


玩魔兽世界的时候,发现有个截图功能;
按PrtScSysRq键,就会以jpg格式保存当前屏幕图片到指定目录;

我想模拟做一个这样的功能:
在Form1窗体运行后,按下PrtScSysRq键,就保存屏幕图片到C盘,以当前日期时间为图片的文件名(20090612120445.jpg);
//20090612120445=2009年6月12日12:04:45
谁能给个链接资源什么的都可以,想研究下;




[注:请不要回复UP,绝对无分]
...全文
517 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaozhijun0207 2009-06-13
  • 打赏
  • 举报
回复
13楼的方法貌似更好:
        private void timer1_Tick(object sender, EventArgs e)
{
object a = new object();
if (Clipboard.ContainsImage())
{
a = Clipboard.GetData(DataFormats.Bitmap);
Image b = (Image)a;
string name = DateTime.Now.ToString("yyyyMMddHHmmss");

b.Save(@"C:\" + name + ".jpg");
}

base.Dispose();
Clipboard.Clear();
}
yan286093636 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 seamanhy 的回复:]
事件里面写
1.模拟出发键盘按键PrintScreen键
2.将保存在剪切板里面的信息读取到FileStream中
3.用Image类实现FileStream中的图片
4.将文件保存为DateTime.Now.ToString("yyyyMMddHHmmss")

好像就是这样吧
[/Quote]

顶这个。。。。。。
seamanhy 2009-06-12
  • 打赏
  • 举报
回复
事件里面写
1.模拟出发键盘按键PrintScreen键
2.将保存在剪切板里面的信息读取到FileStream中
3.用Image类实现FileStream中的图片
4.将文件保存为DateTime.Now.ToString("yyyyMMddHHmmss")

好像就是这样吧
angel6709 2009-06-12
  • 打赏
  • 举报
回复
应该放到剪切板里了,自己去拿。。
wwei466 2009-06-12
  • 打赏
  • 举报
回复
如果是屏幕的,
http://www.wangqi.com/html/2007-01/9392.htm
看这个吧。
视频的话,就难了。
wwei466 2009-06-12
  • 打赏
  • 举报
回复
看你想保留什么图片了。如果是游戏的还得找相应的接口,获取图片什么的。
其他的都是小问题。
zhaozhijun0207 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lvxianda 的回复:]
判断下PrtScSysRq键 触发事件,图片信息这时候被载入内存了
想办法键个能承载图片内容的文件,打开后粘贴下就应该可以了,
接着再把文件移到C盘
[/Quote]
我也知道思路是这样,
但具体代码不会写;
lvxianda 2009-06-12
  • 打赏
  • 举报
回复
判断下PrtScSysRq键 触发事件,图片信息这时候被载入内存了
想办法键个能承载图片内容的文件,打开后粘贴下就应该可以了,
接着再把文件移到C盘
ghost5216 2009-06-12
  • 打赏
  • 举报
回复

object a=new object();
if (Clipboard.ContainsImage())
{
a = Clipboard.GetData(DataFormats.Bitmap);
Image b = (Image)a;
string name = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();

b.Save(@"C:\"+name+".bmp");
}
ghost5216 2009-06-12
  • 打赏
  • 举报
回复
这个我以前用VB做过
做个无窗体的,发到托盘里
一直监视剪贴板内容,有就读数来,输出图形。
zhaozhijun0207 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwei466 的回复:]
如果是屏幕的,
http://www.wangqi.com/html/2007-01/9392.htm

[/Quote]

[Quote=引用 10 楼 zgke 的回复:]
img.Save(@"c:\A.jpg",ImageFormat.Jpeg); 不能保存?
[/Quote]

谢谢4楼,10楼的帮助,结贴

private void button1_Click(object sender, EventArgs e)
{
Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
Graphics g = Graphics.FromImage(img);
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
string name = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
img.Save(@"C:\" + name + ".jpg", ImageFormat.Jpeg);

g.Dispose();
img.Dispose();
}
心之为乐 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 roderick_lgp 的回复:]
很想知道,你把游戏最小化后,按下PrintScreen 你在那个目录下能看到什么样的图片
[/Quote]

你查看我的问题,你可以更确定他是不是通过截屏
zgke 2009-06-12
  • 打赏
  • 举报
回复
img.Save(@"c:\A.jpg",ImageFormat.Jpeg); 不能保存?
zhaozhijun0207 2009-06-12
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SMGe
{
public partial class Form截图2 : Form
{
public Form截图2()
{
InitializeComponent();
}

private void Form截图2_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
Get截图();
}

//显示截图窗口
void Get截图()
{
Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
Graphics g = Graphics.FromImage(img);
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);
Form截图 body = new Form截图();
body.BackgroundImage = img;//img已获取屏幕图片,并设置为窗体的背景色,如何把img保存在C盘:A.jpg
body.Show();
}
}
}

//img已获取屏幕图片,并设置为窗体的背景色,
如何把img保存在C盘:A.jpg
心之为乐 2009-06-12
  • 打赏
  • 举报
回复
很想知道,你把游戏最小化后,按下PrintScreen 你在那个目录下能看到什么样的图片

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧