Betrachten Sie dieses kleine Programm:
%Vor%Ich führe es aus, und ich kopiere eine Zeichenfolge aus dem Editor. Aber das Programm bekommt nur eine leere Zeichenfolge aus der Zwischenablage und schreibt "Sie kopiert".
Was ist das Problem hier? Gibt es etwas, das den Zugriff auf die Zwischenablage in einer Konsolenanwendung merkwürdig macht?
Dies ist Windows 7 SP1 x86, .NET 4 Clientprofil.
Ich kann das Problem mit Ihrem Code im .NET 4-Client-Profil reproduzieren, aber wenn ich zu .NET 4 oder 4.5 umschalte, funktioniert es wie erwartet.
Das ClipBoard.GetText()
Handbuch lautet jedoch:
Bestimmen Sie mit der Methode
ContainsText
, ob die Zwischenablage Textdaten enthält, bevor Sie sie mit dieser Methode abrufen.
Ich nehme das als eine Anweisung, nicht als einen Vorschlag, also, versuchen Sie Folgendes:
%Vor%Es zeigt den kopierten Text, obwohl ich sagen muss, dass mein System schrecklich hängt, wenn ich etwas Text kopiere.
Ihr aktueller Code wartet explizit auf die erste Änderung von "xxPlaceholderxx"
auf irgendwas (Ihre Bedingung ist "nicht bestimmte Zeichenkette AND nicht leer", die falsch wird, sobald sich die Zeichenkette von "xxPlaceholderxx"
zu irgendetwas ändert, einschließlich ""
):
Wahrscheinlich möchten Sie ||
(oder) anstelle von und: