2 Stimmen

Kopieren und Einfügen von Text aus einer beliebigen Windows-Anwendung (zweite Zwischenablage)

Ich habe eine Windows-Desktop-Anwendung in c# (WPF), die im Grunde eine Problem-Management-Anwendung für ein Call-Center ist. Es verwaltet (fügt hinzu, bearbeitet, löscht,...) Kundenprobleme (Datensätze in der Datenbank), wo jedes Problem zahlreiche Felder (Textfelder, Textareas, Checkboxen,...) hat. Während die Anfrage erstellt wird, kopiert ein Benutzer oft Daten aus anderen Ressourcen in diese und andere Anwendungen (Excel, Notepad, Browser...) und hat eine Windows-Zwischenablage voller wertvoller Daten.

Das Problem, das ich nicht zu lösen weiß, ist: Ein Benutzer wählt einen zufälligen Text in einem beliebigen Textfeld (z.B. Textbox) in diesem Programm aus und kopiert die Daten. Aber diese Daten können nicht in die klassische Windows-Zwischenablage kopiert werden

Clipboard.SetText(Textbox1.Text);

denn die Zwischenablage enthält bereits wertvolle Daten, die nicht verloren gehen dürfen. Also würde ich gerne eine zweite Zwischenablage erstellen, die auf alle Tastatureingaben hört. Und immer wenn eine bestimmte Tastenkombination gedrückt wird, liest es den ausgewählten Text (nur Text wird benötigt), aus jeder Anwendung (Notepad, Excel, mein Programm,...). Mit einer weiteren Tastenkombination wird der kopierte Text in eine beliebige Anwendung (Notepad, Excel,...) eingefügt.

Windows verfügt bereits über diese Funktion mit den Tastenkombinationen CTRL+C und CTRL+V, die in jeder Anwendung funktionieren, die diese Tastenkombinationen nicht außer Kraft setzt. Ich möchte das Gleiche für meine benutzerdefinierte Zwischenablage-Anwendung / Dienst, mit verschiedenen Tastenkombinationen. Aber ich weiß nicht, wie ich die Daten in ein Textfeld in einer beliebigen Windows-Anwendung einfügen kann. Kurz gesagt, ich bräuchte etwas wie:

string clipboardData;

public void OnSpecialCopyShortcutPressed() {
  clipboardData = SelectedTextAnywhereInWindowsOrAnyWindowsApp.Text;
}

public void OnSpecialPasteShortcutPressed() {
  focusedTextFieldAnywhereInWindowsOrAnyWindowsApp.Text = clipboardData;
}

Im Grunde möchte ich zwei Windows-Zwischenablagen haben.

Jeder Hinweis wäre großartig. Ich danke Ihnen.

--- bearbeiten ---

hier die Lösung für die Verbindung mit den gedrückten Tasten gefunden globaler Tastaturhaken Ich suche immer noch nach einer Möglichkeit, eine Verbindung zu aktiven Anwendungen und ausgewähltem Text zum Kopieren und fokussierten Steuerelementen zum Einfügen von kopiertem Text herzustellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X