Autostart

mein_c_tut_w

Mitglied
Hallo,
ich möchte das mein Java-Programm automatisch beim Systemstart von alles Benutzern ausgeführt wird. Wie bekomme ich das hin? ich muss das Programm so weit ich weiß in den Ordner C:\ProgramData\Microsoft\Windows\Start Menu kopieren. dort gibt es aber Probleme mit den Adminrechten...
Gibt es eine Möglichkeit dieses Problem zu umgehen?

Kann man überhaupt eine .jar zum autostart ausführen?
 

Fab1

Top Contributor
Ich meinte mal gelesen zu haben, dass das mit reinem Java nicht geht. Allerdings sollte es zusammen mit JNI möglich sein. Bin mir bei der Aussage, aber nicht so sicher.
 
T

trääät

Gast
warum packen es anfänger eigentlich nicht thematisch zusammenhängende themen in einem thread zu behandeln ... -.-'

zum problem selbst : entweder den "globalen" startup nutzen ... und in die registry im "HKLM\run" ne eintrag setzen ...
beides erfordert admin-rechte ... da es ja "systemweit" sein soll ...

eine andere möglichkeit wären noch services ... aber dafür braucht man auch admin-rechte und sie werden dann vor allem mit viel höheren system-rechten ausgeführt was man vermeiden sollte ...

ohne admin-rechte wird es also nicht gehen ... ansonsten kennt google die "globalen" orte für einen autostart so das dieser auf ALLE user auswirkung hat
 
T

trääät

Gast
dein vorhaben bezieht sich darauf das du etwas in den GLOBALEN autostart schreibst ... der dann auch für ALLE user am system gültigkeit hat ...
und um diesen zu manipulieren , gleich auf welche art und weise ... es gibt ja mehrere , braucht es nun mal admin-rechte ...
so lange du keine admin-rechte hast kannst du maximal am autostart des gerade angemeldeten users was machen ...
 
M

Marcinek

Gast
Für Änderungen an der Registry braucht man adminrechte.

Wieso kopierst du das nicht in den autostart ordner?
 

mein_c_tut_w

Mitglied
wo liegt dieser denn? ich habe nämlich gehört das er in allen windows versionen einen unterschiedlichen Pfad hat. nein für änderungen an HKCU benötigt man keine Adminrechte!
 
T

trääät

Gast
tja ... das ist eben das witzige am windows-autostart ...
es gibt zwar in der Win-API funktionen die dir entsprechende verzeichnisse liefern ... und die man auch über JNA einfach ansprechen kann ... aber die einfachste lösung wäre registry HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run ... aber auch dafür braucht man glaub ich erhöte rechte ... da man auch im CU nicht einfach schreiben darf
 

mein_c_tut_w

Mitglied
Also...
Ich hab mal folgendes versucht:
Ich hab ein testbenutzerkonto angelegt. Dieses hat keine Administrator rechte.
Wenn ich nun in der registry bin kann ich Einträge unter hkcu ändern, und diese werden wirksam. Allerdings muss ich unter Windows 7 bestätigen das ich regedit aufrufen will(keine Ahnung wie weit das die Programmierung beeinträchtigt).
 
T

trääät

Gast
und genau DAS ist das problem ... das nennt sich UAC ... denn REGEDIT selbst braucht admin-rechte eben weil man damit auch andere schlüssel bearbeiten kann ... also läuft REGEDIT selbst doch wieder mit adminrechten ...

wenn du jetzt allerdings mit java auf die registry zugreifen wollen würdest würdest du ACCESS DENIED bekommen weil java selbst eben NICHT mit admin-rechten läuft ...

es gibt zwar die klasse [japi]Preferences[/japi] die unter win die registry nutzen kann ... aber ob und wie man damit den besagten schlüssel editieren kann müsste google wissen ..
 
T

trääät

Gast
ich würde erstmal mit Preferences.systemRoot() und Preferences.userRoot() anfangen ...
dann mit Preferences.childrenNames() und Preferences.node(String) weiter nach unten hangeln bis zum gewünschten knoten ...
und dann mit Preferences.put(String, String) den eintrag schreiben ...
das es laut doc keine exception gibt die bei fehlenden schreibrechten geraised wird könnte darauf hindeuten das du eh nur zugriff auf die knoten hast auf die du auch schreibrechte hast ...
ansonsten gucken was Preferences.isUserNode() returned ... weil "user" beduetet normalerweise das man schreibrechte hat

selbst ausprobieren kann ich es jetzt schlecht da ich unter meinem system als "SYSTEM" angemeldet bin und eh alle rechte habe ohne UAC und andere nervereien ...
auch befasse ich mich wenig mit autostart sondern bastel lieber mit system-services rum ... die dann auch entsprechende rechte haben die ich für meine programm auch brauche ...
 

Ähnliche Java Themen

Neue Themen


Oben