Autor Beitrag
LINUS19
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 156
Erhaltene Danke: 1

Windows 10, 7
Java(Eclipse)
BeitragVerfasst: Mi 14.02.18 20:31 
Hallo,
wie kann man eine Batch Datei nach Systemstart ausführen(bei Windows 10)?
Ich habe eine Batch Datei erstellt von der ein Java Programm gestartet wird . Die Batch Datei habe ich im "Registrierungs-Editor"
in den Pfad "Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" getan, aber es passiert bei einem Neustart nichts.

LG
LINUS19


Moderiert von user profile iconChristian S.: Topic aus Alle Sprachen - Alle Plattformen verschoben am Mi 14.02.2018 um 19:49
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Do 15.02.18 01:52 
also 'Computer' hast sich bei mir erstmal als "C:\Program Files(x86)" herausgestellt. Was aber HKEY_CURRENT_USER sein soll, weiß ich nicht. Ich hab mal versucht den Ordner C:/*/*/Software zu listen, wird aber nichts gefunden. Also weiß ich nicht, wo du da deine Datei hinkopiert hast ^^
auch "C:/*/Software" bzw "C:/*/*/*/Software" bringen keine Ergebnisse

Ich finde es übrigens mal wieder erstaunlich wie extrem langsam das Windows Dateisystem ist. Bei linux gibt ls sogar bei meinem Raspi sofort ein Ergebnis aus, die MINGW32 shell braucht schon bei zwei Sternchen ziemlich lang.
$ ls C:/*/*/*/Software wird fast garnicht fertig...
vielleicht liegt es auch an MinGW - müsste ich mir mal selber was basteln zum Vergleichen.

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1200
Erhaltene Danke: 158

Windows 10 x64 Home Premium
C# (VS 2015 Enterprise)
BeitragVerfasst: Do 15.02.18 02:08 
Es gibt mehrere Möglichkeiten, das zu machen.
Spontan fallen mir folgende ein:

  • Autostart-Ordner (google mal danach)
  • Per Registry (wo genau und wie weiß ich aber nicht)
  • Windows Aufgabenplanung, da gibt's bestimmt auch einen Trigger wie Logon oder Ähnliches

@Symbroson:

Such mal in der Windows-Suche nach "regedit" und schau was in dem Programm oben steht :P
Das ist ein Registry-Pfad, darüber sollten sich Autostarts auch einstellen lassen. Den genauen Pfad hab ich aber nicht im Kopf

Für diesen Beitrag haben gedankt: LINUS19, Symbroson
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Do 15.02.18 02:12 
Ah. Nie gehört davon. Wer macht denn auch schon ein Dateisystem außerhalb vom Dateisystem...
Danke Palladin :)

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)

Für diesen Beitrag haben gedankt: LINUS19
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1200
Erhaltene Danke: 158

Windows 10 x64 Home Premium
C# (VS 2015 Enterprise)
BeitragVerfasst: Do 15.02.18 02:25 
Microsoft macht sowas :D

Ist sowas wie Windows eigene Datenbank. Warum dieses Format? Ich hab keine Ahnung.
Eventuell haben sie es eingeführt, weil es damals noch kein NTFS gab, sie aber ein System brauchen, was die Anforderungen erfüllt. Also haben sie kurzerhand etwas Eigenes gebaut.
Und heute ist eine Umstellung auf etwas Modernes einfach unmöglich, weil die Registry überall in bekanntem und unbekanntem Windows-Code verteilt ist und auch zig externe Anwendungen sie nutzen.

Wobei Linux da auch nicht viel besser ist.
Die haben ihre Config-Dateien überall verteilt und ich würde fast wetten, dass das Format von der einen Datei zur Anderen immer ein bisschen anders ist.
Microsoft hat das System über einem Weg zugreifbar und immer in ein und dem selben Format. Ganz so schlecht ist es also nicht ^^

Eine relationale Datenbank kommt dabei vermutlich nicht in Frage, da das alles viel zu komplex ist um es in ein sinnvolles relationales Datenmodell zu schreiben.

Für diesen Beitrag haben gedankt: LINUS19
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18718
Erhaltene Danke: 1624

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 15.02.18 15:13 
user profile iconLINUS19 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe eine Batch Datei erstellt von der ein Java Programm gestartet wird . Die Batch Datei habe ich im "Registrierungs-Editor"
in den Pfad "Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" getan, aber es passiert bei einem Neustart nichts.
Ich vermute einmal die Batchdatei geht davon aus, dass das Arbeitsverzeichnis ein anderes ist als das Systemverzeichnis, aus dem Autostarts gestartet werden. Schreib doch einfach mal testweise etwas in eine Datei:
ausblenden Quelltext
1:
echo test > c:\temp\a.txt					

Wird diese Datei erstellt?

user profile iconPalladin007 hat folgendes geschrieben Zum zitierten Posting springen:
Ist sowas wie Windows eigene Datenbank. Warum dieses Format? Ich hab keine Ahnung.
Eventuell haben sie es eingeführt, weil es damals noch kein NTFS gab, sie aber ein System brauchen, was die Anforderungen erfüllt. Also haben sie kurzerhand etwas Eigenes gebaut.
Ein Grund: Die Registry enthält extrem viele Einträge. Wären das einzelne Dateien und würden diese im Falle eines Roaming-Profils vom Server kopiert, müsstest du ganz schön lange warten... ;-)
Und man müsste auch jede Einstellung in eine eigene Datei packen, da sonst die Rechte auf die einzelnen Werte fehlen würden.

Noch dazu wäre es eine enorme Platzverschwendung, da jede Datei mindestens die Größe einer Zuordnungseinheit hat. Sprich standardmäßig 512 Byte. Bei mehreren Millionen Einträgen wären das schnell mehrere GiB...
LINUS19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 156
Erhaltene Danke: 1

Windows 10, 7
Java(Eclipse)
BeitragVerfasst: Do 15.02.18 20:55 
Was meinst du mit Testweise in eine Datei schreiben?
Eine exe Datei konnte ich dort starten.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18718
Erhaltene Danke: 1624

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 15.02.18 23:43 
user profile iconLINUS19 hat folgendes geschrieben Zum zitierten Posting springen:
Was meinst du mit Testweise in eine Datei schreiben?
Wenn du den genannten Befehl in deine Batchdatei schreibst, wird "test" in die Datei c:\temp\a.txt geschrieben. Passiert das, weißt du, dass die Batchdatei ausgeführt wird.

Denn wie schon geschrieben, ich vermute, dass du in der Batchdatei einfach davon ausgehst, dass du auf Sachen zugreifen kannst, die im selben Verzeichnis liegen oder ähnliches. Das ist aber nicht der Fall, da das Arbeitsverzeichnis das Systemverzeichnis ist.