wiesi200
Goto Top

Auto Logout C Sharp

Hallo,

aktuell arbeite ich an einem kleinen Programm das mir für ein Kanban Lager Artikelanforderungen in unserem ERP System erstellt.

Gedacht habe ich es mir so das dieses Programm den ganzen Tag im Hintergrund läuft und wenn jemand einen Personalausweiß an einen RFID Scanner hält geht der Focus auf dieses Programm und man kann per Barcode den anzufordernden Artikel einscannen oder per Tastatur eingeben.

Jetzt hätte ich gerne das wenn man eine gewisse Zeit lang nichts in dieses Programm eingibt, sich automatisch von diesem Programm abmeldet und es wieder im Hintergrund verschwindet.

Jetzt ist für mich die Frage wie man am besten feststellen kann das in diesem Programm gearbeitet wird, ob andere aktiv genutzt werden ist mir egal.

Ich wollte jetzt nicht grade einen Timer Starten und den bei jeder Eingabe wieder zurücksetzten.

Gibt's dafür eine elegantere Möglichkeit?

Schon einmal vielen Dank für die Hilfe.

Content-ID: 189881

Url: https://administrator.de/contentid/189881

Ausgedruckt am: 24.11.2024 um 00:11 Uhr

MonoTone
MonoTone 21.08.2012 um 09:41:47 Uhr
Goto Top
Hi wiesi200

die Frage ist, was bedeutet exakt: "das in diesem Programm gearbeitet wird".
Welche Kriterien entsprechen dann, nicht mehr im Programm arbeiten.

Arbeitet jemand, wenn er sich das Programm nur anschaut?
Arbeitet jemand nicht mehr, wenn das Fenster den Fokus verliert?

Es gibt auf jedenfall kein NotWorkingEvent.

In meinen Augen gibt es 3 Möglichkeiten.
Entweder du verwendest Events wie LostFocus.
Oder du verwendest einen Timer.
Oder aber du lässt dies den User entscheiden.
Das heisst, sobald der User auf minimieren drückt, verschwindet das Programm in den Hintergrund.
Letzteres scheint mir die bewährteste Methode zu sein face-smile

Gruss Mono
wiesi200
wiesi200 21.08.2012 um 10:42:02 Uhr
Goto Top
schon einmal Danke

Für mich währe hier nicht arbeiten, wenn über einen gewissen Zeitraum keine eingaben mehr gemacht werden.
Da sich das Programm automatisch nach der Abmeldung minimieren soll scheidet das mit dem minimieren eigentlich aus.

"LostFocus" ist auch nicht das wahre, da es leicht sein kann das jemand ein paar Eingaben macht und dann einfach aufsteht und dann nen halben Tag nicht mehr am PC sitzt. Hier will ich einfach nicht das der User angemeldet bleibt und jemand in seinen Namen Teile in der Fertigung beauftragt.

Timer müsste ich ja eigentlich immer verwenden, nur die Frage ist wann ich ihn wieder zurücksetze.

Werde das vermutlich nach jeder Buchung machen müssen. Hier könnte es zwar sein das man wenn die Artikelnummer per Hand eingegeben wird Abgemeldet wird, gut es ist eigentlich sehr unwahrscheinlich.
Jeden "Key Down" Event wollte ich aber eigentlich auch nicht überwachen.

Vielleicht fällt ja noch jemanden was schöneres ein.
MonoTone
MonoTone 21.08.2012 um 10:56:42 Uhr
Goto Top
Da sich das Programm automatisch nach der Abmeldung minimieren soll scheidet das mit dem minimieren eigentlich aus.

Nach der Abmeldung?
Warum nicht automatisch abmelden, wenn es minimiert wird?

Als Event für den Timer, falls du diesen verwendest würde ich eventuell das TextChangedEvent der TextControls verwenden.
Ausserdem gibt es noch ein globales Application.Idle Event.
Ich weiss nicht, ob dies für dich zutrifft.
Dieses wird immer gefeuert, wenn das Programm beginnt zu idlen^^
wiesi200
wiesi200 21.08.2012 um 11:08:03 Uhr
Goto Top
Zitat von @MonoTone:
Da sich das Programm automatisch nach der Abmeldung minimieren soll scheidet das mit dem minimieren eigentlich aus.

Nach der Abmeldung?
Warum nicht automatisch abmelden, wenn es minimiert wird?

Das waehre so wie der Hund der seinen eigenen Schwanz jagt. Wie wird es dann minimiert, der User wird nicht tun.

Als Event für den Timer, falls du diesen verwendest würde ich eventuell das TextChangedEvent der TextControls
verwenden.
Ausserdem gibt es noch ein globales Application.Idle Event.
Ich weiss nicht, ob dies für dich zutrifft.
Dieses wird immer gefeuert, wenn das Programm beginnt zu idlen^^

Application Idle hört sich schon mal gut an. Schau ich an. Vielen Dank