![]() |
Delphi-Version: 7
Update.exe nach TempDir unter Win7 kopieren?
Hallo,
ich verwende folgende Komponente um meine Anwendung zu aktualisieren. ![]() Da hab ich die Möglichkeit ein Verzeichnis auszuwählen wohin die Update.exe hinein kopiert werden soll. Ich verwende das Verzeichnis Temp. Es klappt auch soweit alles gut, nur unter Windows 7 geht das nicht. Die Update.exe wird irgendwo hin runtergeladen aber sie starten anschließend nicht, obwohl sie das automatisch tun soll. Ich hab hier die Funktion die das erledigen soll:
Delphi-Quellcode:
Kann man diese irgendwie an Win 7 anpassen? Wäre sehr dankbar wenn mir jemand helfen würde. Danke!
function GetTempDir(): string;
var PC: Array[0..MAX_PATH + 1] of Char; s: string; begin GetTempPath(MAX_PATH, PC); s := IncludeTrailingBackslash(StrPas(PC)); if not DirectoryExists(s) then begin s := ExtractFilePath(Application.ExeName); s := IncludeTrailingBackslash(s); s := s + 'Temp\'; CreatePath(s); end; Result := s; end; |
AW: Update.exe nach TempDir unter Win7 kopieren?
Was gibt die Funktion denn zurück?
Ich mache es nämlich genau so, wie es aussieht, nur dass ich auf diesen mittleren Teil verzichte, wo ein Temp-Ordner im Programmverzeichnis angelegt wird. Stattdessen bekommt der Benutzer eine Fehlermeldung, wenn der Temp-Ordner nicht ermittelt werden konnte oder nicht existiert. |
AW: Update.exe nach TempDir unter Win7 kopieren?
Ich hoffe du hast auch eine Vista-Erweitertes Manifest um die Virtualisierung des Dateisystems abzuschalten (unter C:\Programme\.. kann man kein Verzeichnis erstellen wenn der Prozess nicht mit Admin-Rechten gestartet wurde (UAC-Aktiv)).
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Zitat:
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Zitat:
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Wir hatten das hier schon ziemlich oft...
Programm liegen unter c:\programme bzw c:\program files Dort darf ein User NICHT schreiben (das ist auch schon bei XP so)! Somit kannst du dort auch keine Ordner anlegen. Abhängig von den Manifesten an deiner Anwendung, schlägt die Dateisystem Virtualisierung zu! Der Temp-Pfad ist (abhängig vom Benutzerkonto und UAC) im Benutzerprofil oder unter c:\windows\temp. Letzter Ordner kann auch nur mit Adminrechten geschrieben werden. Die Ordner solltest du wenn überhaupt nur über die "well known folders" ermitteln. |
AW: Update.exe nach TempDir unter Win7 kopieren?
Naja, ich kenne die Komponente, die du da benutzt, nicht. Das habe ich für meine Programme alles selbst gebaut. Wenn aber z.B. kein Temp-Dir ermittelt werden konnte und CreatePath() fehlschlägt, was passiert denn dann? Hast du Windows 7 nicht, um das zu debuggen (der Screenshot ist glaube ich auf Win7 gemacht :P..)?
Zitat:
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Zitat:
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Zitat:
|
AW: Update.exe nach TempDir unter Win7 kopieren?
Zitat:
Ich hab kein Win 7, schade kann das nicht testen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz