Seite 1 von 2
Fragen zum Mausinput und anderen Sachen.
Verfasst: Dienstag 2. März 2010, 20:12
von Mr.Wolna
Moin.
Ich will jetzt noch ein ganz nüchternen und langsamen Anlauf wagen. Die letzten Tagen habe ich mit diversen Screencasts mein Grundwissen etwas gefestigt. Und nun würde ich gerne etwas Praxis betreiben. Dazu habe ich mir folgendes gedacht, das ich schon lange realisieren wollte. Ich könnte es natürlich ohne großen Stress in AHK coden (denn das ist die Sprache die ich einigermaßen beherrsche), aber ich dachte ich tue es mir an und versuche das in Python zu realisieren und hoffentlich dabei was zu lernen.
Folgendes:
Es soll ein einfaches Ding, in der Art eines Screensavers werden.
Wenn nach einer bestimmten Zeit kein Input folgt (Key, Mouse), dann soll das Programm gestartet werden bzw. eine Aktion im Script gestartet.
Soweit wieder ein Input folgt, muss man ein definiertes Passwort eingeben um den Computer wieder "betreiben" zu können.
Grund ist eigentlich simple, mein PC ist meistens immer an, und ich will nicht, wenn ich nicht da bin das sich jemand anderes daran zu schaffen macht. Ah ja falls man das Programm in Shell (Windows importieren kann, dann kann ja auf den Schritt eins verzichtet werden).
Was ich nun genau von euch brauche liebe Community ist ein genauer Ansatz. Ich weiß nicht wo ich anfangen soll (außer,das ich ne Gui baue).
Ich brauche einfahc nur paar Tipps wie und mit was ich das realisieren kann. Gibt es von Haus aus, die nötigen Befehle. Oder gibt es spezielle Librieries dafür. Ich weiß einfahc nicht WO ich anfangen soll.
MFG,
Mr.Wolna
Verfasst: Dienstag 2. März 2010, 21:11
von Dauerbaustelle
Ich denke, du solltest mit der Inaktivitätserkennung anfangen. Ich nehme an, dass du Windows benutzt. Schau dir doch dazu mal die Windows-API an (Stichwort Win32-API und PyWin32). Auf die Schnelle habe ich zum Beispiel
http://timgolden.me.uk/python/win32_how ... ation.html gefunden.
Verfasst: Dienstag 2. März 2010, 21:17
von Mr.Wolna
danke.
Ich will es aber von Anfang an GANZ simpel halten, heißt ich habe mich jetzt NUR für ein Py Script entschieden. Ohne Shell Implementierung, und arbeite jetzt an der Password Funktion die später in ne GUI eingebettet wird.
Erste Frage, hätte ich auch gleich. Wie macht ma, dass er nach der falschen Eingabe mir noch einmal die Chance gibt eine input zu vollziehen? While Schleife? Return? Return Slef als Funktion???
Code: Alles auswählen
passwort = "TEST"
eingabe = raw_input("Bitte Password eingeben:")
if eingabe == passwort:
print "Richtig"
else:
print "Falsch"
#while eingabe != passwort:
#print "Falsch"
Gruß
Verfasst: Dienstag 2. März 2010, 21:20
von Dauerbaustelle
Code: Alles auswählen
def ask_for_password(password):
while raw_input('Please enter your password') != password:
print 'Wrong password, try again'
Verfasst: Dienstag 2. März 2010, 21:30
von Mr.Wolna
Hm komisch.
Wieso klappt nicht die variable Methode? Siehe meine Ausklammerung? Direkt gehts, aber solange ich das raw input in ne variable stecke gibt er mir dauernd den print raus.
Gruß
edit:
naja egal, damit gehts!
Code: Alles auswählen
passwort = "TEST"
while raw_input("Bitte Password eingeben:") != passwort:
print "Falsch"
else:
print "Richtig"
Jetzt würde ich gerne die Aktionen setzen (GUI kommt zum Schluß):
Gibt es eine Möglichkeit alle input Geräte zu sperren? Also Maus und Tastatur.
MFG?
Verfasst: Dienstag 2. März 2010, 21:33
von DeKugelschieber
oder rekursion
Verfasst: Dienstag 2. März 2010, 21:34
von Dauerbaustelle
Mr.Wolna hat geschrieben:Wieso klappt nicht die variable Methode? Siehe meine Ausklammerung? Direkt gehts, aber solange ich das raw input in ne variable stecke gibt er mir dauernd den print raus.
Waswaswas? Was für einen "print"? Was steckst du wo hin?
Verfasst: Dienstag 2. März 2010, 21:35
von Mr.Wolna
DeKugelschieber hat geschrieben:oder rekursion
Das meinte ich ja mit
Return Slef als Funktion???
^^
edit: ist schon ok, das passt auch so ganz gut, muss a nicht in ner variable sein.

Verfasst: Dienstag 2. März 2010, 21:40
von cofi
Mr.Wolna hat geschrieben:Direkt gehts, aber solange ich das raw input in ne variable stecke gibt er mir dauernd den print raus.
Wenn du sowas wie
Code: Alles auswählen
a = raw_input("pw?")
while a != password:
print "False"
else:
print "Right"
meinst. Ist die Loesung ganz einfach. Wenn du es nicht siehst, frag dich mal, wo sich `a` aendert.
Verfasst: Dienstag 2. März 2010, 21:42
von DeKugelschieber
^^
Verfasst: Dienstag 2. März 2010, 21:58
von Mr.Wolna
jo, jetz seh ichs^^
nochmal zum input sperren? geht es wirklich nur mit dne win32 Modul? gibts alternativen? Geht das nicht direkt in python?
weil ich kriege das nur in Verbindung mit win32, weiß jemand Abhilfe?
http://www.google.de/#hl=de&ei=KnuNS5G2 ... 645cc215d6
MFG
Verfasst: Dienstag 2. März 2010, 22:04
von Dauerbaustelle
Ich hatte dir doch einen Link geschickt, da war das mit einem API-Call erledigt. Du musst doch die Maus und die Tastatur nicht manuell locken.
Wichtiger ist es, überhaupt erst mal *Inaktivität zu erkennen*.
Verfasst: Dienstag 2. März 2010, 22:09
von jbs
Warum nimmst du nicht die Funktion aus Windows, wenn du es produktiv einsetzen möchtest?
Verfasst: Dienstag 2. März 2010, 22:24
von Mr.Wolna
Dauerbaustelle hat geschrieben:Ich hatte dir doch einen Link geschickt, da war das mit einem API-Call erledigt. Du musst doch die Maus und die Tastatur nicht manuell locken.
Wichtiger ist es, überhaupt erst mal *Inaktivität zu erkennen*.
(so you have to Ctrl-Alt-Del to continue using it).
Das ist das gleiche Problem wie bei AHK mit den Lock Input Befehl.
jbs hat geschrieben:Warum nimmst du nicht die Funktion aus Windows, wenn du es produktiv einsetzen möchtest?
Bitte nicht überfordern, ich bin noch neu^^ Was meist du damit? WIN API? Kann man den mit Python Windows direkt ansteuern?
Gruß
Verfasst: Dienstag 2. März 2010, 22:28
von DeKugelschieber
ob man windows direkt ansteuern kann weiß ich (noch) nicht, aber bestimmt. Und mit der Funktion aus Windows meint er das du die Windowssperre benutzen sollst (nehm ich mal an), also nicht die STRG+ALT+ENF, sondern ein aufruf von irgendwas und schon ist gesperrt (keine reaktion mehr auf eingaben usw.).
Verfasst: Dienstag 2. März 2010, 22:30
von Dauerbaustelle
Wie wäre es, wenn du mal unter den vorhin von mir genannten Stichwörtern googelst? PyWin32. Win32-API.
Verfasst: Dienstag 2. März 2010, 23:37
von Mr.Wolna
Das ist es ja, was ich die ganze Zeit frage. Geht es nur mit der WIN API?
Ich würde mir -falls möglich- die Plattforunabhängigkeit bewahren. ;(
(Übrigens ein weiterer Punkt, warum ich mich für Python als Entwicklungsumgebung entschieden habe)
MFG
Verfasst: Dienstag 2. März 2010, 23:49
von Pekh
Solche Sachen gehen nur durch betriebssystemspezifische Funktionen. Plattformunabhängigkeit hat halt auch ihre Grenzen.
Verfasst: Dienstag 2. März 2010, 23:55
von Mr.Wolna
Jut, dann wäre es doch eine Alternative, einfach eine Fullscreen Applikation laufen zu lassen. Also wenn sie jemand versucht zu beenden dann geht das nur mit richtigen Passwort. Eben wie ein Bildschirmschoner.
Hm, ich muss mir das nochmal durch den Kopf lassen, wie ich das alles mache.
Villeicht eine DiaShow. Dafür brauche ich sicher auch externe Module oder?
MFG
edit: Hm, ich brauche aber trotzdem die winapi ,weil ich ja die Inaktivität/Aktivität der input Geräte irgendwie steuern muss. Oder geht es auch anders (programmunabhängig)?
MFG
Verfasst: Dienstag 2. März 2010, 23:58
von Pekh
Ja, ein GUI-Toolkit. Aber wer würde den Benutzer daran hindern, diese Anwendung dann einfach wegzutabben?