Laden...

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

Erstellt von Cannon vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.650 Views
C
Cannon Themenstarter:in
282 Beiträge seit 2008
vor 10 Jahren
Zwischenablage mit Sondertasten (TAB) in mehrere Felder einfügen

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?

C
2.121 Beiträge seit 2010
vor 10 Jahren

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".

C
Cannon Themenstarter:in
282 Beiträge seit 2008
vor 10 Jahren

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?

C
2.121 Beiträge seit 2010
vor 10 Jahren

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.

64 Beiträge seit 2012
vor 10 Jahren

Tabs via SendKeys gehen mit {TAB}.

Eine Liste mit allen Steuerzeichen findest du hier (msdn)

-Yeti

++Rekursion ++
(lat. , die) siehe Rekursion