Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Zwischenablage mit Sondertasten (TAB) in mehrere Felder einfügen
Cannon
myCSharp.de - Member



Dabei seit:
Beiträge: 282

Themenstarter:

Zwischenablage mit Sondertasten (TAB) in mehrere Felder einfügen

beantworten | zitieren | melden

Ich möchte mittels eigenem Hotkey die Zwischenablage als Tastendruck einfügen. Hintergrund ist der, dass ich ein Webformular habe, was ich mit Zahlen füllen muss. Diese Zahlen habe ich bereits mit Tabulator-Taste getrennt (aus Excel VBA) in die Zwischenablage kopiert. Tabulator, deshalb, um ins nächste Feld zu gelangen.

Allerdings habe ich 2 Methoden probiert, die beide nicht funktionieren:

1. SendInput: Was muss ich bei den TAB-Tasten beachten? Den String aus der Zwischenablage einfach an SendInput zu schicken geht jedenfalls nicht. Im Texteditor geht es. In Excel klappt das schon nicht (alle Werte werden OHNE Tab in eine Zelle gepackt).

2. SendKeys: Klappt auch nicht, da bei dem 2. Aufruf von SendKeys die Funktion einfach nichts ausgibt.

Welche wäre denn eigentlich die Richtige Lösung, um die komplette Zwischenablage, so wie sie ist als Tastendrücke in einem aktiven Fenster/Formular/Anwendung zu simulieren?
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2137

beantworten | zitieren | melden

Demnach ist dein Problem nicht die Zwischenablage oder Sondertaste, sondern das einfügen von Text.

Das sollte schon mit SendKeys funktionieren. Da machst du wohl noch etwas falsch. Mach dir ein ganz simples Beispiel in dem du nur was ausgibt, dann TAB (fürs nächste Feld) und da dann wieder was ausgeben.
Am besten noch ein Sleep dazwischen, damit die Tasten etwas Zeit haben um "anzukommen".
private Nachricht | Beiträge des Benutzers
Cannon
myCSharp.de - Member



Dabei seit:
Beiträge: 282

Themenstarter:

beantworten | zitieren | melden

Naja SendKeys kann doch ganze Strings versenden und mit WaitSendKeys wartet der doch auch noch auf die Rückmeldung ..... wofür wäre dann der Sleep noch notwendig? Kann man den mit SendKeys einfach ein Tab einfügen?
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2137

beantworten | zitieren | melden

Das mit Wait geht natürlich auch. Ich habe sowas schon mal für eine Art Fernsteuerung verwendet, die ein anderes Programm bedient hat. Da war Sleep besser denn dadurch konnte ich längere Pausen einfügen um zu sehen was der Reihe nach passiert.

Klar kann man ein Tab senden. Ich meine das geht sogar direkt mit "\t", oder sieh in der Hilfe nach was es da für eine besondere Schreibweise gibt.
Falls das nicht funktioniert, gib die Zeichen in einzelnen Aufrufen aus anstatt den ganzen String auf einmal.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von chilic am .
private Nachricht | Beiträge des Benutzers
EifelYeti
myCSharp.de - Member

Avatar #avatar-3408.jpeg


Dabei seit:
Beiträge: 66
Herkunft: Eifel

beantworten | zitieren | melden

Tabs via SendKeys gehen mit {TAB}.

Eine Liste mit allen Steuerzeichen findest du hier (msdn)

-Yeti
Rekursion
(lat. , die) siehe Rekursion
private Nachricht | Beiträge des Benutzers