Problem mit ShellExecute, Anführungszeichen und copy
-
Hallo zusammen,
ich möchte mit dem C++ Builder mein Programm in den Autostart kopieren. Das kopieren mach ich mit dem Dos-Befehl "copy", indem ich diesen per ShellExecute aufrufe. Allerdings gibt es ein Problem bei den Pfadangaben: Wenn ich Pfade angeben will, muss ich dies mit Anführungszeichen machen, doch der bcb interpretiert die Anführungszeichen "für sich" und es hagelt eine Menge Fehlermeldungen. Wenn ich den selben Befehl unter cmd ausführe (Start|Ausführen|cmd) klappt das Ganze!
ShellExecute(NULL, "open", "cmd", "/k copy "C:\Programme\Borland\Programme\Scherz\geil.exe" "C:\Dokumente und Einstellungen\Christian\Desktop\Geil.exe"", NULL, SW_SHOWNORMAL); Sleep(10); ShellExecute(NULL, "open", "tskill", "cmd", NULL, SW_SHOWNORMAL);
-
Hallo,
Du musst die Anführungszeichen und die Backsslashs in deinen Pfaden mit Bachslashs maskieren. etwa so
ShellExecute(NULL, "open", "cmd", "/k copy \"C:\\Programme\\Borland\Programme\\Scherz\\geil.exe\" \"C:\\Dokumente und Einstellungen\\Christian\\Desktop\\Geil.exe\"", NULL, SW_SHOWNORMAL);
-
Vielen Dank erstmal, dass mit den Schrägstrichen funktioniert.
Nur Leider bekomme ich jetzt im Dos-Fenster die Meldung "Pfad nicht gefunden"
Was habe ich jetz falsch gemacht?
-
Hallo,
Warum machst du es überhaupt so kompliziert? Du könntest ja auch CopyFile aus der WinAPI nehmen.
-
Danke für den Tipp!
An WinApi-Funktionen hatte ich gar nicht gedacht. Könntest du mal ein Beispiel posten?
-
Hallo
Zu CopyFile findest du bereist genug Beispiele hier im Forum, zum Beispiel in diesem Thread.
bis bald
akari