2013-02-22 10 views
5

私はアプリケーションのテキストをキャプチャするためにコードを使用しています。私のPCにテキストまたはファイルを貼り付けることができません - クリップボードエラー

アプリケーションを起動すると、pc.Iのテキストまたはファイルをコピーして貼り付けることができません。なぜこのエラーが発生するのですか。なぜなら、クリップボードは1秒おきにクリアされるからです。私のアプリケーションを自分のpc.で使用している場合、私と私のクライアントにとって大きな問題です。デスクトップクリップボードを使用するのではなく、私のアプリケーションの使用のためだけに新しいクリップボードを作成できますか?私が使用していますproblem.Theコードはここ

 try 
     { 
      IEnumerator enumerator; 
      MainModule.StrData = ""; 
      try 
      { 
       enumerator = this.chkListbox_odin1.CheckedIndices.GetEnumerator(); 
       IntPtr parentWnd = FindWindow((null), cboWindows.Text); 
       IntPtr mdiClientWnd = FindWindowEx(parentWnd, IntPtr.Zero, "MDIClient", ""); 
       IntPtr marketwatchWnd = FindWindowEx(mdiClientWnd, IntPtr.Zero, null, windowname); 
       while (enumerator.MoveNext()) 
       { 
        object objectValue = enumerator.Current; 
        this.WindowText(marketwatchWnd); 
       } 
       // System.Windows.Forms.SendKeys.SendWait("{ESC}"); 
       // Application.DoEvents(); 
      } 
      finally 
      { 

      } 
      Clipboard.Clear(); 
     } 
     catch (Exception exception1) 
     { 
      // MessageBox.Show(exception1.Message); 
     } 

である私の問題

のいくつかの画像は、iがmを実行している間、私はコピーすることができますyアプリケーション。誰かが私を助けることができれば enter image description here

しかし、私は

貼り付けを貼り付けしようとすると、ハイライト表示されていない、 enter image description here

は大きな感謝をがあるでしょう。

ありがとうございました。

+0

あなたは何を見ていますか? – RoelF

+0

それはerror.myの問題ではありません。なぜなら、クリップボードが別のアプリケーションテキストをキャプチャするのに忙しいからです。なぜなら、私がペーストmenustripをコピーして貼り付けようとしているときに強調表示されていないからです。 – user1447345

答えて

0

テキストをコピーしようとしているウィンドウを見つけたりフォーカスを持ったりしたら、コピー操作を実行するためにSendKeysを使用していると仮定します。 (あなたの現在のコードはクリップボードのみをクリアし、何も置いたりデータを使用しない)this questionで使用されているメソッドを調べてみるとよいでしょう。この方法では、クリップボードを使用せずにスキップすることができます。また、ウィンドウのフォーカスを変更する必要がないという利点もあります。これは、クリップボードを常にクリアするなど、エンドユーザーにとっては問題になりません。 (この部分はあなたがSendKeysを使用してクリップボードに影響を与えることを前提としていますが、私が信じている現在フォーカスされているウィンドウでのみ機能します)

関連する問題