现在的位置: 首页 > 综合 > 正文

.net C# 操作系统剪切板处理模块

2013年09月14日 ⁄ 综合 ⁄ 共 3540字 ⁄ 字号 评论关闭

public static bool SetTextToClipboard(string strText)

        {

            if (strText != null && strText.Length > 0)

            {

                try

                {

                    Clipboard.SetDataObject(strText, true);

                    return true;

                }

                catch (Exception e)

                {

                    MessageBox.Show("失败:" + strText + ":" + e.Message);

                }

            }

            return false;

        }

        /// <summary>

        /// 从操作系统剪切板获得文本

        /// </summary>

        /// <returns>获得的文本,若操作失败则返回空对象</returns>

        public static string GetTextFromClipboard()

        {

            try

            {

                return Clipboard.GetData(DataFormats.Text).ToString();

 

            }

            catch

            { }

            return null;

        }

 

/// <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;
        }


//参见:http://dev.csdn.net/article/65/65803.shtm
 

抱歉!评论已关闭.