Wie lässt sich ein Programm zum ersten Start des Tages starten?

270
Ooker

Gibt es eine Möglichkeit, ein Programm zu starten, wenn ich mich anmelde, aber nur in der ersten Sitzung. Wenn ich am selben Tag herunterfahre und neu starte, startet das Programm nicht automatisch. Ich frage sowohl in Windows als auch in Linux.

Ich denke, dass der einzige Weg darin besteht, ein Skript zu schreiben, aber ich suche nach einem Weg, um nicht zu schreiben.

-3
Welches Betriebssystem? Wie Sie dies unter Linux tun würden, ist etwas ganz anderes als unter Windows. Ich weiß unter Windows, ob Sie herunterfahren sollten, es gibt keine Möglichkeit festzustellen, ob Sie sich bereits zuvor am Computer angemeldet haben. Ramhound vor 9 Jahren 0
Ich benutze Netrunner. Es basiert auf Kubuntu. Ich denke, unter Linux kann man ein Skript schreiben, aber unter Windows ist es schwieriger. Ich suche nach einer Methode, die kein Skript schreiben muss. Ooker vor 9 Jahren 0
Außerhalb eines Skripts ist dies unter Windows nicht möglich. Ramhound vor 9 Jahren 0
Einfach oder nicht (IMHO einfach), ein Skript auszuführen, ist der bequemste Weg. Stellen Sie sich vor, wenn Sie nur eine Ausführung dieses Programms pro Tag ausführen möchten, müssen Sie ein Programm ausführen, das ständig ausgeführt wird, und den Zugriff auf alle ausführbaren Dateien prüfen, wie dies ein _antivirus_ unter Windows tun kann. Es ist eine riesige Ressourcenverschwendung. Wenn Sie nur nach der automatischen Ausführung zum Zeitpunkt der Anmeldung suchen möchten, löst ein Skript mit 2-3 Codezeilen das Problem. Bitte fügen Sie die grafische Umgebung unter Linux hinzu. Beachten Sie, dass zwischen dem ersten Login des Tages und dem ersten Login des Tages beim letzten Start ein Unterschied besteht ... Hastur vor 9 Jahren 1

1 Antwort auf die Frage

2
Berend

Wenn Sie dieses Programm nicht selbst ändern können, besteht der einzige Weg darin, ein Skript zu erstellen. Zum Glück ist das unkompliziert (unter Windows gehe ich davon aus, dass Sie dasselbe unter Linux auf ähnliche Weise tun können):

:: Get date and remove / character set d=%date:/=% if exist "%TEMP%\%d%" goto :EOF echo _ > "%TEMP%\%d%" start program 

BEARBEITEN

Momentan habe ich ~ 30.000 Dateien in meinem TEMP-Ordner. Auf einem System verwende ich nicht zu viel, sodass ich mir nicht zu viele Sorgen um 365 1-Byte-Dateien über ein Jahr machen muss. Zugegeben, diese Dateien benötigen immer noch einen vollständigen Block (4kB?) Und möglicherweise ist der Speicherplatz knapp. Daher ist hier ein zweites Skript, das nur eine einzige Datei verwendet.

set today=%temp%\today if exist "%today%" ( find "%date%" "%today%" if errorlevel 0 goto :EOF )  echo %date% > "%today%" start program 
Ich wollte sagen, dass der Benutzer nach einem Jahr 365 temporäre Dateien hatte. Aber ich habe es zuerst probiert. (Sie haben es nicht getan, oder?) Der Befehl "echo" gibt mir Folgendes an: "Das System kann den angegebenen Pfad nicht finden." Ich denke, das liegt daran, dass "% date%" wie "Mi 22.04.2015" aussieht und Windows behandelt `/` s in Pfadnamen wie `` \ `` s. Dateinamen dürfen nicht `/` s enthalten. Scott vor 9 Jahren 1
Ich habe es tatsächlich versucht, aber auf einem holländischen System, das ** wo 22-04-2015 ** gibt. Sie können das Problem mithilfe von **% date: / =% ** beheben. Berend vor 9 Jahren 0
Ich habe über die 365 temporären Dateien nachgedacht, die Sie haben würden, und habe auch einen Weg gefunden (legen Sie die Dateien in% temp% \ subfolder und entfernen Sie alles, nachdem Sie nach der "Today-Datei" gesucht haben), aber das würde nur ablenken von der ursprünglichen Frage Berend vor 9 Jahren 0
@Scott also ist es gut jetzt zu verwenden? Ooker vor 9 Jahren 0
Es gibt immer noch das Problem, Ihren TEMP-Ordner mit Hunderten kleiner Dateien (mit Leerzeichen im Namen) zu füllen, aber es sieht so aus, als sollte es funktionieren. Scott vor 9 Jahren 0
danke Berend. Sorry, wenn diese Frage dumm aussieht, aber wie führe ich dieses Skript aus? Ich füge es in Notepad ein, ändere die Erweiterung in exe und führe es bei jedem Start aus, aber es funktioniert nicht. Ooker vor 9 Jahren 0
@Ooker Versuchen Sie, die Erweiterung in ** bat ** oder ** cmd ** zu ändern. Vergessen Sie auch nicht, die letzte Zeile "start program" in das zu ändern, was Sie zum Starten Ihres _your_-Programms benötigen Berend vor 9 Jahren 0
Ja, ich weiß, dass ich die letzte Zeile ändern muss. Ich denke, das sollte funktionieren. Ooker vor 9 Jahren 0
es funktioniert nicht Ich habe `program` in der letzten Zeile durch` C: \ "Program Files" \ Anki \ anki.exe `ersetzt, aber das einzige, was erscheint, wenn ich meinen Computer starte, ist ein DOS-Fenster, und es verschwindet sofort. Wenn ich den Befehl in cmd eingebe, wird das Programm ausgeführt. Ooker vor 9 Jahren 0