2013-02-22 9 views
5

Ich verwende einen Code, um Text einer Anwendung zu erfassen.Kann keinen Text oder Datei in meinem PC einfügen - Clipboard Fehler

Wenn ich die Anwendung starte, kann ich keinen Text und keine Datei in meinen PC kopieren und einfügen. Ich weiß, warum ich diesen Fehler bekomme, weil die Zwischenablage für jede Sekunde gelöscht wird, weil ich den Code in einem loop.Its ein großes Problem für mich und meine Kunden, wenn sie meine Anwendung in ihrem PC verwenden. Ich möchte wissen, können wir eine neue Zwischenablage nur für meine Anwendung verwenden, anstatt meine Desktop-Zwischenablage zu verwenden oder kann jemand meine Lösung für meine Problem.Die Code ich verwende ist

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

Hier einige Bild meines Problems sind

ich kann kopieren, während i m laufen y Anwendung. enter image description here

Aber wenn ich versuche

Paste einzufügen ist hervorzuheben nicht, enter image description here

Es wäre eine große Wertschätzung, wenn mir jemand helfen könnte.

Dank Im Voraus.

+0

Was ist der Fehler, den Sie sehen? – RoelF

+0

es ist kein Fehler.Mein Problem ist, kann ich nicht kopieren und einfügen, weil die Zwischenablage beschäftigt ist, um den anderen Anwendungstext zu erfassen Ich meine, wenn ich versuche, die Paste kopieren und Einfügen ist nicht hervorgehoben. – user1447345

Antwort

0

Ich nehme an, dass Sie mit SendKeys einen Kopiervorgang ausführen, sobald Sie den Fokus auf das Fenster gelegt haben, dessen Text Sie kopieren möchten. (Ihr aktueller Code löscht nur die Zwischenablage, legt nichts darauf oder verwendet deren Daten) Sie könnten versuchen, die Methode zu betrachten, die auf this question verwendet wird. Mit dieser Methode können Sie die Verwendung der Zwischenablage überhaupt überspringen und haben den zusätzlichen Vorteil, dass Sie den Fensterfokus nicht ändern müssen, was für Ihre Endbenutzer genauso problematisch sein könnte wie das ständige Löschen der Zwischenablage. (In diesem Teil wird davon ausgegangen, dass Sie SendKeys verwenden, um die Zwischenablage zu beeinflussen, die nur auf dem aktuell fokussierten Fenster funktioniert)