jeatrexs
Goto Top

VB6 Ausgeführte Datei kopieren

Hallo Leute,

ich brauche dringend hilfe...

ich bin grade dabei ein Programm (VB6) zu schreiben, und hänge schon ne weile an dem Problem,
dass ich meine Exe des Programms kopieren möchte per Filesystemobject.

hier die Codezeilen:
        AutostartPath = C:\temp
        Call fs.CopyFile(App.path & "\" & App.EXEName & ".exe", AutostartPath, True)  

und das Problem ist die Fehlermeldung die ich immer erhalte:

Laufzeitfehler '70'
Zugriff verweigert.


Warum ist das so? Wenn eine Datei läuft funktioniert es im Windows wunderbar sie zu kopieren (im gegensatz zu verschieben). Warum funktioniert das dann in meinem Code nicht?

Ich hoffe Ihr könnt mir helfen

Content-Key: 113252

Url: https://administrator.de/contentid/113252

Printed on: April 20, 2024 at 03:04 o'clock

Member: vbMaxi
vbMaxi Apr 05, 2009 at 09:49:31 (UTC)
Goto Top
Hallo,
hast du Vista, XP oder irgendwas andres!? Wenn du Vista hast, dann starte die exe mal mit administrator rechten...

mfg vbMaxi
Member: Biber
Biber Apr 05, 2009 at 10:12:53 (UTC)
Goto Top
Moin jeaTreXs,

versuche mal,
  • bei der Wertzuweisung von AutostartPath den Pfad "c:\Temp" im Anführungszeichen zu setzen
  • und wenn dieser String als Destination der Methode FileCopy verwendet wird, einen Backslash anzuhängen.

        AutostartPath = "C:\temp"  
        fs.CopyFile(App.path & "\" & App.EXEName & ".exe", AutostartPath & "\", True)  

Grüße
Biber
Member: jeaTreXs
jeaTreXs Apr 05, 2009 at 12:32:16 (UTC)
Goto Top
@ vbMaxi:

ich verwende XP!
Member: jeaTreXs
jeaTreXs Apr 05, 2009 at 12:32:42 (UTC)
Goto Top
@Biber:

sorry, ich habe es falsch reingeschrieben. Ich habe es natürlich mit den Anführungszeichen gemacht...

weiß sonst jemand woran es liegen könnte?
Member: Biber
Biber Apr 05, 2009 at 15:50:06 (UTC)
Goto Top
Zitat von @jeaTreXs:
@Biber:

sorry, ich habe es falsch reingeschrieben. Ich habe es natürlich
mit den Anführungszeichen gemacht...
Und Du hast auch natürlich einen Backslash an den Autostartpath angefügt, hmm?

Tja dann, wenn alle anderen Möglichkeiten systematisch ausgeschlossen werden können, bleiben doch frei nach Arthur C. Doyle nur noch zwei verbleibende übrig, da die Meldung ja nun mal "Zugriff verweigert" heißt
  • entweder der App.Path beinhaltet zusätzliche Leerzeichen und erfordert weiter umschließende Anführungszeichen
  • oder Du hast Deine Quelldatei (exclusiv) geöffnet

Jede andere Erklärung würde mich überraschen.

Grüße
Biber
Member: jeaTreXs
jeaTreXs Apr 05, 2009 at 18:37:21 (UTC)
Goto Top
das mit dem fehlenden Backslash am Path kann eigentlich keine Schwierigkeiten verursachen, da ich beim Debuggen den wert ausgelesen hab und im Explorer geöffnet habe (ohne Probleme).

App.Path enthält keine leerzeichen.

Und was meinst du mit die Quelldatei exklusiv geöffnet?
Member: Biber
Biber Apr 05, 2009 at 22:03:29 (UTC)
Goto Top
Zitat von @jeaTreXs:
das mit dem fehlenden Backslash am Path kann eigentlich keine
Schwierigkeiten verursachen, da ich beim Debuggen den wert ausgelesen
hab und im Explorer geöffnet habe (ohne Probleme).
Moin jeaTreXs,

viele Menschen in meinem Alter müssen manche Fragen 3x stellen, weil sie die Antwort irgendwie nicht auf Anhieb verstehen - damit kann ich aber leben.
Ich hoffe, Du kannst mir diesen Altersstarrsinn nachsehen, denn ich frage jetzt noch mal
--> Mit einem Backslash funktioniert es auch nicht, ergab Dein Test??

App.Path enthält keine leerzeichen.
Okay, ist also gemäß deduktiver Methodik gestrichen.
Und was meinst du mit die Quelldatei exklusiv geöffnet?
Welches der drei Worte "Datei", "exklusiv" und "geöffnet" ist Dir denn das Erläuterungsbedürftigste?

Grüße
Biber
Member: jeaTreXs
jeaTreXs Apr 06, 2009 at 20:35:31 (UTC)
Goto Top
- Nein mit Backslash gehts nich

exklusiv ^^

Die Datei die ich kopieren möchte ist die, die die gerade läuft.

Das heißt das Programm, will sich selbst kopieren.

oder so:

ich möchte das kopieren:

App.Path & "\" & App.EXEName & ".exe"

vllt wirds damit deutlicher.

Gruß jeatrexs