PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bildschirmschoner mit Java


ethrandil
2003-09-20, 11:49:29
Hoihí,
ja, ihr habe richtig gelesen :D Wie kann ich einen Bildschirmschoner für Windows mit Java schreiben? Das progg an sich wäre ja plattformübergreifend, ich bräuchte nur irgendwie einen part, der ihn bei win (2k!) als bildschirmschoner registriert ....

danke für eure Hilfe...

Eth

Sgt. Nukem
2003-09-20, 15:41:41
Bildschirmschoner unter Windows (*.SCR-Dateien) sind einfach unbenannte EXE-Files (probier's aus!). Du mußt eine EXE nach SCR umbenennen und ins Windows-Verzeichnis kopieren, schon kannst'e ihn auswählen im Anzeige-Dialog. Um das mit Java zu machen, mußt Du Dir wohl wohl oder übel JNI angucken, d.h. ein bißchen native EXE-Funktionalität implementieren, und dann per C / C++ Aufrufe an die JavaVM machen... dann kannst Du den hauptsächlichen Code in Java machen... frag' mich aber was das bringen soll, "plattformübergreifend" wäre er eh nicht... - naja, gut, höchstens im Sinne von: "Win95, Win98, WinME, WinNT, Win2000, WinXP" ... ;-))

EgonOlsen
2003-09-20, 16:53:16
Original geschrieben von Sgt. Nukem
Um das mit Java zu machen, mußt Du Dir wohl wohl oder übel JNI angucken, d.h. ein bißchen native EXE-Funktionalität implementieren, und dann per C / C++ Aufrufe an die JavaVM machen... dann kannst Du den hauptsächlichen Code in Java machen... Jaaaa nööö...das wäre irgendwie durch die Brust ins Auge und zurück. Ein einfaches EXE-Programm mit C/C++/VB/(oder sogar native compiliertes Java (mit JET oder GJC)) erstellt, welches die VM mit dem eigentlichen Java-Programm aufruft wäre hier passender und wesentlich einfacher. JNI an sich erzeugt keine Exe-Dateien. Es ist vielmehr dazu da, um von Java aus auf native Dinge zugreifen zu können.

HellHorse
2003-09-20, 21:45:16
Bloss eine exe erzeugen geht mit JBuilder. Damit kann man auch die Äquivalente für Linux, Solaris und Mac machen. Eine Java VM muss trotzdem installiert sein.
http://web.green.ch/marschall/pics/native.png
Gibt wohl auch andere Programme, die das können.

Gnafoo
2003-09-20, 23:21:14
Man sollte aber am Anfang des Programms prüfen,
ob schon eine Instanz desselben existiert und
das Programm in diesem Fall beenden.
Ansonsten startet Windows den Screensaver andauernd,
bis die Systemressourcen zu sind. D.h. wenn der
Screensaver nach 1 Minute aktiviert wird, hast du
in einer Stunde 60 Screensaver-Prozesse.

Wollte das nur einmal im vorneherein anmerken :)

cu DerTod

Sgt. Nukem
2003-09-21, 12:00:16
Original geschrieben von EgonOlsen
Jaaaa nööö...das wäre irgendwie durch die Brust ins Auge und zurück. Ein einfaches EXE-Programm mit C/C++/VB/(oder sogar native compiliertes Java (mit JET oder GJC)) erstellt, welches die VM mit dem eigentlichen Java-Programm aufruft wäre hier passender und wesentlich einfacher. JNI an sich erzeugt keine Exe-Dateien. Es ist vielmehr dazu da, um von Java aus auf native Dinge zugreifen zu können.
Gut, klar, Du könntest einfach die java-Datei ausführen (vorher checken ob 'ne VM installiert is' wäre sicher nicht schlecht). Doch dann kannst Du natürlich keine Windows-Messages abfangen, und nicht Windows-eigene Methoden zum Abbrechen eines Screensavers benutzen...
BTW, kann man mit pure Java eigentlich "Vollbild" zeichnen??

EgonOlsen
2003-09-21, 12:15:08
Original geschrieben von Sgt. Nukem
Doch dann kannst Du natürlich keine Windows-Messages abfangen, und nicht Windows-eigene Methoden zum Abbrechen eines Screensavers benutzen...
Stimmt, sehe ich aber nicht als Problem. Das kann man auch bequem mit Java "simulieren". Wäre auch besser, denn dann ist das nicht an Windows gebunden.
Original geschrieben von Sgt. Nukem
BTW, kann man mit pure Java eigentlich "Vollbild" zeichnen?? Jupp, kann man.