Autor Beitrag
Moonbiker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Mo 25.09.06 23:33 
Hi ihr,

ich möchte Bilder und Videos von meiner Speicherkarte auf den Desktop verschieben. Dies soll per Autorun.inf beim Einlegen der Karte geschehn. Da ich robocopy ganz komfortabel finde und es deswegen auch habe, möchte ich es nutzen, und steuer es dazu aus einer Konsolenanwendung (Autorun.exe) heraus an. Diese soll von der Autorun.inf gestartet werden.

Starte ich die exe selbst, so funktioniert es. Doch weder der Autostart, noch der Klick auf die ShellVerknüpfung (Rechtsklick aufs Icon der Kart) funktionieren, führen aber dennoch irgendwie was aus (sorry, kanns nicht genauer sagen).

Hier meine Autorun.inf
ausblenden Quelltext
1:
2:
3:
4:
[autorun]
open=autorun.exe
shell\verb\command=autorun.exe
shell\verb=Bilder und Videos auf Desktop verschieben


Nun die Autorun.exe
ausblenden 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:
27:
28:
29:
30:
program autorun;

{$APPTYPE CONSOLE}

uses
  SysUtils, ShellApi;
var
  Quelle, Ziel: string;

begin
  Ziel:='C:'+SysUtils.GetEnvironmentVariable('homepath')+'\Desktop\HandyMedia';

  //Bilder verschieben
  GetDir(0, Quelle);
  Quelle:=Quelle+'DCIM\100MSDCF\';

  ShellExecute(0, '',
    PChar('robocopy'),
    Pchar('"'+Quelle+'" "'+Ziel+'" /S /COPYALL /MOV'),
    '', 0);

  //Videos verschieben
  GetDir(0, Quelle);
  Quelle:=Quelle+'MSSEMC\Media files\video\camera';

  ShellExecute(0, '',
    PChar('robocopy'),
    Pchar('"'+Quelle+'" "'+Ziel+'" /S /COPYALL /MOV'),
    '', 0);
end.


Ich hoffe ihr könnt mir den Fehler zeigen, vielen Dank schonmal!

Vielleicht könnt ihr mir aber auch einen anderen Weg zeigen, bspweise über eine batch-Datei. Auch das habe ich (erfolglos) schon probiert. Auch dazu schonmal vielen Dank!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 26.09.06 08:12 
GetDir liefert das aktuelle Verzeichnis und das muss nicht zwingend das Verzeichnis sein in dem der Datenträger liegt.

Desweiteren muss das HomeDir nicht unbedingt auf Laufwerk C: liegen, es kann auch im Netzwerk liegen. Und was liefert GetEnvironmentVariable('homepath') zurück? Den Pfad mit Laufwerksbuchstaben? Dann hast du da so was stehen: C:C:\Dokumente und Einstellungen.... . Warum überhaupt der Umstand? Nimm dir doch gleich die API-Funktion Suche im MSDN SHGETSPECIALFOLDERLOCATION und ermittle den Pfad zum Desktop-Ordner.
Moonbiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Di 26.09.06 08:28 
Die Änderungen sind schon sinnvoll, aber wie bereits geschrieben: es funktioniert beim ausführen (per doppelklick) aber nicht per autorun.inf.

Gibt es dazu noch Ideen?