データを から直接読み取ることができますSystem.Windows.Clipboard。それはとても簡単です!
いくつかのより難解なデータ形式で作業する必要があるかもしれませんが、データがクリップボードに保存されると、自由に読み取ることができます。Word の場合、クリップボードに配置される HTML 形式がニーズに非常に適していることに気付くかもしれません。
ユーザーがプログラムの実行に同意したため、セキュリティやプライバシーの問題はありません。ログインしている別のユーザーのクリップボードを読み取ることを許可するのは間違っていますが、それはできません。
あなたは質問を更新し、もう少し具体的なことを尋ねています。そこで、いくつかのウィジェットをクリップボードにコピーしてから、クリップボード ビューアーを使用してそこにある形式を確認しました。飛び出したのはCF_DESIGNERCOMPONENTS_V2。これを簡単にウェブ検索すると、次のウェブサイトにたどり着きました。
http://www.windowsdevelop.com/windows-forms-designer/for-designer-copycutpaste-what-type-data-format-does-ms-set-the-clipboard-dataobject-to-8507.shtml
デザイナーがコピー コマンドを処理する方法を示すリフレクターからのように見えるいくつかのコードがあります。
protected void OnMenuCopy(object sender, EventArgs e)
{
if (this.SelectionService != null)
{
Cursor cursor1 = Cursor.Current;
try
{
Cursor.Current = Cursors.WaitCursor;
ICollection collection1 = this.GetCopySelection();
collection1 = this.PrependComponentNames(collection1);
IDesignerSerializationService service1 = (IDesignerSerializationService) this.GetService(typeof(IDesignerSerializationService));
if (service1 != null)
{
object obj1 = service1.Serialize(collection1);
MemoryStream stream1 = new MemoryStream();
new BinaryFormatter().Serialize(stream1, obj1);
stream1.Seek((long) 0, SeekOrigin.Begin);
byte[] buffer1 = stream1.GetBuffer();
IDataObject obj2 = new DataObject("CF_DESIGNERCOMPONENTS_V2", buffer1);
Clipboard.SetDataObject(obj2);
}
this.UpdateClipboardItems(null, null);
}
finally
{
Cursor.Current = cursor1;
}
}
}
これで始められるはずです!