封裝 `System.Windows.Forms.Clipboard`,提供純文字存取的簡潔 API。
public static bool CanGetText()
{
try
{
var data = Clipboard.GetDataObject();
return data != null && data.GetDataPresent(DataFormats.UnicodeText);
}
catch { return false; }
}
public static bool SetTextToClipboard(string text)
{
if (string.IsNullOrEmpty(text)) return false;
try
{
var dobj = new DataObject();
dobj.SetData(DataFormats.UnicodeText, true, text); // autoConvert=true
Clipboard.SetDataObject(dobj, true); // copy=true,應用程式結束後仍保留
return true;
}
catch { return false; }
}
public static string GetTextFromClipboard()
{
try
{
var data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.UnicodeText))
return (string)data.GetData(DataFormats.UnicodeText);
}
catch { }
return null;
}
// 讀取
if (ClipboardHandler.CanGetText())
string text = ClipboardHandler.GetTextFromClipboard();
// 寫入
ClipboardHandler.SetTextToClipboard("要寫入的文字");