我在恢复数据时遇到了问题,如果您阅读了评论,这里是代码,那么我认为您会理解问题,并希望知道如何解决此问题。
var oldclip = System.Windows.Clipboard.GetDataObject(); //Here we save the clipboard
var oldpoint = CursorPosition;
CursorPosition = new System.Drawing.Point((Convert.ToInt32((rect.Width - rect.X) * 0.45) + rect.X), Convert.ToInt32((rect.Height - rect.Y) * 0.75) + rect.Y);
DoLeftMouseClick();
SetForegroundWindow(hwnd);
System.Threading.Thread.Sleep(20);
System.Windows.Forms.SendKeys.SendWait("^a^c{ESCAPE}"); // here we go select all text and then copy it to the clipboard
if (System.Windows.Clipboard.GetDataObject().GetDataPresent(DataFormats.Text)) //if the clipboard has text then we do something with it to get that info in the blabla here
{
//...blabla //
}
System.Windows.Clipboard.SetDataObject(oldclip); // HERE I want to restore the clipboard but that fails! After this when I CTRL+P(paste) then it returns nothing,(while it should still have the same "oldclip" data no??
编辑:我对如何解释我的问题有了更好的了解。可以说我有 2 个按钮,按钮保存和按钮恢复。我们得到一个变量:
IDataObject oldclip;
按钮保存代码为:
oldclip = System.Windows.Clipboard.GetDataObject();
我们得到了恢复按钮代码
System.Windows.Clipboard.SetDataObject(oldclip);
现在我复制一些文本“randomtext123”。我按下保存按钮。然后我去复制一些其他文本“otherrandomtext”。现在,如果我按下恢复按钮,我希望剪贴板数据再次成为“randomtext123”,但这不会发生。(因为如果我在恢复按钮之后粘贴它不会做任何事情,就像剪贴板上什么都没有一样)。希望你现在更好地理解这个问题:)