Hey
Also ich hatte die Idee, mit der Maus markierten Text automatisch in die Zwischenablage zu schreiben, ohne erst strg+c betätigen zu müssen. Dieser Text befindet sich in fremden Anwendungen, wie z.b. dem Firefox.
Normalerweiße geht man manuell ja so vor: man markiert den Text mit dem Cursor und zieht dann bei gedrückter Maustaste die Markierung. Dann lässt man die Maustaste los (wichtig für nacher) und drückt strg+c.
Nun habe ich herausgefunden, wie man mit global hooks feststellen kann, wann die Maustaste losgelassen wurde. Die Idee: das Loslassen der Maustaste soll ein Ereignis auslösen, welchen den markierten Text dann ins Clipboard kopiert. Ergo: das Drücken von strg+c simulieren.
Das sieht dann so aus:
public void MouseUpEvent(object sender, MouseEventArgs e)
{
SendKeys.Send("^(C)");
}
Ich habe den Text also markiert, lasse die Taste los und strg+c zum kopieren wird gesendet. Naja das ist halt die Theorie, denn in Wirklichkeit verändert sich im Clipboard leider garnichts...
Das Event an sich funktioniert allerdings schon. Ich habe statt "^(C)" auch schon anderen Code reingeschrieben, welcher ausgeführt wird, z.b. F5, dann wird das Firefoxfenster aktualisiert.
Vielleicht habt ihr irgendwelche Ideen, an was es liegen könnte?
hallo conroe,
ich sehe zwar nicht den sinn dahinter, aber wers einfach haben will -> ok! 😉
aber was machst du zB wenn du einen Ordner/Datei im Explorer per Drag&Drop verschiebst, oder ein Icon auf deinem Desktop ??
Dann wird dein code doch genauso ausgelöst, oder stört dich das nicht weiter ? (kann ja auch sein 😉 )
nils
Hi Nils,
das ganze sollte natürlich nicht permanent aktiviert sein, sondern nur Redaktionsarbeit erleichtern (ständig strg+c löst irgendwann nen Krampf aus 😉 ). Das ganze war aber eh nur als Spielerei gedacht, Hauptgrund war die Weiterverarbeitung des kopierten Textes (automatisches Abspeichern des Kopierten im Hintergrund).
Erstgenannte Spielerei scheiterte aber wohl an einem Focusproblem, das ich nich in den Griff bekomme und nun halt doch weiter mit strg+c arbeite (wenigstens wird die Abspeicherung ausgelöst 😉 ).
Hallo conroe,
nimm doch
Clipboard.SetText(text1);
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3