Autor Beitrag
klemme
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 37



BeitragVerfasst: So 30.11.08 18:21 
Hi

ich habe vor kurzem einen Bewegungsmelder programmiert, der über Live-Capuring von einer angeschlossenen Digitalkamera funktioniert und bin grad fleißig am verbessern. Für das Einfangen der Bilder von der Kamera verwende ich tscap32.
Soweit funktioniert alles, allerdings gibt es seit längerem ein Problem.
Wenn ich das Programm immer wieder umschreibe und verbessere, muss ich ja immer wieder neu kompilieren und neu starten.
Wenn ich das Program ca. 20-30 mal starte, beende, verändere, neustarte - kommt immer irgend wann beim start ein Blue-Screen mit anschließendem Neustart.
Kann das an tscap32 liegen oder vllt. an iwas anderem, aber an sich kommt es sonst nie, nur wenn ich das Programm das kp. 30. mal starte

Vllt. hat ja jmd. ne Eingebung worans liegen könnte

danke im vorraus

_________________
ich werde das Unternehmen übernehmen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 30.11.08 18:31 
Schau mal in den Systemeigenschaften (Eigenschaften vom Arbeitsplatz oder unter Systemsteuerung --> (Leistung und Wartung --> ) System) unter Erweitert --> Starten und Wiederherstellen.
Klick dort auf Einstellungen und deaktiviere unten das Häkchen bei Systemfehler --> Automatisch Neustart durchführen.

Wenn der Fehler dann erneut auftritt bleibt der BSOD auf dem Bildschirm und du kannst dort einmal schauen was dort steht und das posten. Ansonsten gibt es auch weitere Debuginfos, aber mit dem Debugging damit kann ich dir nicht so gut helfen, aber vielleicht sagt user profile iconBenBE etwas dazu.

Grundsätzlich vermute ich, dass der Treiber nicht richtig deinitialisiert wird, vielleicht wegen eines Fehlers in der Treibersoftware, was sich dann bemerkbar macht, wenn man ihn zu oft verwendet. Eventuell fehlen ihm Ressourcen, da die alten Sessions nicht richtig aufgeräumt wurden oder ähnliches.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 01.12.08 14:13 
Kannst Du einmal schauen, ob du die Anzahl der Programmstarts, die zum erzeugen eines Bluescreens nötig sind, genauer eingrenzen kannst (ggf. automatisch im Programm mitzählen lassen).

Debugge dann im Einzelschritt einmal dein Programm durch, sobald Du im vorher ermittelten kritischen BEreich bist. Wenn das Programm dann bei der Routine zur Initialisierung des Treibers auftritt (möglichst kleiner Init-Schritt), weißt Du schon mal, dass der Treiber vermutlich was mit dem Problem zu tun hat.

Aber ggf. schon mal einen Hinweis zur Deinitialisierung des Treibers: Beachte, dass Strg+F2 (Prozess beenden) beim Delphi-Debugger eine sofortige Prozessbeendigung (SIGKILL) zur Folge hat. Sorge am besten also dafür, dass Du das Programm IMMER sauber mit Alt+F4 beendest UND die Deinitialisierung des Treibers in einem Finalization-Abschnitt deiner Unit ausgeführt wird.

Direkt zum Treiber kann ich nix sagen. Schau aber einmal, ob es für diesen ein Update gibt, dieser möglichst signiert ist und wende dich ggf. auch einmal an den Hersteller. Versuche dabei, das Problem am Besten mit einer Demo-Anwendung so klein wie möglich mal darzustellen (z.B.: App, die nur in ner Schleife den Treiber läd und Entläd).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.