#1 24. Mai 2006 Hi Leute! Ich hab ein Prog namens dday.exe in Delphi gecodet und will, dass es sich beim Start selbst in den Autostartordner verschiebt. OS ist WinXP Pro. Wie lässt sich das machen? + Multi-Zitat Zitieren
#2 24. Mai 2006 Muss dein Prog umbedingt in den Autostartordner verschoben werden oder reicht es, wenn es von dem aktuellen Ort aus, beim Windows start ausgeführt wird ? + Multi-Zitat Zitieren
#3 24. Mai 2006 ich würde nen Dephie Befehl zum kopieren nehmen und dann die Datei ins Verzeichnis Dokumente Und Einstellungen\All Users\Programme\Autostart kopieren + Multi-Zitat Zitieren
#5 24. Mai 2006 Code: If ExtractFilePath(Application.Exename) <> 'C:\Dokumente Und Einstellungen\All Users\Programme\Autostart' then begin Copyfile(Application.Exename, 'C:\Dokumente Und Einstellungen\All Users\Programme\Autostart\' + ExtractFileName(Application.Exename); //Hier kannste deine Exe noch deleten, oder die kopierte ausführen end; Such dir aber lieber den Ordner für den jeweiligen User raus. Nach der API muste mal in einem Forum suchen oder so. + Multi-Zitat Zitieren
#6 24. Mai 2006 Code: [Fehler] main.pas(53): E2010 Inkompatible Typen: 'string' und 'PAnsiChar' [Fehler] main.pas(53): E2010 Inkompatible Typen: 'string' und 'PAnsiChar' [Fataler Fehler] dday.dpr(5): F2063 Verwendete Unit 'main.pas' kann nicht compiliert werden ??? + Multi-Zitat Zitieren
#7 24. Mai 2006 Das ganze Prog erinnert mich stark an C++ und da gibt's ein ähnliches Problem, weil die Funktion für Copyfile zwei chars erwartet du dem aber String zu futtern gibst. Bei C++ heißt die Funktion um ausm String en char zu machen .c_str() wenn's dass bei Delphi auch geben sollte... dann sollte es so funktionieren.... Code: If ExtractFilePath(Application.Exename) <> 'C:\Dokumente Und Einstellungen\All Users\Programme\Autostart' then begin Copyfile(Application.Exename.c_str(), AnsiString('C:\Dokumente Und Einstellungen\All Users\Programme\Autostart\' + ExtractFileName(Application.Exename).c_str()); //Hier kannste deine Exe noch deleten, oder die kopierte ausführen end; Aber wie so viele wissen is Delphi net C++ und es kann sein das dass jetzt überhaupt gar net funktioniert... Dann solltest du nach ner Funktion in Delphi suchen, die einen String in Char umwandelt. mfg + Multi-Zitat Zitieren
#8 24. Mai 2006 Sry.. hatte ich vergessen. Du musst noch einen Typecast machen -> PChar(STRING) + Multi-Zitat Zitieren
#9 24. Mai 2006 Code: procedure Kopieren; var mem : TMemoryStream; FilePathA, FilePathB : String; begin FilePathA := 'C:\Daten\Test.exe'; // Pfad der zu kopierenden Datei FilePathB := 'C:\Programme\Test\Test.exe'; // Zielpfad mem := TMemoryStream.Create; try mem.LoadFromFile(filePathA); mem.SaveToFile(FilepathB); finally mem.Free; end; end; Natürlich noch die Pfade anpassen. + Multi-Zitat Zitieren
#10 24. Mai 2006 Ich würde sagen, das ist eine der dümmsten Möglichkeiten Dateien zu kopieren. Du lädst vorher alles in den Ram, bei größeren Dateien dauert das ewig. + Multi-Zitat Zitieren
#11 24. Mai 2006 Wobei sicher nicht davon auszugehen ist, das seine Datei riesig ist. PS... Warum dumm?! Bei kleinen Dateien auf jeden Fall zu empfehlen. + Multi-Zitat Zitieren
#12 25. Mai 2006 So, und wenn ich FilepathA nicht weiß und ich nicht weiß, wie der Benutzer heißt, der das in den Autostart bekommen soll? + Multi-Zitat Zitieren
#13 25. Mai 2006 FilepathA kannst du relativ angeben, sprich 'DeineExe.exe'. Dann könntest du die Datei in den Autostart aller User kopieren: C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart\ + Multi-Zitat Zitieren