Autor Beitrag
Scarlet
Hält's aus hier
Beiträge: 3

Win XP
Delphi 2005 Personal
BeitragVerfasst: Mo 14.04.08 22:29 
Hallo an alle!

Ich habe ein kleines Problem!
Mit meinem Programm bereite ich ein Verzeichnis zum Drucken vor und dann verschiebe ich dieses in ein anderes Verzeichnis wo es automatisch von einen zweiten Programm gedruckt wird und gesichert wird (verschoben in ein 3. Verzeichnis).
Alles läuft im Netzwerk.

Zum Verschieben verwende ich folgende Funktion:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString; Flags: FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: AnsiString;
  SHFileOpStruct: TSHFileOpStruct;

begin
  ZeroMemory(@SHFileOpStruct, SizeOf(SHFileOpStruct));
  FromPath := aFrom + #0#0;
  ToPath := aTo + #0#0;
  with SHFileOpStruct do
      begin
         Wnd := 0;
         wFunc := aOperation;
         pFrom := PAnsiChar(FromPath);
         if ToPath <> '' then
            begin
               pTo := PAnsiChar(ToPath)
            end
         else
            begin // target available
               pTo := nil;
            end; // target not available
         fFlags := Flags;
      end; // structure
  Result := SHFileOperationA(SHFileOpStruct);
end;



Mein Problem ist, wenn das zweite Programm das Verzeichnis sichert, bleibt ein leeres Verzeichnis stehen und man hat keinen Zugriff mehr drauf bis ich mein Programm beende.
Mein Programm hat ansonsten mit dem zweiten Verzeichnis nur die eine Verbindung beim verschieben.
Kann ich diese Verbindung irgendwie lösen?

Danke im Voraus!!
Kornel

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 16.04.08 14:07 
:welcome:
hmm, deine Procedure ist irgendwie sehr "native".
Zum kopieren eines Ordners:
www.delphi-forum.de/viewtopic.php?t=82411

//Edit: nach dem CopyFile einfach noch ein DeleteFile => verschoben ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Scarlet Threadstarter
Hält's aus hier
Beiträge: 3

Win XP
Delphi 2005 Personal
BeitragVerfasst: Fr 18.04.08 22:51 
Hallo,

ich habe mittlerweile herausgefunden es liegt nicht an der Verschiebe-Funktion.
Ich verwende in meinem Programm zwei ShellListView Komponenten (eine zum Darstellen von Verzeichnissen die andere für Dateien) ein paar CheckBoxen und zwei Buttons also nichts großartiges (ich bin auch noch ein Anfänger).
Beim Starten des Programms werden schon drei FileHandles geöffnet und beim jeden Verzeichniswechsel kommen weitere dazu aber es werden keine geschlossen.
Das ist meiner Meinung nach das Problem.
Kann mir jemand helfen mit ein paar Tipps, wie ich die Handles wieder Schließe?
Den Quellcode habe ich rangehängt wer etwas Zeit und Lust hat kann es sich anschauen.
Für konstruktive Kritik bin ich sehr dankbar!

Danke im voraus!

Kornel
Einloggen, um Attachments anzusehen!
Scarlet Threadstarter
Hält's aus hier
Beiträge: 3

Win XP
Delphi 2005 Personal
BeitragVerfasst: Sa 19.04.08 23:48 
Hallo,

jetzt bin ich ein Stückchen weiter!! :-)
in ShellListView ist das der Eintrag:

AutoRefresh := True;

der immer neue FileHandles öffnet!

Jetzt habe ich eine Frage, gibt es eine Möglichkeit AutoRefresh zu benutzen und die FileHandles zu steuern, minimieren?

Kornel