Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Auf Speren bzw. entsperen des OS (Win) reagieren

Empfohlene Antworten

Veröffentlicht

Hi zusammen,

gibt es die Mglichkeit mit java auf das sperren bzw. entsperren von Windows zu reagieren?

Achja nochwas kann man Java Anwendungen als Tray Laufen lassen ?

schon mal danke im Vorraus.

gibt es die Mglichkeit mit java auf das sperren bzw. entsperren von Windows zu reagieren?
Ja und Nein :)

Also ausführlicher: Mit Java "Bordmitteln" gibt es keine Möglichkeit darauf zu reagieren. Dafür ist die Aufgabe zu plattformorientiert. Ein Logout unter Linux verläuft komplett anders als unter Windows, und was machst du, wenn Java auf einem OS läuft, wo es überhaupt keine Mehrbenutzerumgebung gibt?

Was du allerdings machen kannst ist das ganze über einen JNI Aufruf zu erledigen. Du klinkst dich in die Windows API ein, und rufst dann von der C-Seite aus, eine Methode in einer Java-Klasse auf, die das Handling des Logout übernimmt.

Also so etwas in der Art:

public class WindowsLogoutHandler {


  /**

   * Diese Methode einmal aufrufen, um den Listener bei

   * Windows zu registrieren.

   */

  public static native void registerWindowsEventListener();


  /**

   * Diese Methode vom JNI-Part aus ansprechen

   */

  public static void userLoggedOut(String username) {


    // Hier jetzt die Implementierung rein


  }


}

Achja nochwas kann man Java Anwendungen als Tray Laufen lassen ?
Gleiche Antwort wie oben: Möglich ja, aber nur über JNI Bridge. Aber da gibt's schon fertige Packages für:

http://www.google.de/search?hl=de&q=java+tray

http://jeans.studentenweb.org/java/trayicon/trayicon.html

schade hatte gehoft es gäbe da eine halbwegs allgemeine lösung

aber schon mal thx

Das Problem ist halt das ich gerne eine Zeiterfassung basteln würde die durch das speren und entsperen schon mal einige zeiten vogibt. Hat vielleicht jemand ne idee wie man das anders lösen kann ?

Ich weiß ja nicht, was Du vorhast. Aber JSL erlaubt es, Dein Programm als Windows-Dienst laufen zu lassen. So kann Dein Proggi auch laufen, wenn mal kein Nutzer angemeldet ist.

EDIT: Hmm... nee. JSL hilft da wohl auch nicht viel.

schade hatte gehoft es gäbe da eine halbwegs allgemeine lösung

aber schon mal thx

Das Problem ist halt das ich gerne eine Zeiterfassung basteln würde die durch das speren und entsperen schon mal einige zeiten vogibt. Hat vielleicht jemand ne idee wie man das anders lösen kann ?

Noch ne möglichkeit wäre dann natürlich das ganze unter C# zu machen... damit gibst du dann allerdings alle plattformunabhängigkeit auf die Java hat (brauchst du scheinbar aber eh nicht)

Vorteile: gleiche Syntax und struktur, bei voller nutzbarkeit aller Windows und Microsoft features

Ich weiß ja nicht, was Du vorhast.
Ich glaub ich schon :)

Ich denke der OP möchte ein Zeiterfassungs-Programm im Hintergrund auf dem Client-Rechner laufen lassen. Wenn jetzt Mitarbeiter X seinen Desktop sperrt heisst das für das Programm "Der macht jetzt Pause". @LoneWulf: Hab ich das soweit richtig verstanden?

Wenn dem so ist, und dein Programm ein reines Java-Programm ist, dann hast du keine andere Möglichkeit, als die, die ich oben vorgeschlagen habe. Du willst schließlich vom System etwas mitbekommen nämlich "Rechner gesperrt". Und dann musst du dich da auch direkt beim System einklinken. Eine reine Java Lösung wird es dafür nicht geben (eben weil du auf die Windows API zugreifen musst) also wenn du es so umsetzen musst, dann fange lieber an dich mit JNI vertraut zu machen - so schwierig ist das auch nicht.

Eine weitere Möglichkeit wäre dann natürlich tatsächlich, das ganze nicht in Java umzusetzen, sondern in einer Sprache, die mit Windows und seinen Eigenheiten besser umgehen kann - z.B. C# (*würg*, dass ich das mal vorschlagen würde...).

Ich glaub ich schon :)

C# (*würg*, dass ich das mal vorschlagen würde...).

Ach was sooo schlimm ist das doch auch wieder ned ... wenn auch proprietär... aber das kann was und die meisten prinzipien zw thread prozess exception etc sind die gleichen (freu)

Ich denk' mal, die AUfgabenstellung hat ihren Sinn. Mir stellen sich nämlich die Nackenhaare, wenn Zeiterfassung über das Sperren des Rechners laufen würde.

Was mache ich dann nämlich, wenn ich zu einem Meeting gehe?

Mir stellen sich nämlich die Nackenhaare, wenn Zeiterfassung über das Sperren des Rechners laufen würde.

Was mache ich dann nämlich, wenn ich zu einem Meeting gehe?

Naja vom Grundprinzip her ist das schon okay - der Rechner loggt die Zeiten, wo du offline bist und präsentiert dir hinterher eine Liste, in der du dann auswählen musst, was beispielsweise zwischen 10:00 und 10:15 passiert ist. Als Auswahl steht dann sowas wie { Meeting, Toilettenpause, Raucherpause, ... }

In wieweit sowas der Arbeitsmoral dient ist noch ein ganz anderer Punkt... Wenn ich über jede Minute meines Arbeitstages genau buchführen müsste, dann leidet mein Zugehörigkeitsgefühl und meine Solidarität zu meiner Firma da enorm drunter.

Nein das ganze soll ja nur schonmal diverse anhaltspunkte angeben diese können ja beliebig verändert werden. Das ist halt für mich persönlich gedacht. Zum einen zur Übung und zum anderen damit ich mal anfange richtig zu dokumentieren. Soll halt ein kleines Documentations Tool werden für notizen usw.

Könnte man den short keys vergeben so wie winamp das macht? sozusagen start und stop einer aktivität?

könnte man den short keys vergeben so wie winamp das macht? sozusagen start und stop einer aktivität?
Hä?

Bitte drücke dich mal etwas deutlicher aus, und erkläre mir, was du mit diesem Satz da oben sagen wolltest

Bei Win Amp diesem tollen Media player. GIbt es sogenante short Keys (Kurzwahl tasten) über die man das Programm während man mit einem anderem Programm arbeitet Steuern kann. Das wäre doch eine altenative oder ? Es geht halt darum Das die Start- und Endzeiten ohne Großen aufwand erfasst werden.

Bei Win Amp diesem tollen Media player. GIbt es sogenante short Keys (Kurzwahl tasten) über die man das Programm während man mit einem anderem Programm arbeitet Steuern kann. Das wäre doch eine altenative oder ? Es geht halt darum Das die Start- und Endzeiten ohne Großen aufwand erfasst werden.
Okay, jetzt hab ich's verstanden.

Möglich auf jeden Fall - aber unter Java auch wieder nur mit JNI-Bridge.

Du siehst, du kommst also nicht drumrum :)

nagut dann werde ioch mir das mal zu gemüte ziehen. Das Problem ist das ich noch nicht wirklich viel mit java gemacht habe. Aber na das wird schon funzen :) nochmal THX @all

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.