tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Anime-Otaku
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
459
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tagamoga Tagamoga ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    39
    Hallo allerseits,

    besteht eine Möglichgelich mit Java auf die akutelle CPU zeit zuzugreifen?

    Also ich möchte nicht die die Systemzeit, die mir Windoof vorgaukelt, sondern die CPU Zeit, die der Core hat. geht das?

    Grüße, Taggi
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    was genau meinst du denn? Möchtest du die aktuell vom Prozessor in diesem Prozess verbratene Prozessorzeit (bzw. Prozessorauslastung: http://www.tutorials.de/forum/java/2...auswerten.html ) wissen oder den "aktuellen" Wert der RTC?
    Kannst du vielleicht eine C-Funktion nennen die dir das gewünschte Ergebis liefern würde? Dann könnte man schon eher sehen, was du meinst. Die könntest du dann auch per JNA aufrufen. https://jna.dev.java.net/

    Ansonsten kommst du noch mit:
    Code java:
    1
    2
    
    ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime()
    ManagementFactory.getThreadMXBean().getCurrentThreadUserTime()

    An entsprechende Zeitwerte ran.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Tagamoga Tagamoga ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    39
    Leider kann ich Dir keine C Funktion dazu sagen. es geht nicht um einen Thread sondern z.b. darum:

    Jemand installiert ein Program, das für 30 Tage lizensiert ist. Nimmt man die normale Systemzeit von Windows, braucht der User nur das Datum zurückzustellen und weitermachen.

    Speichert man aber die Uhrzeit der CPU ab, kann er selbst durch ein zurücksetzten der Zeit nichts ändern.

    Es gibt noch andere Prozesse, die nicht ganz rund laufen, wenn man die Windows Zeit nimmt und der User ändert diese. Also am besten gleich die der CPU nehmen, die läuft ja weiter...

    Aber der Tipp mit dem JNA ist gut, ich schaue mal, ob ich so etwas unter c finde.

    Danke, Taggi
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    ah ja, das ist schon klarer. Hmm als ich weis nicht ob die RTC (Real Time Clock) ran kommen kannst, bzw. ist dass dann nicht die CMOS - Clock? Die kann man aber auch über das BIOS manipulieren.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Irgendwelche Lösungen muss es zu dem Thema ja geben.

    Vielleicht Abfrage der Zeit über das Internet sofern sicher gestellt werden kann dass dies immer vorhanden ist. Ansonsten könnte man sich das letzte Startdatum ja in einer Datei merken und wenn die Zeit zurückgestellt wurde kann man das so feststellen. Zwar auch nicht ganz sicher aber immerhin...
     

  6. #6
    Tagamoga Tagamoga ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    39
    Internet ist nicht standardmäßiug vorhanden. *leider*

    Die Idee mit dem Abspeichern war auch schon besprochen, aber als zu Fehleranfällig fallen gelassen.

    Was das spezielle Lizensierungsproblem angeht, wird auch überlegt, ob man nicht einfach die Lizensierung auf x Stunden Laufzeit umrechnet... Während das Porgramm läuft, kann man ja sicher die Lauflänge des Threads abfragen.

    Aber leider sind alle besprochenen Lösungen nciht wirklich das wahre... Deshalb suche ich noch etwas weiter. Sobald ich etwas "sicheres" weiß, sage ich Euch bescheid...

    Danke für die Vorschläge,

    Taggi
     

  7. #7
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    ein andere spontane Idee...

    Wie wäre es den Zeitstempel der Installation verschlüsselt zu speichern?
    zeja bedankt sich. 
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  8. #8
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    Wie wäre es den Zeitstempel der Installation verschlüsselt zu speichern?
    ... und dann schauen ob aktuelle Zeit > Zeitstempel plus X Tage.
    Das hilft auch nichts, da der Benutzer das Rechner-Datum vor Lizenzablauf zurücksetzen könnte (VMWARE!).

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  9. #9
    Allysia Allysia ist offline Grünschnabel
    Registriert seit
    May 2009
    Beiträge
    3
    Also da gibts soweit ich weiss keine sichere Methode.

    Alle Zeitabfragen benötigen nämlich irgendeinen gespeicherten Vergleichswert ( also Zeit der Erstinstallation oder erster Programmaufruf).
    Da dieser irgendwo auf der Festplatte gespeichert werden muss (egal ob verschlüsselt oder nicht) ist er auch manipulierbar.

    Ferner gibt es nur eine sehr begrenzte Anzahl an Systemzeitgebern.

    RTC (RealTimeClock) die übers Bios eingestellt und geändert werden kann.
    Windowszeit, die mittels Systemsteuerung geändert werden kann.
    Internetzeitserver, der nicht immer verfügbar ist.

    Ansonsten fällt mir nur noch die Zeit in Millisekunden seit dem 1.1.1970 ein, die aber leider wiederum von der RTC/Windowszeit abhängt.

    Man könnte sich aber (sofern das Programm plattformabhängig sein darf) Auf z.b. das Installationsdatum der Windowsinstallation beziehen, oder auf irgendeinen anderen bereits gespeicherten Zeitwert. Dies erschwert dem Benutzer, der ja vermutlich keinen Quelltext bekommt die richtige Zeit zu ändern.

    Als wirklich sicher (sofern man keinen eigenen Timeserver hat) ist jedoch nur der abgleich mit dem Internet. Dabei muss das Installationsdatum auf dem Firmeneigenen Server hinterlegt werden (damits nicht änderbar ist) und auch die aktuelle Zeit/Datum von einem geeigneten Server bezogen werden.
    Das Programm darf ansonsten nicht installierbar bzw. startbar sein.

    Das dies natürlich den User nicht gerade begeistern wird sollte klar sein, ist aber hier ja nicht Topic.

    Mfg Allys
     

Ähnliche Themen

  1. Internal Server Error..
    Von lacie im Forum PHP
    Antworten: 7
    Letzter Beitrag: 17.12.07, 17:18
  2. Time erhöhen? Wie rechnet time denn?
    Von Kalma im Forum PHP
    Antworten: 6
    Letzter Beitrag: 12.12.06, 07:37
  3. Internal Server Error
    Von mkoeni1 im Forum Hosting & Webserver
    Antworten: 4
    Letzter Beitrag: 03.01.06, 11:31
  4. internal error
    Von anthro im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 07.02.05, 17:47