ClipboardReader:
Da ich in mehreren Projekten von mir die Technik genutzt habe, Daten aus dem Clipboard zu lesen, habe ich vor einiger Zeit mal einen ClipBoardReader geschrieben.
Einführung:
Ich beziehe mich in der Erklärung auf folgenden Beispielcode:
private ClipboardReader reader;
//init the reader
reader = new ClipboardReader();
//store some regEx to the reader
reader.Add("http://www\\.youtube\\.com/watch\\?v=[a-zA-Z0-9-_]{11}");
reader.Add("gr[ae]y");
//register the eventhandler
reader.ResultFound += reader_ResultFound;
//start the reader
Thread thread = new Thread(reader.Run);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
Nach der Initialisierung des Readers ist es möglich mit der Methode Add() reguläre Ausdrücke in Stringform hinzuzufügen. Im Beispiel wird zum Einen die Erkennung von Youtube- URLs und zum Anderen die Erkennung des Wortes gray oder grey hinzugefügt.
Das Event ResultFound muss abonniert werden. Über dieses werden die Ergebnisse ausgegeben.
Zuletzt kann man die Run()- Methode des Readers in einem Thread ausführen.
Laufzeitverhalten:
Wenn die Methode Run() läuft, wird in einem bestimmten Intervall (lässt sich einstellen, Standard ist 200ms) das Clipboard nach Texten geprüft, die den übergebenen Regular Expressions entsprechen.
Sobald ein solcher Text gefunden wird, wird das ResultFound- Event ausgelöst. in den EventArgs befindet sich dann eine Liste mit gefundenen Einträgen.
Zu beachten:
Einsatzbeispiele:
Ich benutze in meinen Projekten diese Komponente um dem User die Eingaben zu erleichtern.
Lizenz:
Die Komponente kann in ihrer hier bereitgestellten Form in kommerziellen wie auch nonkommerziellen Projekten eingesetzt werden. Es steht euch frei, sie zu verändern. Auf gutdeutsch: Macht was ihr wollt damit.
Es wäre natürlich schön, hin und wieder zu erfahren, ob und wo ihr den Reader eingesetzt habt.
Über Feedback werde ich mich sicherlich nicht beklagen.
Viel Spaß bei der Nutzung,
MOnsDaR
Clipboard Zwischenablage ClipboardReader Reader Regex Regular Expression
Meine Projekte:
ClipboardReader
MusicMasher (auf Eis gelegt)
PAMTracker 4.02
Das sieht sehr Gut aus, wirklich. Ich hab nur eine Sache zum meckern. ICh würde das STarten des Threads in der Run Methode vornehmen. so kann man das noch leichter benutzen.
Gruß pdelvo
Das habe ich auch schon überlegt. Weiterhin wäre es etwas leichter zu bedienen, wenn man dann eine Stop()- Methode hätte und Running private wäre.
So könnte man via Start() und Stop() alles regeln.
Habe zur Zeit leider einiges um die Ohren, werde mich dem aber annehmen, sobald etwas mehr Zeit zur Verfügung steht.
Meine Projekte:
ClipboardReader
MusicMasher (auf Eis gelegt)
PAMTracker 4.02
hi
ich hab ein problem mit add()
ich versteh das mit {11} nicht kannste das mal erklären?
Hallo SpyderZ3r0,
Nach der Initialisierung des Readers ist es möglich mit der Methode Add() reguläre Ausdrücke in Stringform hinzuzufügen
Das "{11}" gehört zum Pattern - siehe [Artikel] Regex-Tutorial
Hi,
ich bin gerade auf den Artikel gestoßen und wollte noch einen Verbesserungsvorschlag einbringen.
Wenn die Methode Run() läuft, wird in einem bestimmten Intervall (lässt sich einstellen, Standard ist 200ms) das Clipboard nach Texten geprüft, die den übergebenen Regular Expressions entsprechen.
Das Polling des Clipboards ist irgendwie unschön.
Das Modul sollte sich lieber als ClipboardViewer registrieren.
Das wäre eleganter.
Und eine mögliche Problematik, dass jemand ein ganz flinker CopyPaster ist und die Polling-Zeit zu grob ist, wäre damit auch gegessen.
Erfordert zwar etwas Interop mit der nativen WinAPI, der sich aber lohnt.
beste Grüße
zommi