[分享]不用API实现截屏/截取当前窗口内容(“抓图”)

主  题:  [分享]不用API实现截屏/截取当前窗口内容(“抓图”) 
作  者:  netmicro (麦) 
等  级:   
信 誉 值:  100 
所属社区:  .NET技术 C# 
问题点数:  0 
回复次数:  23 
发表时间:  2005-11-27 5:33:50 
  
 
  

好像CSDN只有提问的地方,没有分享心得的地方?还是我太白找不到?

-------
以前我在google里找过实现截屏/截Window的方法,搜到了一个用API函数的,我不喜欢用API,于是就没收藏。今天我无意中发现 System.Windows.Forms.SendKey 对象,一下子就知道该怎么弄了

// 模拟按键,将当前窗口图像截取到剪贴板:
SendKeys.SendWait("%{PRTSC}"); // 模拟 Alt+PrtSc,如果要截取整个屏幕,把 Alt (%) 去掉
// 获取剪贴板里的图像:
Bitmap myCapture = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);
// 要显示图像可以这么做:
this.pictureBox1.Image = myCapture;
// 要保存图像可以这么做:
myCapture.Save(@"C:/myCapture.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

-------
不知道有没有人发过,搜索不管用……

 
  vrace(Warcraft III in 1.20) ( ) 信誉:100  2005-11-27 8:10:11  得分: 0 
 
 
  
object you = new B();


 
 
Top 
 crossbowvic(漫步的兔子) ( ) 信誉:100  2005-12-26 21:11:45  得分: 0 
 
 
  
哈哈,学习啦,3Q

 
 
Top 
 wmhnq() ( ) 信誉:94  2005-12-26 23:18:17  得分: 0 
 
 
  
收藏

 
 
Top 
 wuyazhe(我的宝贝叫阿刺) ( ) 信誉:100  2005-12-27 1:39:50  得分: 0 
 
 
  
呵呵。支持楼主分享精神。

 
 
Top 
 xvting(xvting) ( ) 信誉:103  2005-12-27 8:52:05  得分: 0 
 
 
  
顶!

 
 
Top 
 lw8122(随风) ( ) 信誉:100  2005-12-27 9:43:27  得分: 0 
 
 
  
这个想法很好啊,有创意

 
 
Top 
 jamesfay(狒狒) ( ) 信誉:100  2005-12-27 10:03:11  得分: 0 
 
 
  
这方法也不是今天才有,不过lz分享的精神值得鼓励 :-)

 
 
Top 
 desailly(邋遢大王) ( ) 信誉:100  2005-12-27 10:19:44  得分: 0 
 
 
  
支持

 
 
Top 
 Macosx() ( ) 信誉:106  2005-12-27 10:34:16  得分: 0 
 
 
  
严重支持楼主

 
 
Top 
 flygoldfish(长江支流) ( ) 信誉:97  2005-12-27 11:00:27  得分: 0 
 
 
  
不错,WinForm下很多可以巧用系统剪切板的,但WebForm下没有这些优势

 
 
Top 
 asuan(asuan) ( ) 信誉:100  2005-12-27 12:48:47  得分: 0 
 
 
  
mark

 
 
Top 
 ztwz(菜虫) ( ) 信誉:100  2005-12-27 13:01:21  得分: 0 
 
 
  
mark

 
 
Top 
 min_jie(止戈) ( ) 信誉:100  2005-12-27 13:20:33  得分: 0 
 
 
  
好的。。不错。。

 
 
Top 
 jxufewbt(我的目标是5星) ( ) 信誉:105  2006-1-10 20:54:13  得分: 0 
 
 
  
支持

 
 
Top 
 richardingding() ( ) 信誉:100  2006-1-10 20:57:50  得分: 0 
 
 
  
ding

 
 
Top 
 Sunmast(速马>WPF>WCF>WWF) ( ) 信誉:185  2006-1-10 23:29:33  得分: 0 
 
 
  
这个办法是很cool,也可行,就是用户原来粘贴板里面的东西被你干掉了 :-)

不要反感API的调用,CLR本身也是用native代码实现的,FCL的实现也大量使用了P/Invoke
况且,就算哪天.NET实现了真正的跨平台,你的这段代码也没法直接移植

 
 
Top 
 chinadforce() ( ) 信誉:100  2006-1-11 3:09:41  得分: 0 
 
 
  
呵呵~

 
 
Top 
 Wangdewind(笑看山水) ( ) 信誉:100  2006-2-15 14:43:01  得分: 0 
 
 
  
支持,精神获益,呵呵

 
 
Top 
 hedahong(旋) ( ) 信誉:100  2006-2-15 14:57:07  得分: 0 
 
 
  
強,這也想得到!

 
 
Top 
 danseshi(黑蛋) ( ) 信誉:100  2006-03-25 13:55:00  得分: 0 
 
 
   那我不想截取整个屏幕呢?
只截取一部分,就象别的截图软件那样,该怎么做呢???
 
 
Top 
 yf1025(小桥,流水,人家) ( ) 信誉:100  2006-03-25 14:09:00  得分: 0 
 
 
   upupup
 
 
Top 
 a_geng(独孤) ( ) 信誉:98  2006-03-25 14:16:00  得分: 0 
 
 
   Webform中也可以实现剪贴板的操作
 
 
Top 
 chenzhixin(我是农民的儿子) ( ) 信誉:100  2006-03-25 14:21:00  得分: 0 
 
 
   不错,但是不能截取鼠标,要自己画上去

 
 
Top 
 

 
 
 
   
 

 
 管理 | 关闭窗口 
 
 
http://ike.126.com

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值