CODE:
/// <summary>
/// 操作系統剪切板處理模塊,提供的方法為靜態函數
/// </summary>
/// <example>
/// C#語言中使用該類的例子,從操作系統剪切板獲得純文本數據
/// // 判斷操作系統剪切板是否保存了純文本數據
/// if( ClipboardHandler.CanGetText())
/// {
/// // 返回獲得的純文本數據
/// return ClipboardHandler.GetTextFromClipboard();
/// }
///
/// 向操作系統剪切板設置純文本數據
/// string strText = "要設置的純文本數據";
/// ClipboardHandler.SetTextToClipboard( strText );
/// </example>
public class ClipboardHandler
{
/**//// <summary>
/// 是否可以從操作系統剪切板獲得文本
/// </summary>
/// <returns>true 可以從操作系統剪切板獲得文本,false 不可以</returns>
public static bool CanGetText()
{
// Clipboard.GetDataObject may throw an exception...
try
{
System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
return data != null && data.GetDataPresent(System.Windows.Forms.DataFormats.Text);
}
catch (Exception e)
{
return false;
}
}
//
// /// <summary>
// /// 是否可以向操作系統剪切板設置文本
// /// </summary>
// /// <returns></returns>
// public static bool CanSetText()
// {
// return true;
// }
/**//// <summary>
/// 向操作系統剪切板設置文本數據
/// </summary>
/// <param name="strText">文本數據</param>
/// <returns>操作是否成功</returns>
public static bool SetTextToClipboard(string strText)
{
if ( strText != null && strText.Length > 0 )
{
try
{
System.Windows.Forms.DataObject dataObject = new System.Windows.Forms.DataObject();
dataObject.SetData(System.Windows.Forms.DataFormats.UnicodeText , true, strText );
System.Windows.Forms.Clipboard.SetDataObject(dataObject, true);
return true;
}
catch
{
}
}
return false;
}
/**//// <summary>
/// 從操作系統剪切板獲得文本
/// </summary>
/// <returns>獲得的文本,若操作失敗則返回空對象</returns>
public static string GetTextFromClipboard()
{
try
{
System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
if( data.GetDataPresent(System.Windows.Forms.DataFormats.UnicodeText))
{
string strText = ( string) data.GetData( System.Windows.Forms.DataFormats.UnicodeText);
return strText;
}
}
catch
{}
return null;
}