Wie krieg ich das ohne hängen hin?
-
Hallo!
Ich will immer informiert werden wann eine Datei renamed wird....wie krieg ich folgendes hin ohne dass es die ganze Anwendung blockiert?
und 2. wie krieg ich das hin, dass alle Laufwerke überprüft werden und nicht nur C?mein code:
in winmain: while(TRUE) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else { Renaming(); } } Renaming: void Renaming() { static DWORD dwWaitStatus; dwWaitStatus = WaitForSingleObject(hFile, INFINITE); switch (dwWaitStatus) { case WAIT_OBJECT_0: MessageBox(0, "Renamed", 0, 0); FindNextChangeNotification( hFile); break; } }
Bin für alles Dankbar
-
Du könntest es "einfach" in einen extra Thread packen
-
Geht das nich einfacher?
Wenn nein, wie gehen threads? *g*
-
while(TRUE) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else if( WaitForSingleObject(hFile, 1) == WAIT_OBJECT_0 { FindNextChangeNotification( hFile); } }
-
bringt das nicht 100 % cpu auslastung?
-
Wenn GetMessage statt PeekMessage und GetMessage dann statt while(true) da stehen würde, dann nicht
-
dann wäre das aber auch nur einmal am ende des programms ausgeführt