Seite 1 von 1

Das Programm stockt ohne Mausbewegung

Verfasst: 19.04.2011 08:42
von thomas223
Hallo!!!

Ich hätte da noch einmal ein hoffendlich kleines Problem!
Ich habe ein kleines Windows Programm geschrieben welches nach einer Text Datei in einem extra Ordner suchen soll!
Dieser Text sollte dann ausgewertet werden und an einen Drucker geschickt werden!
Dieses Funktioniert auch alles allerdings nur wenn die Maus über dem Fenster geführt wird! sobald das Programm minnimiert im hintergrund läuft macht er nichts mehr!
Liegt es nun nur daran das ich das abpollen des Ordners an die falsche stelle gesetzt habe oder ist das bei Windows basierenden Programmen so üblich?
Kann ich soetwas fileicht in den Einstellungen von PB einstellen?

Danke im vorraus!

MfG Thomas

WaitWindowEvent(100)

TimeOut fehlte dann geht es! Erst nachdenken dann Posten! :iamwithstupid: :coderselixir:

Re: Das Programm stockt ohne Mausbewegung

Verfasst: 19.04.2011 13:42
von NicTheQuick
Das klingt aber für mich auch nicht nach einer vernünftigen Lösung mit dem TimeOut. Schau dir lieber mal Threads an.

Re: Das Programm stockt ohne Mausbewegung

Verfasst: 19.04.2011 15:00
von Sunny
Is jetz natürlich schwer zu sagen, da kein Code vorliegt aber ich würde jetz mal spontan sagen, dass du in den Klammern von "WaitWindowEvent" mal z.B.: ne "20" reinschreiben solltest.

Re: Das Programm stockt ohne Mausbewegung

Verfasst: 19.04.2011 17:53
von NicTheQuick
Wenn etwas unabhängig von irgendwelchen Events läuft, macht man Threads und keine Delays (Timeouts) rein. Selbst das Nutzen von WindowEvent() statt WaitWindowEvent() ist nicht die Lösung.

Re: Das Programm stockt ohne Mausbewegung

Verfasst: 20.04.2011 07:47
von dige
Das klingt wirklich nach nem WaitwindowEvent() das bei fehlenden Events den Programmablauf blockiert...

Re: Das Programm stockt ohne Mausbewegung

Verfasst: 20.04.2011 08:22
von ts-soft
In einem Eventloop wird nur auf Ereignisse reagiert. Es gibt keinen Code in einem EventLoop
für den das nicht zutrifft!
Dies scheint hier aber nicht der Fall zu sein, also gibt es 2 mögliche Lösungen:
Entweder dem Code ein Ereignis zuordnen, z.B. einen Timer setzen oder wie
Nick bereits sagte einen Thread verwenden, wobei ich Anfängern aber lieber von
abrate.
Die Timeout Variante, halte ich für falsch, da der Code dann ja bei Timeout und
jedem anderem Ereignis ausgeführt wird und somit das System unnötig belastet
und auch zu endlosen Ereigniss-Ketten führen kann.

Ich hoffe diese Problem sollte vielleicht mal in der FAQ erläutert werden, es ist
so langweilig hier immer von denselben Fehlern zu lesen.

Im EventLoop gibt es nur Code, der auch einem Event zugeordnet ist!