Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich ein Programm im Autostart von Windows zeitversetzt starten?
dargo
2006-06-13, 19:17:31
Hallo,
ich möchte zwei Programme im Autostart von Windows XP ausführen. Beide Exe Dateien sind im Autostart vorhanden. Ich möchte aber Programm "Y" ein paar Sekunden später starten wie Programm "X".
Wie bringe ich das Windows bei? Ist sowas überhaupt möglich?
looking glass
2006-06-13, 19:43:34
Per Skript, welches Du in den Autostart schiebst, welches dann die Programme startet (welche Du zuvor aus dem Autostart raus nimmst), würd ich meinen.
Also ne txt Datei anlegen (später mit der Endung .bat versehen) und darin, mhhh, ich würd meinen das müsste klappen:
@echo off
start /w c:\windows\programm1.exe
start /w c:\windows\programm2.exe
(Programmpfad natürlich anpassen)
mit dem /w Parameter sollten die Programme nacheinander starten.
dargo
2006-06-13, 20:04:28
looking glass[/POST]']Per Skript, welches Du in den Autostart schiebst, welches dann die Programme startet (welche Du zuvor aus dem Autostart raus nimmst), würd ich meinen.
Also ne txt Datei anlegen (später mit der Endung .bat versehen) und darin, mhhh, ich würd meinen das müsste klappen:
@echo off
start /w c:\windows\programm1.exe
start /w c:\windows\programm2.exe
(Programmpfad natürlich anpassen)
mit dem /w Parameter sollten die Programme nacheinander starten.
Ok, danke. :)
Und wie mache ich es, dass "programm2.exe" zb. 15 Sekunden nach "programm1.exe" ausgeführt werden soll?
Tyson
2006-06-13, 20:14:06
Es gibt ne Sleep.exe. Die hab ich aus WinAVR (ist ne Entwicklungsumgebung für Mikrokontroller), gibs aber sicherlich auch einzeln, such mal in google. Die macht nichts anderes x Sekunden zu warten. Pack das ganze dann in eine cmd Datei (wie von looking glass vorgeschlagen) und pack diese in den Autostart.
Gruß Tyson
dargo
2006-06-13, 20:33:38
Hmm, so ganz blicke ich noch nicht durch. Habe mir diese Sleep.exe runtergeladen. Wo muss sich die Datei befinden damit sie funktioniert?
Ich habe nämlich das Gefühl, dass die 30 Sekunden die ich eingetippt habe nicht eingehalten werden, also das Programm sofort geladen wird.
IceLord
2006-06-13, 20:41:46
Schreib einfach den kompletten Pfad zur sleep.exe rein dann ist es egal wo sie gespeichert ist.
dargo
2006-06-13, 20:43:43
IceLord[/POST]']Schreib einfach den kompletten Pfad zur sleep.exe rein dann ist es egal wo sie gespeichert ist.
Achso, klingt logisch. X-D
Werde gleich mal probieren.
Edit:
Super, jetzt funktioniert es wie ich es wollte. :)
Eine Kleinigkeit habe ich aber noch. Ist es möglich dieses DOS-Fenster auszublenden?
Also, dass es gar nicht erst erscheint?
Das stört nämlich ein wenig. Das Fester geht erst aus wenn das Programm nach der Sleep-Zeit ausgeführt wird.
IceLord
2006-06-13, 21:23:56
dargo[/POST]']Ist es möglich dieses DOS-Fenster auszublenden? Also, dass es gar nicht erst erscheint?
Du kannst in den Eigenschaften der Verknüpfung einstellen dass das Fenster minimiert ist. Ka ob's noch ne bessere Möglichkeit gibt.
dargo
2006-06-13, 21:43:39
IceLord[/POST]']Du kannst in den Eigenschaften der Verknüpfung einstellen dass das Fenster minimiert ist. Ka ob's noch ne bessere Möglichkeit gibt.
Ok, das sieht schon mal besser aus. Jetzt erscheint das "Fenster" nur noch in der Taskleiste. Gibt es keine Möglichkeit um das Fester ganz verschwinden zu lassen?
Tyson
2006-06-13, 21:56:21
Ich glaube nicht. Wenigstens nicht mit den Standard Windowsmöglichkeiten. Aber falls du was raus bekommst, würde ich auch gerne wissen wie.
Gruß Tyson
looking glass
2006-06-13, 23:31:30
Doch geht, glaub ich, Scheisse nur, ich weiss den Parameter nicht mehr, habs vor c.a. 1 -2 Monaten aber hier im Bereich noch gelesen, mal suchen, vielleicht find ich es noch.
[Edit]
Ok., müsste so funktionieren
start /w PfadzurEXE>nul
>nul sollte verhindern, das Ausgaben ins Fenster der Batchdatei geschrieben werden, mhh, weiss jetzt nicht, ob es das ist, was du wolltest.
Jedoch bin ich auf der suche danach, über den Tread gestolpert:
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=208749
Vielleicht hilft er dir ja noch weiter.
dargo
2006-06-14, 16:21:22
@looking glass
Das ">nul" bewirkt irgendwie gar nichts.
Ich möchte aber nicht, dass Ausgaben im Fenster nicht geschrieben werden (das macht schon "@echo off") sondern, dass ein Fenster nicht erscheint.
BAGZZlash
2006-06-14, 17:36:04
Okay, nimm' einfach dieses Programm, das ich gerade für Dich gebastelt habe: Link! (http://www.people.freenet.de/BAGZZlash/Timer.exe).
Das Programm öffnet eine Datei namens "Timer.ini", welche im Windows-Verzeichnis liegen muß (i.d.R. "C:\Windows").
In dieser ini-Datei muß der Pfad beider Programme angegeben sein, d.h. die Datei muß etwa so aussehen:
C:\Programme\1.exe
C:\Windows\2.exe
Bei Aufruf der Timer.exe wird das erste Programm in der ini sofort gestartet, das zweite nach 15 Sekunden.
dargo
2006-06-14, 18:23:49
BAGZZlash[/POST]']Okay, nimm' einfach dieses Programm, das ich gerade für Dich gebastelt habe: Link! (http://www.people.freenet.de/BAGZZlash/Timer.exe).
Das Programm öffnet eine Datei namens "Timer.ini", welche im Windows-Verzeichnis liegen muß (i.d.R. "C:\Windows").
In dieser ini-Datei muß der Pfad beider Programme angegeben sein, d.h. die Datei muß etwa so aussehen:
Bei Aufruf der Timer.exe wird das erste Programm in der ini sofort gestartet, das zweite nach 15 Sekunden.
Funzt leider nicht. :(
Sobald ich die Timer.exe starte gibts einen Run-time error '53'. File not found.
PS: könntest du auch sowas basteln wo ich die Zeit selbst bestimmen kann?
Diese steht nämlich noch nicht fest.
looking glass
2006-06-14, 18:39:44
@ dargo, schau doch mal in meinen zuletzt verlinkten Tread, da gibt es zwei Beispiele, einmal als .bat und einen als .vbs:
1. Beispiel über Ping (30 Sekunden Verzögerung)
@echo off
ping 127.0.0.1 -n 30|echo.
start /min C:\Tools\FRITZ!\FriFax32.exe
Angepasst an dein Bedürfniss wäre es dann:
@echo off
start /min Pfadzuprogramm1.exe
ping 127.0.0.1 -n 30|echo.
start /min PfadzuProgramm2.exe
oder per VB Skript:
Set oWsh = CreateObject("WScript.Shell")
'warten 10 Sekunden, dann starten wir das Programm
WScript.Sleep 10000
oWsh.Run "pfad zum programm\programm.exe"
An dein Bedürfniss angepasst, müsste dann halt wieder noch eine zeile rein:
Set oWsh = CreateObject("WScript.Shell")
oWsh.Run "pfad zum programm\programm1.exe"
'warten 10 Sekunden, dann starten wir das Programm
WScript.Sleep 10000
oWsh.Run "pfad zum programm\programm2.exe"
Un dann war da noch ein Vorschlag, doch gleich "Startup Delayer" zu verwenden (Freewareprogramm)
http://www.r2.com.au/software.php?page=2&show=startdelay
was auch den von dir angedachten "verdeckten Modus" enthält.
BAGZZlash
2006-06-15, 01:38:42
Ja, da hat looking glass ja was ordentliches vorgeschlagen, Daumen hoch dafür! Falls das nicht reicht, implementier' ich Dir gern auch 'ne Zeitsteuerungsfunktion und schicke Dir die benötigte Lib.
dargo
2006-06-15, 15:42:17
BAGZZlash[/POST]']Ja, da hat looking glass ja was ordentliches vorgeschlagen, Daumen hoch dafür! Falls das nicht reicht, implementier' ich Dir gern auch 'ne Zeitsteuerungsfunktion und schicke Dir die benötigte Lib.
Ist nicht nötig, es sei denn es ist nicht viel Aufwand für dich. :rolleyes:
Ich kann mit der Batch Datei und der Sleep Funktion leben. :)
BAGZZlash
2006-06-15, 16:36:00
Ach, ich Hornochse. Hätte mal besser Deine Fehlermeldung gelesen, anstatt einfach davon auszugehen, daß Dir die VB6-Lib fehlt (die man übrigens hier (http://www.dll-files.com/dllindex/dll-files.shtml?msvbvm60) herunterladen kann und dann in's System-Verzeichnis gehört).
Nein, Du mußt die Timer.ini ja auch anlegen, BEVOR Du das Programm startest. Wenn Du das Programm startest, und es existiert keine Timer.ini im Windows-Verzeichnis, dann kommt Deine Fehlermeldung. Auch müssen die Programme, die da drin stehen, wirklich existieren, sonst gibt's weitere Fehlermeldungen.
Naja, ich hab' mal 'ne Zeitsteuerung eingebaut. In der ersten Zeile der Timer.ini muß nun die Zeit in Sekunden stehen, die gewartet werden soll. So muß also die ini nun aussehen:
15
C:\Programme\1.exe
C:\Windows\2.exe
Dies startet also 1.exe sofort, wartet dann 15 Sekunden und startet dann 2.exe. Es ist auch möglich, mehrere Programme einzubinden, z.B. so:
15
C:\Programme\1.exe
C:\Windows\2.exe
C:\Programme\Hund\3.exe
C:\Programme\Banane\4.exe
Dies startet 1.exe sofort, wartet 15 sec., startet dann 2.exe, wartet 15 sec., startet 3.exe usw... Das geht beliebig oft.
In der neuen Version habe ich auch 'nen Bug gefixt, der das Programm nicht richtig beendet hat. Das sollte jetzt gehen.
Hier die neue Version! (http://www.people.freenet.de/BAGZZlash/Timer2.exe)
dargo
2006-06-24, 20:04:28
@BAGZZlash
Sorry, aber ich bin jetzt erst dazu gekommen es zu testen. Es funktioniert natürlich einwandfrei. :)
Vielen Dank für deine Mühe.
Könntest du aber noch eine Version für mich "basteln"?
Und zwar, dass ich natürlich in der Timer.ini beliebige Zeit einstellen kann (also wie gehabt), aber das erste Programm erst nach der eingestellten Zeit startet.
Also, jetzt ist es so:
15
C:\Programme\1.exe
C:\Programme\2.exe
C:\Programme\3.exe
1.exe wird sofort gestartet, nach 15 Sekunden 2.exe, nach weiteren 15 Sekunden 3.exe usw.
Ich hätte gerne aber noch diese Version:
15
C:\Programme\1.exe
C:\Programme\2.exe
C:\Programme\3.exe
Es wird erstmal eine Pause von 15 sekunden eingelegt und erst dann wird 1.exe, 2.exe, 3.exe usw. ausgeführt.
Wärst du so nett? :rolleyes:
BAGZZlash
2006-06-25, 19:36:26
Hi!
Hmm, hatte den alten Quellcode schon gelöscht, daher komplett neu geschrieben. Wenn's irgendwo bugs gibt, bitte bescheid sagen.
Version 3 (http://www.people.freenet.de/BAGZZlash/Timer3.exe)
dargo
2006-06-26, 00:12:18
Super, danke. Werde es Montag testen. :)
Schnitzl
2006-06-26, 07:25:15
Hallo,
es gibt übigens ein Tool, mit dem man die DOS-Box verstecken kann, nennt sich cmdow:
http://www.commandline.co.uk/cmdow/
Es reicht, wenn die exe im Windows-Verzeichnis liegt, dann ist normalerweise keine Pfadangabe nötig.
(gilt auch für die Sleep.exe)
Wollt ich nur der Vollständigkeit halber noch erwähnen. :)
dargo
2006-06-26, 21:34:30
BAGZZlash[/POST]']Hi!
Hmm, hatte den alten Quellcode schon gelöscht, daher komplett neu geschrieben. Wenn's irgendwo bugs gibt, bitte bescheid sagen.
Version 3 (http://www.people.freenet.de/BAGZZlash/Timer3.exe)
Funktioniert einwandfrei. Nur, leider ist es nicht ganz das geworden was ich wollte. :redface:
Mit dieser Version wird das erste Programm nach der Zeitangabe gestartet, dann wieder die Zeitangabe abgewartet und das zweite Programm gestartet usw.
Ich wollte aber, dass das erste, zweite, dritte usw. Programm erst nach der eingestellten Zeit alle zusammen gestartet werden. :tongue:
@Schnitzl
Danke, werde ich bestimmt gebrauchen können. :)
BAGZZlash
2006-06-26, 22:27:26
Version 4 (http://www.people.freenet.de/BAGZZlash/Timer4.exe)
dargo
2006-06-26, 23:27:56
BAGZZlash[/POST]']Version 4 (http://www.people.freenet.de/BAGZZlash/Timer4.exe)
Super, jetzt kann ich alle Möglichkeiten ausschöpfen. ;D
Danke nochmal. :)
PS: womit erstellt du diese Exe Dateien wenn man fragen darf?
BAGZZlash
2006-06-26, 23:48:31
Visual Basic v6.0 SP6.
Einfachster Quellcode, guckst Du:
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetWindowsDirectory Lib "Kernel32"_
Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
IniFile$ = GetWindowsDir$ & "Timer.ini"
Open IniFile$ For Input As 1
Line Input #1, A$
Zeit = Val(A$) * 1000
Sleep Zeit
Do Until EOF(1)
DoEvents
Line Input #1, A$
Shell A$
Loop
Close
End
End Sub
Private Function GetWindowsDir() As String
Temp$ = String$(145, 0)
X = GetWindowsDirectory(Temp$, 145)
Temp$ = Left$(Temp$, X)
If Right$(Temp$, 1) <> "\" Then
GetWindowsDir$ = Temp$ + "\"
Else
GetWindowsDir$ = Temp$
End If
End Function
Verrätst Du, wozu Du das brauchst?
Rente
2006-06-27, 14:21:55
looking glass[/POST]'][...]
Und dann war da noch ein Vorschlag, doch gleich "Startup Delayer" zu verwenden (Freewareprogramm)
http://www.r2.com.au/software.php?page=2&show=startdelay
was auch den von dir angedachten "verdeckten Modus" enthält.
Danke, für das Programm! :massa:
Ich brauche es dazu um die Programme EasyTune (stellt VCore hoch), Clockgen for NF4 (erhöht Ref.-Takt) und RMClock (senkt die Frequenz, leider die Spannung nicht auf meinem Gigabyte K8NF-9) in der aufgeführten Reihenfolge zu starten und dabei noch Zeit dazwischen zu lassen. Wenn die Startreihenfolge anders ist hängt sich mein Rechner einfach nur auf.
Der Grund liegt darin, dass mein Board, wenn ich im Bios einen Ref.-Takt größer als 210 wähle nicht mehr durchstartet und es zwar eine Möglichkeit für Windows in Form von ClockGen gibt, aber nicht für Linux (zumindestens habe ich keine gefunden). Damit würde allerdings in Linux der Prozessor mit 2.1 GHz bei 1,5VCore laufen, was nicht sein muss (VCore im Bios eingestellt, da sonst in Windows keine 2.6GHz möglich wären).
Da es aber für das Board das Tool EasyTune gibt, mit dem man den VCore unter Windows hochstellen habe ich mich dafür entschieden unter Windows mit 2.6@1,5V und unter Linux mit 2.1GHz@1,4V zu arbeiten. Das Problem dabei ist, das EasyTune vor allen Anwendungen starten muss weil es ziemlich lange braucht um zu starten, wenn es dann allerdings gestartet ist liegt 1,5V VCore an und ClockGen kann den Takt hochziehen. :)
dargo
2006-06-28, 00:22:27
BAGZZlash[/POST]']Visual Basic v6.0 SP6.
Einfachster Quellcode, guckst Du:
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
...
Einfach? Für dich vielleicht. Ich kann damit leider nichts anfangen. X-D
Aber vielleicht sollte ich mich da mal reinarbeiten. :)
BAGZZlash[/POST]']
Verrätst Du, wozu Du das brauchst?
Ich brauche es nicht, aber mein Kumpel. Es geht ums Übertakten. Sein Mainboard macht da manchmal Schwierigkeiten. Es wird mit Software in Windows übertaktet. In einigen Fällen (meistens nach Kaltstarts) friert das Bild beim Windowsladen ein. Starte ich das Übertaktungstool 15 Sekunden später gibts keinen Freeze mehr. :)
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.