Seite 2 von 2
Re: Probleme Windows Vista und Window 7
Verfasst: 20.12.2009 15:01
von amiga123
Danke
Aber das sucht sich das Programm dann selbst raus. Mit der Code von Thomas geht es wunderbar. Ob Windows2000, XP,Vista oder Window7, jetzt sucht sich das Programm den passenden Ordner und es läuft ohne Probleme.
Danke nochmal an Thomas
Gruß Herbert
Re: Probleme Windows Vista und Window 7
Verfasst: 20.12.2009 18:55
von Mokota
Setze mich auch gerade mit dem Thema auseinander und hab ne Frage.
Und zwar gibt es ja auch Programme die den Nutzer selbst entscheiden lassen wo gespeichert werden soll. Also mit "SaveFileRequester" zum Beispiel.
Da braucht man doch dann zwingend Adminrechte oder? Wie macht das eigentlich Word etc, haben ms Programme da nen Sonderstatus?
Alles einfach in den Appdata-Ordner zu packen find ich nich so toll, normale nutzer finden die Dokumente so doch garnicht. Für Programmkonfiguration etc. machts natürlich schon Sinn.
EDIT: Noch was... entstehen nicht viele "Datenleichen" durch das Speichern im Appdata Ordner?
Da wäre wohl dann zwingend ein Setup erforderlich, damit beim Entfernen kein Müll zurückbleibt. Die wenigsten hier und in einigen anderen coms nutzen jedoch gerne Setups... und Setups benötigen ja auch wieder Adminrechte

Re: Probleme Windows Vista und Window 7
Verfasst: 20.12.2009 19:21
von ts-soft
Mokota hat geschrieben:Setze mich auch gerade mit dem Thema auseinander und hab ne Frage.
Und zwar gibt es ja auch Programme die den Nutzer selbst entscheiden lassen wo gespeichert werden soll. Also mit "SaveFileRequester" zum Beispiel.
Da braucht man doch dann zwingend Adminrechte oder? Wie macht das eigentlich Word etc, haben ms Programme da nen Sonderstatus? |
Nein, die speichern auch dort, bzw. auch in der Registry. Dokumente werden im Dokumentenordner, bzw.
unter "Eigene Dateien" gespeichert.
Mokota hat geschrieben:
Alles einfach in den Appdata-Ordner zu packen find ich nich so toll, normale nutzer finden die Dokumente so doch garnicht. Für Programmkonfiguration etc. machts natürlich schon Sinn.
Nur dafür sind diese Pfade ja gedacht, ursprünglich (mit Einführung von Win95) sollte alles in der Registry landen
Mokota hat geschrieben:
EDIT: Noch was... entstehen nicht viele "Datenleichen" durch das Speichern im Appdata Ordner?
Da wäre wohl dann zwingend ein Setup erforderlich, damit beim Entfernen kein Müll zurückbleibt. Die wenigsten hier und in einigen anderen coms nutzen jedoch gerne Setups... und Setups benötigen ja auch wieder Adminrechte

Die Datenleichen sind ja Absicht, so bleiben bei erneuter Installation alle Einstellungen erhalten. Installer entfernen diese Daten normallerweise auch nicht, nehmen ja auch kaum Platz weg, bei heutigen Festplatten.
Desweiteren legt MS ja auch grossen Wert darauf, das Du einen Installer mit MSI-Technik (die schrecklichsten überhaupt) nimmst, bzw. ohne eines solchen Installers werden viele Admins Deine
Programme auf Firmen-PCs nicht zulassen.
Gruß
Thomas
Re: Probleme Windows Vista und Window 7
Verfasst: 20.12.2009 20:09
von Mokota
Ok, danke für die Infos... dann werd ich wohl einiges umschreiben müssen.
Mache es beim Speichern dann wohl am besten so, dass abgefragt wird ob GetEnvironmentVariable("MYDOCUMENTS") im Speicherpfad nach der Abfrage mit dem Requester vorhanden ist und andernfalls ne Fehlermeldung kommt.
Oder kann man auch über ne Variable überprüfen ob der Nutzer Adminrechte hat und dann auch das Speichern in anderen Ordnern zulassen?
Re: Probleme Windows Vista und Window 7
Verfasst: 20.12.2009 20:27
von ts-soft
Mokota hat geschrieben:Ok, danke für die Infos... dann werd ich wohl einiges umschreiben müssen.
Mache es beim Speichern dann wohl am besten so, dass abgefragt wird ob GetEnvironmentVariable("MYDOCUMENTS") im Speicherpfad nach der Abfrage mit dem Requester vorhanden ist und andernfalls ne Fehlermeldung kommt.
Die Environmentvariable gibts aber so leider nicht
Code: Alles auswählen
Procedure.s GetSpecialFolder(CSIDL.l)
Protected *itemid.ITEMIDLIST
Protected location.s = Space(#MAX_PATH)
If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
If SHGetPathFromIDList_(*itemid, @location)
If Right(location, 1) <> "\" : location + "\" : EndIf
ProcedureReturn location
EndIf
EndIf
EndProcedure
Debug GetSpecialFolder(#CSIDL_PERSONAL)
ist der korrekte Pfad!
Mokota hat geschrieben:
Oder kann man auch über ne Variable überprüfen ob der Nutzer Adminrechte hat und dann auch das Speichern in anderen Ordnern zulassen?
Prinzipiell schon:
aber normallerweise sollte der User von alleine einen Pfad wählen wo das Speichern erlaubt ist,
wäre ja ziemlich komisch wenn er Windows, ProgramFiles oder ähnlich wählt.
Wer davon betroffen ist, bekommt es recht schnell mit, wo und wo nicht.
Gruß
Thomas
Re: Probleme Windows Vista und Window 7
Verfasst: 21.12.2009 15:56
von KatSeiko
Code: Alles auswählen
GetSpecialFolder(#CSIDL_DESKTOPDIRECTORY) ;Liefert den Desktop für den Nutzer
GetSpecialFolder(#CSIDL_COMMON_DESKTOPDIRECTORY) ;Liefert den Desktop für alle User
GetSpecialFolder(#CSIDL_PROGRAMS) ;Liefert das Startmenü für den Nutzer
GetSpecialFolder(#CSIDL_COMMON_PROGRAMS) ;Liefert das Startmenü für alle User
GetSpecialFolder(#CSIDL_PROGRAM_FILES) ;Liefert den Programm-Ordner.
;ist unter 64bit-OS automatisch (x86), wenn mit 32bit kompiliert.
GetSpecialFolder(#CSIDL_PROGRAM_FILESX86) ;Liefert unter x64-OS und -Programm das (x86)-Verzeichnis.
Re: Probleme Windows Vista und Window 7
Verfasst: 21.12.2009 20:08
von mk-soft
Speicher freigeben nicht vergessen (CoTaskMemFree)
Code: Alles auswählen
Procedure.s GetSpecialFolder(CSIDL.l)
Protected *itemid.ITEMIDLIST
Protected location.s = Space(#MAX_PATH)
If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
If SHGetPathFromIDList_(*itemid, @location)
CoTaskMemFree_(*itemid)
If Right(location, 1) <> "\" : location + "\"
EndIf
ProcedureReturn location
EndIf
EndIf
EndProcedure
FF

Re: Probleme Windows Vista und Window 7
Verfasst: 21.12.2009 20:25
von ts-soft
mk-soft hat geschrieben:Speicher freigeben nicht vergessen (CoTaskMemFree)
Ist mir nach einem Plattencrash wieder eine alte Version in meine Templates gerutscht
Muß die alle mal Generalüberholen, aber bin zu Faul
Gruß
Thomas