Autor |
Beitrag |
LINUS19
Beiträge: 156
Erhaltene Danke: 1
Windows 10, 7
Java(Eclipse)
|
Verfasst: 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 Christian S.: Topic aus Alle Sprachen - Alle Plattformen verschoben am Mi 14.02.2018 um 19:49
|
|
Symbroson
Beiträge: 382
Erhaltene Danke: 67
Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
|
Verfasst: 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
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: 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
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
Beiträge: 382
Erhaltene Danke: 67
Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
|
Verfasst: 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
Beiträge: 1282
Erhaltene Danke: 182
Windows 11 x64 Pro
C# (Visual Studio Preview)
|
Verfasst: Do 15.02.18 02:25
Microsoft macht sowas
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
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 15.02.18 15:13
LINUS19 hat folgendes geschrieben : | 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:
Quelltext 1:
| echo test > c:\temp\a.txt |
Wird diese Datei erstellt?
Palladin007 hat folgendes geschrieben : | 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
Beiträge: 156
Erhaltene Danke: 1
Windows 10, 7
Java(Eclipse)
|
Verfasst: Do 15.02.18 20:55
Was meinst du mit Testweise in eine Datei schreiben?
Eine exe Datei konnte ich dort starten.
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 15.02.18 23:43
LINUS19 hat folgendes geschrieben : | 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.
|
|
|