Application Shut Down.

Status
Nicht offen für weitere Antworten.
H

Hadi

Gast
Hey Leute,
ich benutze das Forum zum ersten mal, also mal sehen wie die Reaktionszeiten so sind :wink:

Also ich habe ein kleines Programm das im Hintergrund läuft und mit zwei Parametern aufgerufen wird. Der erste gibt an wieviel Minuten der Benutzer (2. Parameter) an dem Rechner sitzen darf (ich will nicht das meine Kiddis ewig am Rechner hocken). Soweit funzt schon alles. Jetzt gibt es nur ein Problem. Wie bekomme ich mit das sich der Benutzer abgemeldet hat und somit das Programm beendet wurde? Gibt es Eventlistener die ich übersehen habe wie z.B. AppShutDownListener oder so? Oder gibt es in Java diese Möglichkeit gar nicht. (es ist KEINE Window Applikation, wie gesagt läuft im Hintergrund)

Ich hoffe jemand weiss abhilfe... :idea:

Gruß
 
S

SebiB90

Top Contributor
du musst ein dos programm oder wie dat heißt auf rufen
in der dos box muss man
shutdown -l
eingeben um benutzer abzumelden
shutdown -s
um herunter zu fahren
das muss du dann so in java aufrufen
Code:
Runtime.getRuntime().exec( "cmd shutdown -l" );

edit: ich glaub ich hab da was falsch verstanden :oops:
 
thE_29

thE_29

Top Contributor
Also du hast das mal als Service gestartet (schätz ich mal, sonst würds ja net laufen)

Und ich glaube kaum das Java so einen Listener hat, also müsstest du das entweder mit JNI - C++ lösen (aber net mal ich weiß was da geschickt wird, wenn man sich abmeldet) oder schau im inet herum, ob nicht irgendwo tmp Dateien oder flag Dateien angelegt werden, die so heißen wie der Benutzer!

Oder, du könntest immer in einem Timer abfragen wie der zz Benutzer heißt, und wenn du nix zurückbekommst (also abgemeldet) dann hat er sich abgemeldet, aber ob das geht ist halt ne andere Frage ;)


Achja, wie hast du das Programm eigentlich gestartet?? Als exe oder jar Datei?

Nachtrag:mad:sebi, aufgabenstellung durchlesen :) er will wieder wenn abmelden noch herunterfahren ;)
 
H

Hadi

Gast
Erstmal vielen Dank Euchen beiden (das mit dem abmelden wusste ich auch noch nicht)!

Starten tue ich das ganze mit einem Link in der Autostartgruppe, wobei es echt ein winzig kleines Programm ist. Den Benutzernamen übergebe ich selbständig, muss ich also nicht auslesen. Leider gibt es in Java keine Destruktoren, also gibt es wohl auch keine Möglichkeit mitzubekommen, ob mein Programm beendet wird (vom System durch das abmelden) ...

@thE_29 Aufruf:
Link in der Autostartgruppe: z.B. C:\Documents and Settings\User\Start Menu\Programs\Startup
D:\jdk1.5.0_01\bin\javaw.exe -classpath c:\system cpuusertime.Main 60 User

Gruß
 
B

bygones

Gast
ich glaub ich versteh nicht so ganz was du machen willst.

das Programm startet wenn sich ein user anmeldet... wenn er sich abmeldet wird das Programm beendet. wenn ein andere user sich anmeldet startet das programm wieder (oder ???)

also hat jeder neuer User ein neuen Programmstart....
 
thE_29

thE_29

Top Contributor
Jo, nur wenn er sich abmeldet, müsste er die Zeitabrechnung abschalten, sonst rechnet der solange mit, bis sich ein nächster anmeldet!!


Aber du kannst das Problem so umgehen, das du jede Sekunde abrechnest (also in ein File, Datenbank, etc wo du das halt abrechnest)

Dann hört er mit dem abrechnen auf, wenn die max. Zeit überschritten ist!

Achja, drück mal SHIFT beim Anmelden :bae: => kein Autostart!!


und es gibt einen Destruktor

Code:
protected void finalize()
{
}

Die Frage ist nur ob er auch aufgerufen wird!!

Achja, besser ist du fragst den user mit java ab

Code:
String = System.getProperity("user.name");


Aber du könntest einen normalen windowstate Listener einbauen, der müsste aufgerufen werden wenn man das Programm beendet!! (windowclosing() oder so abfragen!)
 
B

bygones

Gast
thE_29 hat gesagt.:
Aber du könntest einen normalen windowstate Listener einbauen, der müsste aufgerufen werden wenn man das Programm beendet!! (windowclosing() oder so abfragen!)
wenn es ein konsolen programm ist ??? i dont think so
 
thE_29

thE_29

Top Contributor
aso, ansonsten ein Frame machen und nie darstellen lassen, aber ob der Listener dann reagiert ist ne andere Frage :D
 
G

Grizzly

Top Contributor
Du kannst einen Thread beim Beenden des Java Programms ausführen lassen. Und zwar mit Runtime.getRuntime.addShutdownHook(Thread). Dieser Thread wird dann von der Java VM ausgeführt, sobald das Programm beendet wird. Oder sie sollte es zumindest. Ich hab' das bis jetzt noch nicht ausprobiert. ;)
 
thE_29

thE_29

Top Contributor
Code:
    a = new Thread(new Thread(){
      public void run(){
        System.out.println("ENDE!!");
      }
    });
    Runtime.getRuntime().addShutdownHook(a);

Als, bsp, das geht bei mir!

Also mach einfach statt System.out.println(""); den Aufruf der Zeitabrechnung und dann sollte es funktionieren!

Man lernt nie aus :bae:
 
G

Grizzly

Top Contributor
thE_29 hat gesagt.:
[...]

Als, bsp, das geht bei mir!

Also mach einfach statt System.out.println(""); den Aufruf der Zeitabrechnung und dann sollte es funktionieren!

Man lernt nie aus :bae:

Ja, so in etwa. Außer das Dein Quellcode so aussehen müsste: ;)
Code:
    Thread a = new Thread() {
        public void run(){
            System.out.println("ENDE!!");
        }
    };
    Runtime.getRuntime().addShutdownHook(a);
 
S

SebiB90

Top Contributor
ich weiß ja nicht wie alt deine kiddis sind aber wenn die genug ahnung vom compi haben können die auch das prog schließen. :wink:
wollt ich nur malso sagen
 
H

Hadi

Gast
Wow, danke für Eure Replies. Zum Glück wissen meine Kiddies noch nichts von einem Task Manager oder ähnlichem. Sie sind froh wenn Sie ein bissel Shrek 2 zocken können oder (die älteste) Chatten kann.

Ich werde gleich mal das Programm um Eure Vorschläge erweitern...

Gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M this application requires a java runtime environment 1.8.0 Allgemeine Java-Themen 2
Tommy135 Input/Output Application aus Java package starten Allgemeine Java-Themen 2
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
J Application mit PLugin erweitern Allgemeine Java-Themen 2
A JWS application - log4j wie configurieren Allgemeine Java-Themen 1
T Tabletkamera per Java Application ansteuern Allgemeine Java-Themen 1
T Erste Schritte FAIL - Deployed application at context path / but context failed to start Allgemeine Java-Themen 1
I JRE mit Application ausliefern Allgemeine Java-Themen 12
C Can't start application since jvm.dll is not installed Allgemeine Java-Themen 1
H Best Practice Java Application Server , Docker oder was? Allgemeine Java-Themen 15
B Exception in Application init method Allgemeine Java-Themen 5
RalleYTN REST API ResponseType application/pdf lesen Allgemeine Java-Themen 0
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
F Best Practice Application extern nur einmal startbar Allgemeine Java-Themen 3
C Unterschiedliches Verhalten Editor und deployte Application Allgemeine Java-Themen 3
N Input/Output SEO-autoTest Application Allgemeine Java-Themen 4
B A newer version of Java is needed to view the application. Allgemeine Java-Themen 17
E Application -> Applet Allgemeine Java-Themen 9
J Application Server Allgemeine Java-Themen 2
T Java Application zu Applet Allgemeine Java-Themen 4
C Java Application und OpenOffice Allgemeine Java-Themen 5
V plugin.jar in application aus jar Allgemeine Java-Themen 2
Fadi Java Application mit Plugnis erweiteren Allgemeine Java-Themen 4
J Java Application auf 2 Monitore Allgemeine Java-Themen 2
G java application stub / fehler Allgemeine Java-Themen 2
M IRC Chat - Klasse oder Application gesucht Allgemeine Java-Themen 9
T Executable Java-Application erstellen Allgemeine Java-Themen 2
T PIMP my Application Allgemeine Java-Themen 19
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
P Java - Application auf Debian System zum laufen bringen Allgemeine Java-Themen 11
P java application in das rechtsklick menü im explorer adden? Allgemeine Java-Themen 21
N Datei mit Java-Application öffenen Allgemeine Java-Themen 5
sambalmueslie "Selbstlaufende" Application Allgemeine Java-Themen 2
S HTML Seitenaufruf aus einer Java Application Allgemeine Java-Themen 5
S Java Application Installieren - von CD Autostarten Allgemeine Java-Themen 7
T Java Application Server + Datenbank von CD Allgemeine Java-Themen 8
juppi Java-plug-in mit Application ansteuern Allgemeine Java-Themen 2
D Application einmalig exklusiv starten Allgemeine Java-Themen 8
M von der application zur einfachen java-anwendung Allgemeine Java-Themen 4
G Win XP Shut down Allgemeine Java-Themen 4
G Drop down Button Menü (Combobox) Allgemeine Java-Themen 7
H FTP Datein down- und uploaden Allgemeine Java-Themen 1
T Java Excel Drop Down Formularsteuerelement Allgemeine Java-Themen 0
M NamingService break down Allgemeine Java-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben