Autor Beitrag
Christian213
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Fr 26.04.13 11:37 
Hallo,

ich verzweifel gerade an folgendem Task: Ich möchte gerne Dateien kopieren (nicht verschieben). Dabei sollen eventuell vorhandene, gleichnamige Dateien ersetzt werden.
Sind diese in Benutzung, so soll dies beim nächsten Reboot passieren.
MoveFileEx bietet mittels des Flags MOVEFILE_DELAY_UNTIL_REBOOT ja eine entsprechende Möglichkeit beim Verschieben, nun will ich aber nicht dass die Quellfiles gelöscht werden.
Hat jemand eine Idee?

Vielen Dank und Gruß
Christian
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Fr 26.04.13 13:07 
user profile iconChristian213 hat folgendes geschrieben Zum zitierten Posting springen:
Sind diese in Benutzung, so soll dies beim nächsten Reboot passieren.

Batch-Datei mit den Kopierbefehlen erstellen. Diese Datei dann in dem entsprechenden Registry-Schlüssel eintragen. Als letzten Befehl in der Batch-Datei einen Befehl zum Löschen dieser Datei hinzufügen.

Als Schlüssel kommt ...\Software\Microsoft\Windows\CurrentVersion\RunOnce (gibt's unter HKey_Current_User und HKey_Local_Machine) in Betracht.
Christian213 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Fr 26.04.13 13:16 
user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconChristian213 hat folgendes geschrieben Zum zitierten Posting springen:
Sind diese in Benutzung, so soll dies beim nächsten Reboot passieren.

Batch-Datei mit den Kopierbefehlen erstellen. Diese Datei dann in dem entsprechenden Registry-Schlüssel eintragen. Als letzten Befehl in der Batch-Datei einen Befehl zum Löschen dieser Datei hinzufügen.

Als Schlüssel kommt ...\Software\Microsoft\Windows\CurrentVersion\RunOnce (gibt's unter HKey_Current_User und HKey_Local_Machine) in Betracht.

Hallo,
Danke für die Antwort.
Nur was mache ich bei Benutzern mit eingeschränkten Rechten? Die dürfen ja nichts in die Registry schreiben.
Gibt's denn keine Funktion über die ShellAPI die ich nutzen könnte?
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Fr 26.04.13 14:22 
Es gibt doch eine Menge Tools, die ein Synchronisieren von Verzeichnissen (ich denke, das meinst Du damit) ermöglichen, die man auch vielleicht als Task schreiben kann, bei denen selbst benutzte Dateien mit kopiert werden.

Ich nutze die Eigenschaften von Freecommander für solche Zwecke. Das ist ein Explorer-Ersatz mit Synchronisationstool.

www.freecommander.com/de/

oder suche doch mal bei Google oder anderen Suchmaschinen.

Oder nutze doch Synchronisationstools wie Subversion:

www.heise.de/download/subversion.html

Da kannst Du auch Versionshistorien verwalten. Besonders geeignet für Programmierverzeichnisse. Falls Du bei Quelltext-Änderungen mal was vermasselt hast.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 26.04.13 15:55 
Das ist ein klassisches Beispiel für einen Installer. Wenn du ein Setup Tool benutzt, das auf den Windows Installer setzt, macht das das automatisch ohne dass du da groß etwas machen musst...

Unter current_user kann ein eingeschränkter Benutzer auch in den Autostart-Schlüssel schreiben.