Im Hintergrund kopieren
Richtig, es ist nichts weiter als ein kleines Script welches, Tastatureingaben im Hintergrund in den Zwischenspeicher kopiert um sie dann an anderer Stelle einzufügen.
Es ist leider noch immer unklar was du erreichen möchtest. Du willst in der Konsole "arbeiten" ? und dann wenn du irgendwann ein Passwort eintippst soll das in den Zwischenspeicher kopiert werden, von wo es dann innerhalb von 45 Sekunden noch verfügbar ist.
Wie soll das Programm zwischen normalem Arbeiten in der Konsole und Passworteintippen unterscheiden? Wo werden die Passwörter denn eingetippt? In ein Browserformular?
Vielleicht brauchst du einen intelligenten Keylogger?
Sicher ein interessantes Hobbyprojekt, und ich würd mich da auch gerne mal tiefer reindenken, aber leider sind für mich jedenfalls immer noch zu viele Fragen offen.
Ich versuche es mal dann genauer zu erklären.
Ich habe mit Argpaprse Befehle erstellt, die ich im Terminal dann benutzen kann. Die Befehle sind zum Beispiel add, display, delete.
Die Argumente sind dann Username und Passwort. Im Terminal schreibe ich dann zum Beispiel:
python3 Passwortmanager.py add --username usernamebeispiel1 --passwort Passwortbeispiel1. Demnach sollen dann das Username und das Passwort zunächst in einer Textdatei gespeichert werden. Das habe ich schon hinbekommen. Aber dazu soll eben nur das Passwort in der Zwischenablage für 45 Sekunden gespeichert werden.
Der Benutzer soll aber nicht die 45 Sekunden im Terminal abwarten. Es könnte ja auch sein, dass er in den 45 Sekunden einen anderen Befehl wie display benutzen möchte. Das kopieren des Passworts soll im Hintergrund passieren. Der Benutzer soll nichts davon mitbekommen. Auch wenn die Zwischenablage wieder geleert wird, soll er nichts mitbekommen. Es soll einfach im Hintergrund passieren.
Ich habe mit Argpaprse Befehle erstellt, die ich im Terminal dann benutzen kann. Die Befehle sind zum Beispiel add, display, delete.
Die Argumente sind dann Username und Passwort. Im Terminal schreibe ich dann zum Beispiel:
python3 Passwortmanager.py add --username usernamebeispiel1 --passwort Passwortbeispiel1. Demnach sollen dann das Username und das Passwort zunächst in einer Textdatei gespeichert werden. Das habe ich schon hinbekommen. Aber dazu soll eben nur das Passwort in der Zwischenablage für 45 Sekunden gespeichert werden.
Der Benutzer soll aber nicht die 45 Sekunden im Terminal abwarten. Es könnte ja auch sein, dass er in den 45 Sekunden einen anderen Befehl wie display benutzen möchte. Das kopieren des Passworts soll im Hintergrund passieren. Der Benutzer soll nichts davon mitbekommen. Auch wenn die Zwischenablage wieder geleert wird, soll er nichts mitbekommen. Es soll einfach im Hintergrund passieren.
Hättest Du das gleich gesagt, dann hätte man Dir auch gleich die passende Lösung bieten können:
Code: Alles auswählen
import os
import time
import pyperclip
def main():
password = "geheim"
pyperclip.copy(password)
if os.fork() == 0:
time.sleep(45)
if pyperclip.paste() == password:
pyperclip.copy(' ')
if __name__ == "__main__":
main()
- __blackjack__
- User
- Beiträge: 13061
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Sirius3: Naja, das ist eine Lösung auf Betriebssystemen wo es `os.fork()` gibt. Und falls innerhalb der 45 Sekunden das gleiche noch mal gestartet wird, dann lungert da immer noch dieser Prozess der die Zwischenablage leert herum, den man dann eigentlich canceln wollen würde.
@Mou10: Insbesondere dieses Problem ist nicht so leicht zu lösen wenn man kein durchgehend laufendes Programm hat, sondern für jede Aktion einen neuen Prozess startet.
Anmerkungen zu den Argumenten: Benutzername und Passwort bei ``add`` sollten keine Optionen sein, denn die sind in dem Fall ja gar nicht optional. Das wäre also eher ``./Passwortmanager.py add usernamebeispiel1 Passwortbeispiel1``.
@Mou10: Insbesondere dieses Problem ist nicht so leicht zu lösen wenn man kein durchgehend laufendes Programm hat, sondern für jede Aktion einen neuen Prozess startet.
Anmerkungen zu den Argumenten: Benutzername und Passwort bei ``add`` sollten keine Optionen sein, denn die sind in dem Fall ja gar nicht optional. Das wäre also eher ``./Passwortmanager.py add usernamebeispiel1 Passwortbeispiel1``.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
@Sirius3: Danke.... es passiert jedenfalls genau das, was ich mir vorgestellt habe. Könntest du mir noch erklären was da genau jetzt passiert? Was passiert denn durch das os.fork()? Im Prinzip hatte ich das gleiche gemacht. Aber immer wenn time.sleep benutzt wurde, ist der Terminal irgendwie eingefroren. Wieso passiert es jetzt nicht? Und alles passiert im Hintergrund?
@__blackjack__: Danke daran hatte ich überhaupt nicht gedacht..... ich werde die Argumente anpassen.
@__blackjack__: Danke daran hatte ich überhaupt nicht gedacht..... ich werde die Argumente anpassen.
- __blackjack__
- User
- Beiträge: 13061
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@__deets__: Die Anforderung ist ``program.py add user password`` einzugeben und das Programm soll dann a) sofort enden um wieder mit dem Terminal arbeiten zu können *und* nach x Sekunden die Zwischenablage leeren. Es soll *nicht* x Sekunden laufen und das Terminal blockieren.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman