CopyFileEx blockiert Anwendung
Hallo,
habe mir eine WINAPI Anwendung geschrieben, die Ordner und Dateien von CD auf ein wählbares beschreibbares
Laufwerk kopiert. Arbeite hier mit der Funktion CopyFileEx. Die Software arbeitet auch ohne Probleme.
Zur Kontrolle lasse ich mir das Ergebnis welche Datei gerade kopiert wird u.s.w. , anzeigen.
Verschiebe ich nun das Fenster an eine andere Stelle, wird weiter kopiert aber die Anzeige der Daten
in den Editboxen bleibt stehen.
Suche jetzt schon seit ein paar Tagen ohne Erfolg nach einer Lösung.
Kann mir jemand einen Tipp geben, wie das zu ändern ist?
Arbeite mit Dev-C++.
Hier ein Auszug wo die Kopierfunktion gestartet wird:
Hallo,
habe mir eine WINAPI Anwendung geschrieben, die Ordner und Dateien von CD auf ein wählbares beschreibbares
Laufwerk kopiert. Arbeite hier mit der Funktion CopyFileEx. Die Software arbeitet auch ohne Probleme.
Zur Kontrolle lasse ich mir das Ergebnis welche Datei gerade kopiert wird u.s.w. , anzeigen.
Verschiebe ich nun das Fenster an eine andere Stelle, wird weiter kopiert aber die Anzeige der Daten
in den Editboxen bleibt stehen.
Suche jetzt schon seit ein paar Tagen ohne Erfolg nach einer Lösung.
Kann mir jemand einen Tipp geben, wie das zu ändern ist?
Arbeite mit Dev-C++.
Hier ein Auszug wo die Kopierfunktion gestartet wird:
Code:
case WM_COMMAND:
{
if(lParam==(LPARAM)hButtonExit && HIWORD(wParam)==BN_CLICKED) // Button beenden
{
SendMessage(hwnd,WM_CLOSE,0,0);
}
if(lParam==(LPARAM)hButtonDna && HIWORD(wParam)==BN_CLICKED) // Button starten
{
char szTextTo[256];
// Text aus der Editbox holen
GetWindowText (hwndTo, szTextTo, 256);
GetWindowText (hwndZiel, szTextTo, 256);
// Diesen Text in das Label schreiben und
// den Text der Editbox löschen
SetWindowText (hwndZiel, szTextTo);
SetWindowText (hwndTo, szTextTo);
char lwBuchstabe[1];
lwBuchstabe[0] = szTextTo[0];
if(laufwerke(lwBuchstabe)!=true)
{
MessageBox(hwnd, "Das angegebene Laufwerk ist nicht vorhanden!\n"
"oder eine CD-ROM! Bitte korrigieren Sie Ihre Eingabe.",
"",MB_OK | MB_ICONERROR);
}
else
{
int gesamt;
gesamt = rekursivDirFileSize(lauferkFrom);//Gesamtgröße in Byte ermitteln
//Übergabe an die rekursive Funktion
//kopieren!
kopieren(hwndPB,// Daten an InitCommonControls() senden
hwndTextDatei, // Daten zum Anzeigen der bereits kopierten Dateien.
hwndDateiGroesse,// Daten zum Anzeigen der Dateigröße.
hwndDateiAnzahl, // Anzahl der bereits kopierten Dateien
lauferkFrom, // Startlaufwerk
szTextTo,// Ziellaufwerk
gesamt); //Rekursive Funktion zum kopiren und ausgeben der Daten
char ergebnis[256];
strcpy(ergebnis,"Kopieren nach ");
strcat(ergebnis,szTextTo);
strcat(ergebnis," erfolgreich beendet");
MessageBox(hwnd, ergebnis,"", MB_OK);
DestroyWindow(hwnd);
}
}
return 0;
}
Zuletzt bearbeitet: