Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#25

Re: SQL Fehler, wenn Exe in Autostart

  Alt 13. Mär 2009, 16:43
Hallo Jens,

beim Programmstart wird die Datei (soweit vorhanden) gelöscht.
Pro Programmstart wird sie einmal erstellt, sie sollte nach dem Programmende eigentlich erhalten bleiben. Wenn in der Datei nur einmal die Liste der Dienste ist, bedeutet dies, dass das Öffnen der Query beim zweiten Versuch bereits erfolgreich ist.
Dein Test mit ShowMessage führt ja auch zu dieser Erkenntnis.

Momentan gehe ich davon aus, dass die Datenbank zum Starten ein bisserl Zeit benötigt. Die Dienste laufen also schon und müssen noch irgendwas machen. Es erscheint mir momentan am sinnvollsten, wenn Du am Anfang des Programmes ein Sleep(5000) für 5 Sekunden Pause einbaust und dann die Routine so läßt, wie sie jetzt ist. Eventuell könntest Du das Sleep innerhalb der Repeat-Schleife auch noch auf 5000 setzen. Damit würde das Programm insgesammt ca. 30 Sekunden warten, bevor es mit einer Fehlermeldung abbricht. Das halte ich für akzeptabel.

Das DeleteFile und das WinExec kannst Du entfernen, die brauchen wir nicht mehr. Reibungsloser, als mit der derzeitigen Variante, wirst Du den Programmstart aus dem Autostart vermutlich nicht hinbekommen. Das Programm muss beim Rechnerstart einfach warten, bis Betriebssystem und Dienste richtig laufen.

Code:
net start >> c:\netstart.txt
Die beiden >> bedeuten, dass net start seine Ausgabe an die bereits bestehende c:\netstart.txt anhängt. Sofern die Datei nicht vorhanden ist, wird sie erstellt. Steht hier nur ein >, so wird eine bestehende Datei überschrieben. Es handelt sich hierbei um eine Funktionalität von DOS, die Du auch am DOS-Prompt nachvollziehen könntest.
WinExec ist nur zum Start eines anderen Programmes da und hat keinen Einfluß auf das Erstellen der Datei.
  Mit Zitat antworten Zitat