GOOGLE ADS

Montag, 11. April 2022

Elektronenpastenwert aus der Zwischenablage

Ich spiele mit einer kleinen Elektron-App, um eine einfache Methode zum Kopieren / Einfügen zu erstellen.

Ich habe einen Hotkey registriert mit globalShortcut:

globalShortcut.register(mod + '+' + key, () => { 
clipboard.writeText(content);
// Paste content to any input field/app
});

Ist es möglich, jetzt zum Notizblock zu gehen und den registrierten Modifikator zu drücken, um den Inhalt einzufügen?

Beispiel:
App lädt, registriert eine Verknüpfung, die die Zwischenablage mit ihrem gewünschten Text belegt.

Sie gehen dann zu einem Formular, in das sie diesen Inhalt einfügen möchten, und drücken ihre Taste, die ihn für sie einfügt?

Dies ist im Wesentlichen eine Möglichkeit für Mitarbeiter, gemeinsame Tastenkombinationen / Textausschnitte mit beliebigen Tastenkombinationen einzurichten. Wenn sie also den Bericht 123 ausfüllen, können sie einfach ihre Taste „Strg + Umschalt + R" drücken, wodurch der Inhalt eingefügt wird, den sie mit diesem Hotkey verknüpft haben.

Wie kann ich das tun oder ein Strg-V simulieren, um es auszulösen?

Ich habe sowohl RobotJS (unterstützt keine globalen Verknüpfungen) als auch eine Java-Version (ohnehin bevorzugt) ausprobiert.


Lösung des Problems

Bei mir hat es mit folgendem Code funktioniert:

const { app, globalShortcut } = require('electron')
const robot = require('robotjs')
app.on('ready', () => {
globalShortcut.register('Control+Shift+R', () => {
console.log('Control+Shift+R is pressed')
// simulate CTRL+V / CMD+V
setTimeout(() => {
robot.keyTap('v', process.platform==='darwin'? 'command': 'control')
}, 150)
})
})
app.on('will-quit', () => {
globalShortcut.unregisterAll()
})

Der „Trick" hier besteht darin, den simulierten Tastendruck um ein bestimmtes Intervall zu verzögern, um den tatsächlichen, physischen Tastendruck und den simulierten zu entwirren. Bei kürzeren Intervallen sah ich oft ein "v" erscheinen.

Sie müssen sich entscheiden, ob Sie sich für eine längere Verzögerung (weniger benutzerfreundlich wegen langem „Warten", aber unwahrscheinlich, dass Tasten verwechselt werden) oder eine kürzere Verzögerung entscheiden (sofortige Antwort, eher ein falsches Ergebnis aufgrund einer Tastendruckverwechslung). ).

Wenn wir über sehr repetitive Arbeiten oder große Textblöcke sprechen, wird dies wahrscheinlich immer noch eine Zeitersparnis sein.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...