<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CopyFileEx blockiert Anwendung]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mir eine WINAPI Anwendung geschrieben, die Ordner und Dateien von CD auf ein wählbares beschreibbares<br />
Laufwerk kopiert. Arbeite hier mit der Funktion CopyFileEx. Die Software arbeitet auch ohne Probleme.<br />
Zur Kontrolle lasse ich mir das Ergebnis welche Datei gerade kopiert wird u.s.w. , anzeigen.<br />
Verschiebe ich nun das Fenster an eine andere Stelle, wird weiter kopiert aber die Anzeige der Daten<br />
in den Editboxen bleibt stehen.</p>
<p>Suche jetzt schon seit ein paar Tagen ohne Erfolg nach einer Lösung.<br />
Kann mir jemand einen Tipp geben, wie das zu ändern ist?</p>
<p>Arbeite mit Dev-C++.</p>
<p>Hier ein Auszug wo die Kopierfunktion gestartet wird:</p>
<pre><code class="language-cpp">case WM_COMMAND:
{

    if(lParam==(LPARAM)hButtonExit &amp;&amp; HIWORD(wParam)==BN_CLICKED) // Button beenden
    {   
        SendMessage(hwnd,WM_CLOSE,0,0);
    }

    if(lParam==(LPARAM)hButtonDna &amp;&amp; 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, &quot;Das angegebene Laufwerk ist nicht vorhanden!\n&quot;
                       &quot;oder eine CD-ROM! Bitte Eingabe korrigieren.&quot;,
                       &quot;&quot;,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,&quot;Kopieren nach &quot;); 
            strcat(ergebnis,szTextTo);
            strcat(ergebnis,&quot; erfolgreich beendet&quot;);

            MessageBox(hwnd, ergebnis,&quot;&quot;, MB_OK);

            DestroyWindow(hwnd);

          }
    }
    return 0;
}
</code></pre>
<p>Bin leider noch blutiger Anfänger und würde mich über jeden Hinweis freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162732/copyfileex-blockiert-anwendung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 18:54:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162732.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Oct 2006 17:37:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CopyFileEx blockiert Anwendung on Sun, 22 Oct 2006 17:37:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe mir eine WINAPI Anwendung geschrieben, die Ordner und Dateien von CD auf ein wählbares beschreibbares<br />
Laufwerk kopiert. Arbeite hier mit der Funktion CopyFileEx. Die Software arbeitet auch ohne Probleme.<br />
Zur Kontrolle lasse ich mir das Ergebnis welche Datei gerade kopiert wird u.s.w. , anzeigen.<br />
Verschiebe ich nun das Fenster an eine andere Stelle, wird weiter kopiert aber die Anzeige der Daten<br />
in den Editboxen bleibt stehen.</p>
<p>Suche jetzt schon seit ein paar Tagen ohne Erfolg nach einer Lösung.<br />
Kann mir jemand einen Tipp geben, wie das zu ändern ist?</p>
<p>Arbeite mit Dev-C++.</p>
<p>Hier ein Auszug wo die Kopierfunktion gestartet wird:</p>
<pre><code class="language-cpp">case WM_COMMAND:
{

    if(lParam==(LPARAM)hButtonExit &amp;&amp; HIWORD(wParam)==BN_CLICKED) // Button beenden
    {   
        SendMessage(hwnd,WM_CLOSE,0,0);
    }

    if(lParam==(LPARAM)hButtonDna &amp;&amp; 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, &quot;Das angegebene Laufwerk ist nicht vorhanden!\n&quot;
                       &quot;oder eine CD-ROM! Bitte Eingabe korrigieren.&quot;,
                       &quot;&quot;,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,&quot;Kopieren nach &quot;); 
            strcat(ergebnis,szTextTo);
            strcat(ergebnis,&quot; erfolgreich beendet&quot;);

            MessageBox(hwnd, ergebnis,&quot;&quot;, MB_OK);

            DestroyWindow(hwnd);

          }
    }
    return 0;
}
</code></pre>
<p>Bin leider noch blutiger Anfänger und würde mich über jeden Hinweis freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159107</guid><dc:creator><![CDATA[Opscript]]></dc:creator><pubDate>Sun, 22 Oct 2006 17:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to CopyFileEx blockiert Anwendung on Sun, 22 Oct 2006 17:41:10 GMT]]></title><description><![CDATA[<p>CreateThread</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159110</guid><dc:creator><![CDATA[lösung]]></dc:creator><pubDate>Sun, 22 Oct 2006 17:41:10 GMT</pubDate></item><item><title><![CDATA[Reply to CopyFileEx blockiert Anwendung on Sun, 22 Oct 2006 18:56:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>erst einmal viele Dank für Deine Antwort.<br />
Hatte das auch einmal gemacht, jedoch keine Änderung im Verhalten festgestellt<br />
und zum Ende hängt sich alles auf.</p>
<p>Hier mein Code und was müßte ich ändern?</p>
<pre><code class="language-cpp">unsigned long nThreadID ;
HANDLE hThread = CreateThread (NULL,
                               0,
                               (LPTHREAD_START_ROUTINE)
                               kopieren(hwndPB, 
                                        hwndTextDatei, 
                                        hwndDateiGroesse,
                                        hwndDateiAnzahl,
                                        lauferkFrom,
                                        szTextTo,
                                        gesamt),
                               0,
                               0,
                               &amp;nThreadID);
CloseHandle(hThread);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1159163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159163</guid><dc:creator><![CDATA[Opscript]]></dc:creator><pubDate>Sun, 22 Oct 2006 18:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to CopyFileEx blockiert Anwendung on Sun, 22 Oct 2006 20:17:00 GMT]]></title><description><![CDATA[<p>Opscript schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>erst einmal viele Dank für Deine Antwort.<br />
Hatte das auch einmal gemacht, jedoch keine Änderung im Verhalten festgestellt<br />
und zum Ende hängt sich alles auf.</p>
</blockquote>
<p>Das ist auch nicht verwunderlich...</p>
<p>Du übergibt hier ja auch ne falsche (bzw. gar keine) Thread-Prozedur.<br />
Weiterhin beendet killst du einfach den Handle zum Thread, obwohl der (warscheinlich)<br />
noch läuft.<br />
Guck dir am besten nochmal n Tutorial an: <a href="http://www.codeproject.com/useritems/MultithreadingTutorial.asp" rel="nofollow">http://www.codeproject.com/useritems/MultithreadingTutorial.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1159241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1159241</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 22 Oct 2006 20:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to CopyFileEx blockiert Anwendung on Tue, 24 Oct 2006 03:07:17 GMT]]></title><description><![CDATA[<p>Vielen Dank an CodeFinder.<br />
Guter Tipp, hat somit das Problem gelöst und hab noch einiges dazu gelernt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160007</guid><dc:creator><![CDATA[Opscript]]></dc:creator><pubDate>Tue, 24 Oct 2006 03:07:17 GMT</pubDate></item></channel></rss>