AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Nichtvirtualisierter Ordner auf Win7?
Thema durchsuchen
Ansicht
Themen-Optionen

Nichtvirtualisierter Ordner auf Win7?

Ein Thema von frieder2008 · begonnen am 9. Sep 2011 · letzter Beitrag vom 9. Sep 2011
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Nichtvirtualisierter Ordner auf Win7?

  Alt 9. Sep 2011, 09:45
Unter Win XP nie ein Problem gewesen.
Klar, weil du immer als Administrator gearbeitet hast. bei mir würde dein Programm nicht funktionieren, weil es keine Schreibrechte im Programmeordner hätte, da ich nur als normaler Benutzer an meinem Rechner arbeite.

Zitat:
Unter Win7 (64) auch kein Problem, sofern das Programm nicht in einem der Systemverzeichnisse (system/programme usw.) liegt.
Weil du da auch keine Schreibrechte hast. Selbst wenn du als Administrator unter Vista und höher angemeldet bist, hast du erst mal nur eingeschränkte Rechte, es sei denn dein Programm hat ein Manifest, welches höhere rechte anfordert, dann poppt die UAC auf.

Zitat:
Wird das Programm aber im App-Verzeichnis (C:\Program Files (x86)) installiert, wird der temp-Ordner automatisch im VirtualStore gespeichert.
Habe ich die Sache mit den Rechten schon erwähnt? Damit auch alte Programme laufen, die es "gewöhnt" waren als Administrator ausgeführt zu werden (Standardkonto bei XP), hat Microsoft die Virtualisierung entwickelt, welche solche Schreibzugriffe einfach umbiegt.

Zitat:
Um damit verbundene Probleme einfach zu umgehen, suche ich einen (windows-versionen-übergreifenden) Ordner, in dem ich mein temp anlegen könnte. Ich habe es dann auch mit dem Windows-temp-Verzeichnis (ermittelt aus den Umgebungsvariablen) versucht, aber das klappt nicht (directoryexists macht dann schon Probleme).
Benutze das Temporäreverzeichnis, dafür ist es da. Und so kannst du den Pfad ermitteln:
Delphi-Quellcode:
function GetTempDir(): string;
var
  Size: DWORD;
  Len: DWORD;
begin
  Size := MAX_PATH;
  SetLength(Result, Size);
  Len := GetTempPath(Size, PChar(Result));
  if Len > 0 then
    SetLength(Result, Len)
  else
    raise Exception.Create(SysErrorMessage(GetLastError));
end;
Ich glaube, dein Problem ist nicht die Ermittlung des Temporärenverzeichnisses, sondern das was du danach machst in der Schleife. Lass dir mal die Zeichenkette anzeigen (Zwischenspeichern in einer Variable) und guckt, was du dir da zusammenbastelst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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