Seite 1 von 3
Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 11:11
von Sebastian
Es ist nun Zeit, meine Programme an Win7 anzupassen. Ich benutze meinen Rechner im Standard-Modus also mit vollen Zugriffsrechten. Ich höre immer wieder: "eingeschränkte Rechte" verwenden. Okay. Ich will hier nicht diskutieren, wo Vor- und Nachteile sind, ich muss mich sicher einmal mit dem Thema auseinandersetzen. Nun gehe ich also davon aus, dass viele User einen eingeschränkten Account verwenden. Meine Programme arbeiten stets mit Unterverzeichnissen ihres Folders. Ich lege dann also durch das Programm selbst einen Ordner /Programmname/Daten/ an. Hier werden dann die Daten gespeichert. Wenn ich hier im Forum richtig lese, dann funktioniert das mit einem eingeschränkten Account nicht? Ich kann also nicht im eigenen Programmordner Daten erstellen, löschen oder auch nur verändern? Wie muss sich stattdessen vorgehen?
LG
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 11:39
von HeX0R
Konfigurationsdateien gehören in den Pfad, die die folgende Prozedur zurückgibt (bzw. dort noch einen Unterordner anlegen).
Code: Alles auswählen
Procedure.s GetAppDataFolder()
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Protected *itemid.ITEMIDLIST, Location.s = Space(#MAX_PATH)
If SHGetSpecialFolderLocation_ (0, #CSIDL_APPDATA, @*itemid) = #NOERROR
If SHGetPathFromIDList_(*itemid, @Location)
CoTaskMemFree_(*itemid)
If Right(Location, 1) <> "\"
Location + "\"
EndIf
EndIf
EndIf
CompilerElse
Protected Location.s
Location = GetHomeDirectory()
If Right(Location, 1) <> "/"
Location + "/"
EndIf
CompilerEndIf
ProcedureReturn Trim(Location)
EndProcedure
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 17:10
von jamirokwai
HeX0R hat geschrieben:Konfigurationsdateien gehören in den Pfad, die die folgende Prozedur zurückgibt (bzw. dort noch einen Unterordner anlegen).
Hi HeX0R,
will mich da mal reinklinken... Reicht nicht auch ein einfaches
aus? Gibt es wirklich Unterschiede zwischen den Windows-Versionen?
Ich entwickle selber alles unter Mac OS X und kompiliere unter Windows XP mit anschließendem Test der neuen Funktionen. Bisher klappt auch das obige Location-Schnippsel. Windows Vista/7 habe ich nicht installiert...
Grüßle
JamiroKwai
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 17:23
von HeX0R
Jein,
siehe die Diskussion
->hier.
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 20:38
von Vera
Hallo Sebastian,
wenn Deine künftigen Programme ihre Daten nur unter APPDATA ablegen, sind sie
a) nicht mehr portable und
b) nicht mehr mit verschiedenen Versionen zu verwenden [ausser man garantiert die Kohärenz oder man macht individuelle VersionsDatenOrdner].
Es sollte davon abhängig sein, ob es Dir wichtig, oder vom Programm her zwingend notwendig ist, dass Deine Programme in einen Systemordner installiert werden müßen.
Ansonsten kannst Du Deine Programme ja auch überall woanders hin installieren (ggf. ja nur auspacken) lassen.
Am besten gefällt mir die Methode vieler Programmierer, beides mit ihrem Programm zu ermöglichen. Ist z.B. eine prog.ini im Programmordner enthalten, bleibt alles bei einander, ansonsten wird APPDATA (oder ein vom User angebbarer Ort) verwendet.
Schön wär auch, wenn es sich unter den Programmierern rumsprechen würde, dass man den User darüber informiert, dass Dateien an anderer Stelle erzeugt werden und wie man sie bei Deinstallation mit entfernt.
Ich habe inzwischen für solche 'unsauberen' Programme eine LöschSettings.bat, die nach Programmende oder bei Bedarf mal eben die Hinterlassenschaften entfernt.
Gruß ~ Vera
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 28.11.2010 21:19
von ts-soft
Nicht mehr portable stimmt. Dafür gibt es ja meist Extra-Versionen.
Ansonsten ist es natürlich absoluter Quatsch sich nicht an die Standards zu halten.
Ob da 10 oder 100 KB Einstellungsdatei beim unbedarften User auf seiner 2 TB Platte
überbleiben oder in Hamburg platzt ne Bratwurst. Selbige Programme erzeugen ohne
zu tun des Programmierers vielmehr Müll in der Registry. Jedes öffnen usw. wird in der
Registry vermerkt.
Auf kosten der Systemsicherheit, Programme woanders hin zu installieren ist einfach
nur Leichtsinn und sollte hier niemandem empfohlen werden!
Langsam wird Windows mit Vista und 7 wieder etwas sicherer, da kommen solche Vorschläge
Naja, in Computerzeitschriften wird ja auch gezeigt wie man UAC deaktiviert usw.
Manchmal kann man nur noch mit dem Kopf schütteln, als wenn MS nicht schon genug
aufzwingen musste, weil sich an diese Richtlinien bisher keiner gehalten hat, weil es bis
Windows XP ja einfach ignoriert werden konnte und auch wurde.
Gruss
Thomas
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 29.11.2010 02:48
von Vera
ts-soft hat geschrieben:Ansonsten ist es natürlich absoluter Quatsch sich nicht an die Standards zu halten.
Der rücksichtslose Verschmutzungsgrad durch Deine Tools ist sogar aussergewöhnlich hoch - Du hast nicht mal Deinen eigenen Standart.
Doch am tragischsten daran ist, dass sie sich nicht für die portable Nutzung von PB eignen.
Zudem ist es schwer anmassend, allen TBytes Platz zu unterstellen und allen zu erklären, kleine Verschmutzungen wären unwichtig und wider besseren Wissens, die eigenen User aus Bequemlichkeit heraus, gezielt zu schädigen.
Ja nieder mit unserer Umwelt. Und nieder mit jeder Freiheit.
Wir brauchen noch mehr Zwang, am Besten man kriegt nur noch einen fest gebrannten Rechner, auf dem man nicht mal mehr eine Textdatei ändern darf. Nur noch dumpfes Konsumieren und Datenoffenbarungen - schöne Zukunft in der Cloud.
Ich bin aber sehr froh,

dass es noch so viele Programmierer gibt, die portable Programme weiter geben und den Usern die Freiheit lassen, von wo aus sie gestartet werden sollen.
Gruß ~ Vera
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 29.11.2010 03:14
von ts-soft
Solche User nähren ja auch den Boden, der nötig ist, damit Viren, Trojaner und Würmer sich verbreiten können.
Gäbe es weniger DAUs, die so denken wie Du, hätten es die Schädlinge wesentlich schwerer sich zu
verbreiten. Solche Vorschläge, die Du (und viele andere auch) hier verbreitest, haben MS ja
veranlaßt mehr Zwang da hinter zu setzen, da Erklärungen anscheinend sowieso nutzlos sind.
Wenn Du von allen von mir jemals erstellten Tools die Einstellungsdateien auf eine Diskette
kopieren würdest, wäre dort noch sehr viel Platz frei. Bei größeren Tools, wo dort mehr Müll anfällt,
ist ja meist auch ein De/Installer dabei. Das Argument Müll ist gar keins! (zumal jede Anwendung,
egal wo oder ob Installiert, im laufe der Zeit, wesentlich mehr Müll in der Registry hinterläßt, selbst
wenn die Anwendung diese gar nicht nutzt).
Gerade im Anfänger-Forum, der kommenden Generation Programmieren solche Weisheiten zu
erzählen halte ich für völlig daneben.
Gruß
Thomas
PS: "Alle" Tools von mir, deren Nutzung "Portable" auch möglich ist, haben auch einen
entsprechenden Schalter, zumindest die aus den letzen Jahren.
Wobei dieser auch wirklich nur für die Nutzung auf Sticks, die auch regelmässig überprüft werden,
vorhanden ist, nicht um irgendwelche "Wilden Verzeichnisse" zu nutzen und das ganze System zu
gefährden.
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 29.11.2010 15:40
von Sebastian
Wow. Freunde. Beruhigt Euch! Nicht flamen. Es war eine ganz unschuldige Frage.
Ich werde für die Installation InnoSetup verwenden. Die Programmdaten werden also sowieso ins Programmverzeichnis kopiert. Mir geht es um spezielle Daten, die automatisiert für den User erstellt werden. Ich entnehme mal für mich (als Anfänger), dass GetHomeDirectory() der einfachste Befehl für mich ist und ich in diesem Verzeichnis die Daten ablege. Sollte der User dann meine Software entfernen, kann ich ja einen Hinweis geben, wo sich die Daten befinden und dass diese gelöscht werden können. Das sollte dann mit eingeschränkten Rechten funktionieren, oder? Ich finde es allerdings schade, dass nicht im eigenen Programmordner Daten erzeugt werden können. Ich fand das irgendwie aufgeräumter und komfortabler.
Re: Windows 7 - Rechte und Pflichten...
Verfasst: 29.11.2010 17:15
von ts-soft
Sebastian hat geschrieben:Mir geht es um spezielle Daten, die automatisiert für den User erstellt werden. Ich entnehme mal für mich (als Anfänger), dass GetHomeDirectory() der einfachste Befehl für mich ist und ich in diesem Verzeichnis die Daten ablege. Sollte der User dann meine Software entfernen, kann ich ja einen Hinweis geben, wo sich die Daten befinden und dass diese gelöscht werden können.
Du kannst auch die Procedure von HeX0R nutzen, die Dateien oder den Ordner für die Dateien von
InnoSetup erstellen lassen und dort einstellen, diese bei der Deinstallation zu berücksichtigen.
Hab gerade keine InnoSetup Hilfe da, aber {userprofilelocale} oder so ähnlich heißt der Ordner in
InnoSetup.
Gruß
Thomas