![]() |
Win Api-Kopierfunktion ohne Fenster?
Hallo,
es gibt ja die Win-Api-Kopierfunktion. Kann man diese Kopierfunktion auch ohne dem Fenster verwenden und die Progressbar in seiner eigenen Application verwerden? |
Re: Win Api-Kopierfunktion ohne Fenster?
Allgemeine Frage: Warum machst du das nicht selber? (mit Streams)
Ansonsten muss es sicherlich eine Möglichkeit geben an das Handle des Fensters zu kommen und dann die ProgressBar auslesen zu können. Außerdem wirst du, wenn du das Handle hast das Fenster auch verstecken können! |
Re: Win Api-Kopierfunktion ohne Fenster?
Man wird doch nicht mit dem Auslesen von Handles und Verstecken von Fenstern anfangen. Dein erster Tipp war doch gut. Auf der Seite von Michael gibt es, soweit ich mich erinnere, sogar ein Beispiel für eine Kopierroutine mit eigener Fortschrittsanzeige.
|
Re: Win Api-Kopierfunktion ohne Fenster?
|
Re: Win Api-Kopierfunktion ohne Fenster?
Hallo,
Zitat:
![]() Nun will ich aber mit meinem Programm nicht nur einzelne Dateien kopieren, sondern auch Ordner incl. Unterordner. Und das ist mit Streams eine ziemlich aufwendige Möglichkeit. Da ist mir eben die Idee gekommen, die Win-Api-Funktion zu verwenden. So erspar ich mir die aufwendige Kopierfunktion. Nur stört mich halt das Fenster, denn ich will den Fortschritt des Kopierens in meiner Application selbst anzeigen lassen wollen. Zitat:
Vielen Dank für eure Tips! |
Re: Win Api-Kopierfunktion ohne Fenster?
|
Re: Win Api-Kopierfunktion ohne Fenster?
Hallo Luckie,
sind das verschiedene Kopier-Funktionen? Und kann man damit auch Ordner (und Unterordner) kopieren)? |
Re: Win Api-Kopierfunktion ohne Fenster?
Da wird dochnur CopyFileEx beschrieben... :gruebel:
|
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Windows 9x / ME / 2000 / XP / 2003" nach "Windows API / MS.NET Framework API" verschoben.
Eher ein Problem bezüglich der Windows-API, denn mit Windows ;-) |
Re: Win Api-Kopierfunktion ohne Fenster?
Zitat:
Aber Luckie, kann es sein dass bei:
Delphi-Quellcode:
ein Fehler drin ist und es so heissen muss:
CEXM_MAXBYTES:
begin ProgressBar1.Max := (Msg.LParam) shl 32) + Msg.WParam; end;
Delphi-Quellcode:
:?: :?:
CEXM_MAXBYTES:
begin ProgressBar1.Max := (Int64(Msg.LParam) shl 32) + Msg.WParam; end; [edit] Und irgendwie geht bei dem Code gar nix! Ich hab mir das mal zur Laufzeit angeschaut! Bei:
Delphi-Quellcode:
springt er bei "case Msg.Msg" sofort wieder zu end
procedure TForm1.WndProc(var Msg: TMessage);
begin inherited; case Msg.Msg of CEXM_MAXBYTES: begin ProgressBar1.Max := (Int64(Msg.LParam) shl 32) + Msg.WParam; end; CEXM_CONTINUE: begin Progressbar1.Position := (Int64(Msg.LParam) shl 32) + Msg.WParam; Caption := IntToStr(Msg.WParam + Msg.LParam); end; CEXM_CANCEL: begin Progressbar1.Position := 0; Caption := '0'; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz