Print Screen alle 5 Sek
-
Weil du keine Message-Loop hast.
-
warum brauch ich ne message loop und wie soll sie aussehen?
ich hab ja ein cin.get(); dabei...da sollte doch bis ich keine taste druecke die timerfunktion aufgerufen werden???
-
Weil SetTimer() dafür sorgt das an dein Fenster WM_TIMER Nachrichten gesendet werden. In der MessageLoop wird dann erkannt das deine Callback-Funktion aufgerufen werden soll.
msdn: "Creating a message loop":
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/usingmessagesandmessagequeues.asp...oder in jedem WinAPI-Tutorial so ziemlich auf der erste Seite

...da du aber eigentlich eine Win32-Konsolenanwendung machen willst und kein Fenster: Wieso nimmst du nen WinAPI Timer? bzw. wozu brauchst du den überhaupt? - Macht dein Tool zwischendurch noch was anderes?
-
hm da nimm ich doch lieber einen thread mit 5 sek sleep!
cu
-
Du kannst einfach einen Timer mit Timer-Proc erstellen, das sollte am einfachsten sein.
PS: Was soll denn bitte das ?!
:do{ // [...] }while(false);
-
das ist ja mal nen geiles Konstrukt 
-
CodeFinder schrieb:
Du kannst einfach einen Timer mit Timer-Proc erstellen, das sollte am einfachsten sein.
sowas:
nTimerId=SetTimer(NULL,12345,1000,&(TIMERPROC)CaptureScreen); //Timer set to 500 ms.das ohne message loop sollte ja funktionieren?
cu
-
Joar mehr oder weniger...also bei Deinen Casts stehen mir die Haare zu Berge


nTimerId = SetTimer(NULL, 12345, 1000, CaptureScreen);
-
nTimerId = SetTimer(NULL, 12345, 1000, CaptureScreen); C/C++ Code: nTimerId = SetTimer(NULL, 12345, 1000, CaptureScreen);braucht doch trotzdem ne message loop?
-
*msdn zitier aus den Remarks zu SetTimer()*
MSDN schrieb:
When you specify a TimerProc callback function, the default window procedure calls the callback function when it processes WM_TIMER. Therefore, you need to dispatch messages in the calling thread, even when you use TimerProc instead of processing WM_TIMER.