![]() |
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; |
Re: Win Api-Kopierfunktion ohne Fenster?
Zitat:
Zitat:
|
Re: Win Api-Kopierfunktion ohne Fenster?
Zitat:
|
Re: Win Api-Kopierfunktion ohne Fenster?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Im Anhang eine komplette Demo. Mehr kann ich dir auch nicht helfen. |
Re: Win Api-Kopierfunktion ohne Fenster?
Zitat:
Ich habe nun mal dein Demo-Programm ausprobiert! Mit dem Button "Öffnen" hab ich eine vorhandene Datei ausgewählt und mit dem Button "Speichern unter" eine andere Datei gewählt, die überschrieben werden soll. Danach hab ich den Button "kopieren" gedrückt! - Aber nichts funktioniert! (mit nichts mein ich nichts!!). Hab auch schon ausprobiert, ob es reicht nur einen Ordner anzugeben, aber wie gesagt - es rührt sich nichts! Sorry, aber es funktioniert nunmal nicht bei mir! |
Re: Win Api-Kopierfunktion ohne Fenster?
Das Ziel muss ein Dateiname sein.
Wie groß ist die Datei, die du kopieren willst? Welches Betriebssystem? Hast du die nötigen Rechte? Darfst du die Datei lesen und in das Zielverzeichniss schreiben? |
Re: Win Api-Kopierfunktion ohne Fenster?
Zitat:
Zitat:
Zitat:
|
Re: Win Api-Kopierfunktion ohne Fenster?
Dann kann ich es mir nicht erklären.
Ich hätte dan nur noch demn StreamProgressAdapter: ![]() |
Re: Win Api-Kopierfunktion ohne Fenster?
Ich hab es jetzt mal auf meinem Rechner zu Hause probiert (das erste mal war aufm rechner in der Arbeit)
und da hat es funktioniert! Nun meine weitere Frage: Wie kann ich damit Ordner kopieren? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 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