資源簡介
從剪貼板提取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?剪貼板監(jiān)控
{
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);
//讀取數(shù)據(jù)
[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??剪貼板監(jiān)控\
?????目錄???????????0??2014-05-09?18:10??剪貼板監(jiān)控\剪貼板監(jiān)控\
?????文件?????????891??2014-05-09?18:10??剪貼板監(jiān)控\剪貼板監(jiān)控.sln
?????文件???????17920??2014-05-10?23:01??剪貼板監(jiān)控\剪貼板監(jiān)控.suo
?????目錄???????????0??2014-05-09?18:09??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\
?????目錄???????????0??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\
?????目錄???????????0??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\0.emf
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\1.emf
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\2.emf
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\3.emf
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\4.emf
?????文件???????25748??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\emf\5.emf
?????文件???????11776??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\剪貼板監(jiān)控.exe
?????文件???????30208??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\剪貼板監(jiān)控.pdb
?????文件???????11600??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\剪貼板監(jiān)控.vshost.exe
?????文件?????????490??2010-03-17?22:39??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Debug\剪貼板監(jiān)控.vshost.exe.manifest
?????目錄???????????0??2014-05-09?18:09??剪貼板監(jiān)控\剪貼板監(jiān)控\bin\Release\
?????文件????????5206??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\Form1.cs
?????文件????????1791??2014-05-10?22:39??剪貼板監(jiān)控\剪貼板監(jiān)控\Form1.Designer.cs
?????文件????????5817??2014-05-10?22:39??剪貼板監(jiān)控\剪貼板監(jiān)控\Form1.resx
?????目錄???????????0??2014-05-09?18:09??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\
?????目錄???????????0??2014-05-09?18:09??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\
?????目錄???????????0??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\
?????文件????????2152??2014-05-09?13:16??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????6223??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件?????????604??2014-05-10?22:39??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件????????1096??2014-05-10?22:39??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\GenerateResource.write.1.tlog
?????目錄???????????0??2014-05-09?18:09??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\TempPE\
?????文件????????2379??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\剪貼板監(jiān)控.csproj.FileListAbsolute.txt
?????文件???????11776??2014-05-10?22:56??剪貼板監(jiān)控\剪貼板監(jiān)控\obj\x86\Debug\剪貼板監(jiān)控.exe
............此處省略13個文件信息
評論
共有 條評論