资源简介
从剪贴板提取EMF图元文件并保存的C#工程,绝对有用!
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;//Dllimport
using System.IO;
namespace 剪贴板监控
{
public partial class Form1 : Form
{
//private const int WM_DRAWCLIPBOARD = 776;
RichTextBox richTextBox1;
//Container componentss = null;
int count;
IntPtr nextClipboardViewer;
[DllImport(“User32.dll“)]
protected static extern int SetClipboardViewer(int hWndNewViewer);
[DllImport(“User32.dll“ CharSet = CharSet.Auto)]
public static extern bool ChangeClipboardChain(IntPtr hWndRemoveIntPtr hWndNewNext);
[DllImport(“user32.dll“ CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hwnd int wMsgIntPtr wParam IntPtr lParam);
[DllImport(“user32.dll“ CharSet = CharSet.Auto)]
public static extern int EnumClipboardFormats(UInt32 format);
//读取数据
[DllImport(“user32.dll“)]
public static extern IntPtr GetClipboardData(uint uFormat);
//拷贝文件
[DllImport(“gdi32.dll“)]
public static extern IntPtr CopyEnhmetaFile(IntPtr hEmf string s);
//打开剪贴板
[DllImport(“user32.dll“)]
public static extern bool OpenClipboard(IntPtr ptr);
//关闭剪贴板
[DllImport(“user32.dll“)]
public static extern bool CloseClipboard();
public enum ClipboardFormats : uint
{
CF_TEXT=1
CF_BITMAP=2
CF_metaFILEPICT=3
CF_SYLK=4
CF_DIF=5
CF_TIFF=6
CF_OEMTEXT=7
CF_DIB=8
CF_PALETTE=9
CF_PENDATA=10
CF_RIFF=11
CF_WAVA=12
CF_UNICODETEXT=13
CF_ENHmetaFILE=14
}
protected override void WndProc(ref System.Windows.Forms.Message m)
{
// defined in winuser.h
const int WM_DRAWCLIPBOARD = 0x308;
const int WM_CHANGECBCHAIN = 0x030D;
switch (m.Msg)
{
case WM_DRAWCLIPBOARD:
DisplayClipboardData();
SendMessage(nextClipboardViewer m.Msg m.WParamm.LParam);
break;
case WM_CHANGECBCHAIN:
if (m.WParam == nextClipboardViewer)
nextClipboardViewer = m.LParam;
else
SendMessage(nextClipboardViewer m.Msg m.WParamm.LParam);
break;
default:
base.WndProc(ref m);
break;
}
}
void DisplayClipboardData()
{
//metafile mf;
try
{
IDataobject iData = new Dataobject();
iData = Clipboard.GetDataobject();
if (iData.GetDataPresent(DataFormats.Rtf))
richTextBox1.Rtf = (string)iData.GetData(DataFormats.Rtf);
else if (iData.GetDataPresent(DataFormats.Text))
richTextBox1.Text = (string)iData.GetData(DataFormats.Text);
else if (iData.GetDataPresent(DataFormats.metafilePict))
{
richTextBox1.Text = “是metafile“;
saveEMF();
}
else if (iData.GetDataPresent(DataFormats.FileDrop))
{
string[] ss=(string[]) iData.GetData(DataFormats.FileDrop);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-05-09 18:10 剪贴板监控\
目录 0 2014-05-09 18:10 剪贴板监控\剪贴板监控\
文件 891 2014-05-09 18:10 剪贴板监控\剪贴板监控.sln
文件 17920 2014-05-10 23:01 剪贴板监控\剪贴板监控.suo
目录 0 2014-05-09 18:09 剪贴板监控\剪贴板监控\bin\
目录 0 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\
目录 0 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\0.emf
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\1.emf
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\2.emf
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\3.emf
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\4.emf
文件 25748 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\emf\5.emf
文件 11776 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\剪贴板监控.exe
文件 30208 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\剪贴板监控.pdb
文件 11600 2014-05-10 22:56 剪贴板监控\剪贴板监控\bin\Debug\剪贴板监控.vshost.exe
文件 490 2010-03-17 22:39 剪贴板监控\剪贴板监控\bin\Debug\剪贴板监控.vshost.exe.manifest
目录 0 2014-05-09 18:09 剪贴板监控\剪贴板监控\bin\Release\
文件 5206 2014-05-10 22:56 剪贴板监控\剪贴板监控\Form1.cs
文件 1791 2014-05-10 22:39 剪贴板监控\剪贴板监控\Form1.Designer.cs
文件 5817 2014-05-10 22:39 剪贴板监控\剪贴板监控\Form1.resx
目录 0 2014-05-09 18:09 剪贴板监控\剪贴板监控\obj\
目录 0 2014-05-09 18:09 剪贴板监控\剪贴板监控\obj\x86\
目录 0 2014-05-10 22:56 剪贴板监控\剪贴板监控\obj\x86\Debug\
文件 2152 2014-05-09 13:16 剪贴板监控\剪贴板监控\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6223 2014-05-10 22:56 剪贴板监控\剪贴板监控\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 604 2014-05-10 22:39 剪贴板监控\剪贴板监控\obj\x86\Debug\GenerateResource.read.1.tlog
文件 1096 2014-05-10 22:39 剪贴板监控\剪贴板监控\obj\x86\Debug\GenerateResource.write.1.tlog
目录 0 2014-05-09 18:09 剪贴板监控\剪贴板监控\obj\x86\Debug\TempPE\
文件 2379 2014-05-10 22:56 剪贴板监控\剪贴板监控\obj\x86\Debug\剪贴板监控.csproj.FileListAbsolute.txt
文件 11776 2014-05-10 22:56 剪贴板监控\剪贴板监控\obj\x86\Debug\剪贴板监控.exe
............此处省略13个文件信息
评论
共有 条评论