我有一个win app(C#),它使用剪贴板向/从其他应用程序发送和接收数据。例如,我想在Windows中使用Word应用程序,我使用c#将文本复制到剪贴板,但是当我想在c#中模拟粘贴键scrapy crawl funda1 -a place=rotterdam -a page=2
时,剪贴板是空的,我刚刚得到(Stroke Ctrl+v)
结果。
要复制到剪贴板,请使用以下代码:
"v"
要模拟粘贴或描边Ctrl + v,我使用以下代码
public static void CopyToClipboard(string textForCopyToClipBoard)
{
Clipboard.Clear();
Clipboard.SetDataObject(
textForCopyToClipBoard,
true,
5,
200);
}
答案 0 :(得分:2)
嗯,关于在剪贴板上放置对象的正确代码是:
Clipboard.SetText("hello");
您需要使用System.Windows.Forms
或System.Windows
名称空间。
您只能从STA线程访问剪贴板。 Rick Brewster在Paint.NET中对常规的Edit-> Paste命令进行了一些重构。
代码:
IDataObject idat = null;
Exception threadEx = null;
Thread staThread = new Thread(
delegate ()
{
try
{
idat = Clipboard.GetDataObject();
}
catch (Exception ex)
{
threadEx = ex;
}
});
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
staThread.Join();
// at this point either you have clipboard data or an exception