TC3 HMI: Tastendruck über Button simulieren

PatrickSt

Level-2
Beiträge
7
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich wollte mal fragen, ob von euch jemand für die TC3 HMI (TE2000) eine Lösung hat, einen Tastendruck zu simulieren.

Konkret geht es mir vor allem um den "Windows"-Key und "PrintScreen"
Anwendung: Nutzer (mit genügend Rechten) soll ohne echte Tastatur aus dem Vollbildmodus des Browsers herauskommen, bzw. mit dem "PrintScreen" wird automatisch ein Screenshot erstellt und gespeichert (diese Funktion wird dann von Greenshot übernommen, das muss aber erst mal getriggert werden).

Oder wie setzt ihr solche Tasks bei euch in der HMI um?

Ich habe schon ein bisschen gegoogelt, koome aber dank unzureichenden JavaScript-Kenntnissen nicht weiter.
Laut dieser Seite ( https://medium.com/coding-beauty/javascript-simulate-keypress-9fcd5a31ff20 ) müsste es ja so irgendwie gehen:
function simulateKeyPress(key) {
const event = new KeyboardEvent('keydown', { key });
textField.dispatchEvent(event);
}
Aber wie löse ich das Event aus? Ich will es ja nicht unbedingt auf ein Textfeld anwenden, sondern "global"

Vielen Dank schon mal
 
Falls jemand das gleiche Problem hat:

Ich hab es jetzt auf anderem weg gelöst:
In der HMI wird über einen Button eine SPS-Variable getriggert, die ruft dann in der SPS einen "NT_StartProcess"-Baustein auf. Und der startet dann das Programm boxcutter

Code:
NT_takeScreenshot(
    NETID:= '',
    PATHSTR:= 'C:\batchFiles\boxcutter-1.5/boxcutter.exe',
    DIRNAME:= 'C:\batchFiles\boxcutter-1.5',
    COMNDLINE:= '-f C:\Users\Administrator\Pictures\test2.png',
    START:= takeScreenshot,
    TMOUT:= Tmout,
    BUSY=> NT_StartProcess_Busy,
    ERR=> NT_StartProcess_Err,
    ERRID=> NT_StartProcess_ErrId);
takeScreenshot:=FALSE;

Boxcutter hat den Vorteil, dass es komplett über die Kommandozeile bedient werden kann, ohne dass sich irgendwelche Fenster öffnen wollen.
Und man kann über den Dateinamen, den man dem Programm mitgibt (z.B. aktuelle HMI-Seite und datumsstempel) auch über die Kommandozeile vorgeben
 
Zuletzt bearbeitet:
Zurück
Oben