Mit Powershell ISE Tasten drücken?

1 Antwort

Ob Powershell oder dessen Entwicklungsumgebung ISE...

Add-Type -a System.Windows.Forms
Add-Type -a Microsoft.VisualBasic
  #starte  Notepad
Notepad
  #lass es sich erstmal etablieren
sleep -m 500
  #bring das Fenster mit der gewünschten Fensterüberschrift  in den Vordergrund.
[Microsoft.VisualBasic.Interaction]::AppActivate('Unbenannt - Editor')
  #Sende  die  gewünschten Tasten
[System.Windows.Forms.SendKeys]::SendWait('Ich  bin ein Tab:{TAB}.')
pause

Ich kann Dir jedoch recht wenig Hoffnung machen einen Tab in einem Browser AppActivate in den Vordergrund zu holen.

Du kannst eine Seite im Browser neu öffnen und hoffen, das keine andere Anwendung ihr den Focus wieder wegnimmt bevor Du die Tasten gesendet hast. sendkey/sendwait ist es egal, wer die Tastendrücke entgegennimmt...

Add-Type -a System.Windows.Forms
start 'https://www.google.com/'
sleep -m 1000
[System.Windows.Forms.SendKeys]::SendWait('Operator from Hell{Enter}')
pause

Glossar:

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

3L145 
Fragesteller
 23.02.2021, 11:09

Das ist ist nicht das was ich meinte aber trotzdem Danke, mir ging es darum mit powershell die Taste Tab zu drücken also auf der tastatur.

0
Erzesel  23.02.2021, 13:18
@3L145
powershell die Taste Tab zu drücken also auf der tastatur...

Powershell hat keine Hande und auch sonst keinen physischen Kontakt zur Tastatur.

Es kann lediglich ein Tastaturereignis an das System senden .Und das tut mein Script ja.

Ich gehe gewöhnlich davon aus, das jemand der sich (auch als Anfänger) mit Programmierung beschäftigt, sich zumindest das nötige selbstständig zusammenreimen kann. Immerhin hatte ich im ersten Script unter Anderem auch ein {Tab} gesendet.

Zudem stehen auf der letzten im Glossar verlinkten Seite alle Bezeichner für die Tasten.

Insofern kann ich nicht verstehen, wo Dein Problem liegt... (mal abgesehen von dem Ding zwischen den Ohren....)

Add-Type -a System.Windows.Forms
start 'https://www.google.com/'
sleep -m 1000
[System.Windows.Forms.SendKeys]::SendWait('{TAB}')

Natürlich umgeht ein echter Programmierer die ganze Wurstelei mit der Benutzeroberfläche der Webseite und sendet einen Request mit den erforderlichen Daten an den Server statt irgendwelche Tastendrücke zu simulieren .

Genau das passiert nämlich im Hintergrund, wenn Du irgendwas auf einer Webseite tust.

Gib nicht Leuten die Schuld, welche schon 35 Jahre Erfahrung haben, sondern frag Dich selbst wenn etwas nicht wie gewünscht läuft, was da wohl schief läuft.

Programmieren bedeutet im billigsten Fall, eine Vorgegebene Vorlage den eigenen Wünschen anzupassen.

1
Etter  23.02.2021, 13:39
@3L145

Beschreib doch einmal ganz genau was du warum vorhast. Vielleicht kann man dir dann irgendwie weiterhelfen, wobei ich bei einem physischen Tastendruck eher zu einem Raspberry Pi oder Arduino mit einer kleinen Motorsteuerung oder einer Mikrohydraulik raten würde (wieso auch immer).

1