Update-Funktion! Vista streikt!
-
Ich hab ein kleines Programm mit einer Update-Funktion gemacht!
Es prüft ob auf einem Server die Datei noch aktuell ist, und läd sie per ftp runter, sollte es nötig sein!
Da das Programm nicht überschrieben werden kann, wenn es läuft, hab ichs so gemacht, das das Programm anders heißt, dann die neue gestartet wird, und die dann das alte löscht, sich selbst mit dem alten namen hinkopiert, und dieses löscht wieder das alte...
hab hier mal den code:
if(argv[0]=="hangmanneu.exe") { Sleep(1000); system("del hangman.exe"); system("copy hangmanneu.exe hangman.exe"); system("start hangman.exe"); exit(0); } else { system("del hangmanneu.exe"); clrscr(); }Auf meinem Computer (XP) geht es wunderbar!
Doch auf meinem Freund seinen (Vista) geht er immer in den true-Bereich, weil er die spenden.exe nicht löschen kann!Dann heißt die Datei immer spendenneu.exe und wird immer mit exit beendet, also eine Endlos-Neuanfang!
Ich weiß, dass system sch****lecht ist, habe aber sonst keine ahnung wie ich das machen soll!
Wenn ihr eine gute Idee habt, wie das auch auf Vista läuft, bitte schreibt mir den Code, oder eine neue Update-Routine!
Das wär echt super!
mfg
-
Also aufgrund deines Usernames, und dem "komischen" Namen der Exe, und meinem Urin glaube ich nicht das das was du machen willst koscher ist.
Zu deinem Problem, welches Vista hat dein Freudn, 32bit oder 64bit? Kann eventuell sein das du adminrechte brauchst auf dem vista rechner um irgendwas zu löschen.
-
Firefighter schrieb:
...
Zu deinem Problem, welches Vista hat dein Freudn, 32bit oder 64bit? Kann eventuell sein das du adminrechte brauchst auf dem vista rechner um irgendwas zu löschen.er hat das 32-bit!
und warscheinlich ist ja die UAC schuld, die meldet ja schon am Programmstart, dass man Admin-Rechte braucht (auch wenn man admin ist) und das tut es eben nicht...
-
Du solltest dafür die WinAPI-Funktion DeleteFile verwenden. GetLastError() sagt dir dann auch, warum es nicht geklappt hat.
-
Hi,
zeig doch mal dein Hangman Prog !

MfG
-
Nanyuki schrieb:
Du solltest dafür die WinAPI-Funktion DeleteFile verwenden. GetLastError() sagt dir dann auch, warum es nicht geklappt hat.
warum plattformabhängig löschen, wenns auch mit ansi c++ geht?
std::remove("./asd.txt");bb
-
unskilled schrieb:
Nanyuki schrieb:
Du solltest dafür die WinAPI-Funktion DeleteFile verwenden. GetLastError() sagt dir dann auch, warum es nicht geklappt hat.
warum plattformabhängig löschen, wenns auch mit ansi c++ geht?
std::remove("./asd.txt");bb
ok!
werds mal probieren!danke!