Forum: PC-Programmierung Portable Apps selber erstellen (wohin mit der *.ini Datei?)


von Andy (Gast)


Lesenswert?

Hi

Möchte gerne eine eigene Portable Apps erstellen, welche aus einer .exe 
Datei (Delphiprogramm) und ein paar weiteren Files besteht. (Help usw.)

Das ganze soll ohne Installation ab Memory- Stick auf einem Windows- 
Rechner lauffähig sein.

Brauche aber noch eine *.ini Datei, wo ich Programm- Initialisierungen 
hineinschreiben kann.

Ist ein Schreibzugriff auf diese Datei ohne Admin Rechteerlaubt, wenn 
sie sich im selben Pfad befindet wie die *.exe Datei?

Gruss Andy

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kannst du nicht voraussetzen. Z.B. wenn jemand die portable Installation 
auf einer CD mit sich trägt oder seinen Stick schreibgeschützt hat.

Ich würde beim Speichern einer Konfiguration den User fragen, ob er das 
will und wenn ja wohin das soll. Und dass er dann ein beschreibbares 
Medium bereithalten soll.

Eine Alternative könnte je nach Anwendung auch sein, die Konfiguration 
verschlüsselt auf einem Server im LAN/Internet ab zu legen z.B. 
verschlüsseln und dann mit Steganografie in ein unverdächtiges Medium 
eingearbeitet auf einem öffentlichen Filehoster/Bildhoster... oder als 
Attachment in einem Webmailaccount... Kann ich mir z.B. bei einem 
Webbrowser gut vorstellen.

von Andy (Gast)


Lesenswert?

Hi Stefan

Danke für die Info.

Ich kann davon ausgehen, dass der Kunde die Software ausschliesslich ab 
Memory Stick startet, welcher nicht schreibgeschützt ist.

Ich möchte Programm und Daten unbedingt auf dem selben Medium halten.

Die "Portable Apps/" (siehe auch: 
http://de.wikipedia.org/wiki/Stickware) werden ja immer beliebter, weiss 
denn niemand, wie es dort gemacht wird? (Keine Registry Einträge, keine 
*.ini Dateien im Windows Verzeichnis usw.)

Wäre toll, wenn mit jemand erklären könnte, wie es sich mit den 
Zugriffsrechten unter XP/Vista betreffend Memory Stick verhält.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn die Software selber entwickelt wird, kann diese problemlos 
feststellen, von wo sie aufgerufen wird und ihre Einstellungen mit den 
Read/WritePrivateProfileXXX-Funktionen aus/in einer am gleichen Ort 
untergebrachten Ini-Datei lesen/schreiben.

Der Ini-Datei-Zugriff geht auf normalen Windows-Systemen auch ohne 
jedwede Einschränkungen, es sei denn, zusätzliche "Sicherheits"-Tools 
verhindern dies.

Den Dateinamen und Pfad kann ein Prozess mit der Win32-API-Funktion 
GetModuleFileName() bestimmen (erster Parameter NULL, zweiter Parameter 
ein ausreichend großer Puffer, dritter Parameter Anzahl Zeichen des 
Puffers).

von spess53 (Gast)


Lesenswert?

Hi

Die Funktion 'ParamStr(0)' gibt dir einen String mit Pfad und Name 
deiner Exe zurück.

Mit z.B.

s:=ExtractFilePath(ParamStr(0))+'Programm.ini';

erhälst du in s den Pfad und Namen der Ini-Datei.

MfG Spess

von Andy (Gast)


Lesenswert?

Danke ihr beiden.

Die Funktion ParamStr(0) kenne ich bereits.
Hab auch nicht das Problem den Pfad meiner EXE herauszufinden. Möchte 
nur sicher gehen, dass ich keine Zugriffsrechte beim Schreiben verletze, 
wenn ich in die INI Datei schreibe, welche in meinem EXE Verzeichnis 
liegt.

@Rufus
Wie meintest Du das genau?

... Read/WritePrivateProfileXXX-Funktionen ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.