EXE-Datei zum ersten mal ausgeführt?

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

EXE-Datei zum ersten mal ausgeführt?

Beitrag von Zudomon »

Huhu!

Wie würdet ihr oben genanntes am besten realisieren?

Der Hintergrund ist, ich muss zum Konfigurieren der neuen Stonequestversion ermitteln, ob eine neu Konfiguration nötig ist. Das könnte ich auch beim Update machen, hätte dann natürlich den nachteil, dass schon bei den Vorversionen bestimmt sein muss, wie das ganze bei irgendeiner zukünftigen Version gemanaged werden muss, was natürlich unmöglich ist. Es geht zum Beispiel um bereinigen des Caches, malen bzw. installieren der Texturen usw.

Ich könnte das ganze mit in die Exe bauen, finde das aber eher unschön. Meine Idee wäre nun, dass ganze einfach in ein Configfile zu speichern, also welche Version es ist und wie oft bzw. ob sie zum ersten mal ausgeführt wird.

Aber ich würde gerne noch hören, welche Ideen ihr so habt.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Tiles »

Ich packe sowas immer in eine settings.ini. Und dann ab damit in den Appdata Ordner.

Mei waren das noch schöne Zeiten als man die Ini neben der Exe ablegen durfte. Vermalledeites Rechtegedöns :/
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von eXile »

Du kannst es auch machen, wie die „Open File - Security Warning“: Einfach die Information in einen zweiten NTFS-Stream der Exe abspeichern. Setzt natürlich sowohl Windows wie auch NTFS voraus. Oder meintest du genau das mit „in die Exe bauen“?
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Zudomon »

eXile hat geschrieben:Du kannst es auch machen, wie die „Open File - Security Warning“: Einfach die Information in einen zweiten NTFS-Stream der Exe abspeichern. Setzt natürlich sowohl Windows wie auch NTFS voraus. Oder meintest du genau das mit „in die Exe bauen“?
Ich meinte, einfach so mit in die Exe bauen, wie die Versionsnummer usw. auch
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von antisteo »

In der GNU/Linux-Welt ist es üblich, dass Programme systemweit installiert werden, die Einstellungen sich jedoch auf den Nutzer beziehen. Aus diesem Grund werden auch Default-Einstellungen nicht bei der Installation oder beim Programm-Upgrade angelegt, sondern beim ersten Programmdurchlauf. Das Programm prüft, ob es schon einen Konfigurationsordner an einem auf den Nutzer bezogenen Ort angelegt hat ($HOME/.programmname/) und wenn nicht, wird die Konfiguration erstellt. Das ganze läuft so gut, dass man bei einer Migration auf einen anderen Rechner oder ein anderes Betriebssystem alle seine Einstellungen für alle seine Programme behalten kann. Außerdem hatte ich noch nie wirkliche Probleme mit Updates und Inkompatibilität mit alten Versionen.
Du solltest für deinen Teil vielleicht zwei Regeln beachten:
- Ein dynamisches Datenformat wie JSON oder XML benutzen (ist im Standardumfang vom Freepascal-Compiler)
- Speichere jedes mal die Versionsnummer mit ab, auf die sich die Datenbestände beziehen. Damit kannst du mehrere Settings-Reader für alle möglichen Versionen deines Programms anbieten.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
joggel

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von joggel »

Jo, also mir fällt auch nur spontan ein, das über eine Config-File zu tun.
Tiles hat geschrieben: Mei waren das noch schöne Zeiten als man die Ini neben der Exe ablegen durfte. Vermalledeites Rechtegedöns :/
Wieso das denn? Und mit welcher Begründung darf man das denn nicht mehr?
Benutzeravatar
Krishty
Establishment
Beiträge: 8240
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Krishty »

Bezieht sich wohl darauf, dass man seit Vista ohne Admin-Rechte nicht mehr ins Programmverzeichnis schreiben darf …

… in viele andere hingegen schon. Wenn man sein Programm also ohne Installation ausliefern kann, ist das kein Problem – ob es verantwortungsvoll gegenüber dem Anwender ist, ist eine andere Frage. (Siehe auch: Warum kopiert Windows nicht Apples großartiges Bundles-Konzept? – Weil es das längst hat und es sich dort „Verzeichnis“ nennt.)

Ich würde das btw speichern, indem ich es nicht speichere. Von irgendwo wirst du deine Einstellungen ja her lesen, und wenn da noch nichts ist, weißt du, dass da was Neues hinmuss.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Tiles »

Och dürfen darf man immer noch. Nur tun tuts dann eben nicht mehr immer :)

Bei installierten Programmen ist es deswegen keine gute Idee mehr weil ab Win Vista und aufwärts im Programme Pfad die Benutzerkontensteuerung UAC zuschlägt, und schreibenden Zugriff abklemmt. Kann also passieren dass deine Ini oder andere Textformate nicht mehr beschrieben wird.

Und zwischen den Konten ist es auch noch mal so eine Sache. Da muss das Zeug dann in den ProgramData Ordner wenn du unter den Konten die gleichen Daten verwenden willst. Die Appdata Ordner können nur vom jeweiligen zugehörigen Konto aus gelesen werden. Miniweich will alle programmbezogenen Daten auf die es schreibenden Zugriff gibt unbedingt im Appdata oder ProgramData Pfad wissen. Angeblich weils so viel sicherer ist. Ich frag mich allerdings immer noch was da jetzt sicherer sein soll. Nen Trojaner kannst du auch da reinpacken. Aber das ist wieder eine andere Geschichte :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von dot »

Ich würd einfach schauen ob schon ein Configfile bzw. RegKey vorhanden ist. Wenn ja nimm die Config von dort, wenn nein, erzeug eine neue.

@Tiles: Aber dein Trojaner kann ohne UAC Elevation nicht im Program Files Verzeichnis rumschreiben aka Dateien dort infizieren.
joggel

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von joggel »

Achso... ok! Dachte das das jetzt irgend sone Rechtssprechung-Sache ist, und wollte mich wieder hier lautstark vorm Rechner empören.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Zudomon »

Ja dann mach ich das direkt im EXE Verzeichnis bzw. der Subfolder...
Mag ja sein, dass das gegen die heutige Norm geht... aber ich finde es gut, ein Programmverzeichnis zu haben, in dem alles für das Programm drin gespeichert ist. Das ist vielleicht gut gemeint, dass man Anwendungsdaten, Tempdaten usw. schön trennt... aber gut finde ich das nicht... ich orientiere mich gerne an die alten Spiele... Doom - Duke - Quake - Unreal... ich will auch nichts in die Registry schreiben... es gibt nur mein Verzeichnis, alles außerhalb ist unsicheres Terrain...

Denke, dann werd ich es auch erstmal übers Configfile machen, in dem dann einfach die Version steht...
Benutzeravatar
Lynxeye
Establishment
Beiträge: 145
Registriert: 27.02.2009, 16:50
Echter Name: Lucas
Wohnort: Hildesheim
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Lynxeye »

Sorry, wenn ich hier quer haue, aber für mich ist die Aufteilung, wie sie seit Vista ist einfach logischer. Und das, obwohl ich seit Jahren kein Windows mehr anfasse, wenn ich es vermeiden kann.

Das Programm an sich hat einen eigenen Ordner und jeder Benutzer bekommt sein eigenes Programmprofil in seinem Homeverzeichnis. Ich bin der Meinung, dass wenn man für eine Plattform entwickelt. man sich auch die Gegebenheiten dieser Plattform anpassen muss und nicht alles nach Gutdünken gestalten kann.

Jeder Verstoß gegen diese Plattformregeln führt zwangsläufig dazu, dass der Benutzer Sicherheitsfeatures außer Kraft setzen muss, um das Programm zu nutzen. Das fängt bei Programmen, welche unbedingt in ihr Installationsverzeichnis schreiben wollen an und hört bei unsignierten Treibern auf. Ich jedenfalls würde kein Programm installieren, welches mich zwingt Sicherheitsfeatures abzuschalten; aber wahrscheinlich stehe ich damit ziemlich allein auf weiter Flur, der 0815 User klickt beim UAC eh immer auf "zulassen".
waigie
Beiträge: 82
Registriert: 20.05.2009, 19:37

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von waigie »

Da muss ich Lynxeye zustimmen. Die Rechteverwaltung unter Windows 6.X ist wichtig und sollte auch sinnvoll genutzt werden. Ich sehe einfach nicht ein warum ein Spiel Adminrechte auf meinem System benötigen sollte. Das ist höchstens nötig wenn Content nachgeladen werden soll (Maps, Addons etc.) und in diesen Fällen kann das Spiel gerne um Erlaubnis bitten aber nicht bei jedem Start.
In deinem Fall heißt das aus meiner Sicht, Stonequest sollte nur Adminrechte benötigen wenn ein Update bereit steht. In dem Fall ist es völlig legitim das Dateien im Installationsordner geändert werden. Du kannst hier neue Texturen anlegen und speichern, Daten in Configfiles etc. pp. Starte ich Stonequest und es steht kein Update bereit dann braucht es auch keine Adminrechte und kann somit nicht in eine Configdatei schreiben die sich im Verzeichnis der Exe befindet.

Für alles andere gibt es sinnvolle andere Orte. Alle benutzerspezifischen Daten gehören einfach ins Homedir. Nichts ist nerviger als wenn der kleine Bruder zum x-ten mal die Steuerung verstellt oder einen Speicherstand versaut weil er meint mit 5 HP den letzten Überschreiben zu müssen. Und für die wenigen Daten die nicht Userabhängig sind gibt es das Verzeichnis ProgramData.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Tiles »

@Tiles: Aber dein Trojaner kann ohne UAC Elevation nicht im Program Files Verzeichnis rumschreiben aka Dateien dort infizieren.
Daran hatte ich gar nicht gedacht. Es macht das System also tatsächlich ein wenig sicherer :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Helmut »

Aber auch nur ein wenig. Der Trojaner kann sich auch so ins System klinken, auf einen normalen UAC Dialog warten und dann aber sein eigenes Programm mit Adminrechten ausführen lassen. Wenn man also nicht bei jedem Dialog auf den Pfad der Exe achtet (den man erst mit einem Extraklick einblenden muss), bringt die Sache effektiv nichts.

Aber UAC ist natürlich trotzdem ein guter Ansatz und man sollte sich auf jeden Fall an die Spielregeln halten und die Benutzerdaten im Benutzerordner speichern.
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von BeRsErKeR »

Lynxeye hat geschrieben:... der 0815 User klickt beim UAC eh immer auf "zulassen".
Nö UAC ist das erste was ich nach der Installation abschalte. Das liegt aber nicht daran, dass ich gegen benutzerabhängige Einstellungen im Homedir bin, sondern eher daran, dass es mich nervt und ich mir nicht irgendwelche Sachen von meinem System verbieten lassen will oder ständig irgendwas bestätigen muss. Ich trage selbst die Verantwortung und wenn ich was falsch mache oder mir Trojaner einfange, dann ist es halt meine eigene Schuld. Ich hasse Assistenten, die mir irgendwelche Dialoge an den Kopf knallen sobald ich was machen will. Windows ist für mich seit Vista eh nicht mehr betrachtungswürdig. Ich nutze immer noch XP, wenn es mal Windows sein muss, und das wird sich in den nächsten Jahren auch nicht ändern. Auf Arbeit muss man natürlich mit der Zeit gehen, aber mich zu Hause noch mit mit Windows 7 rumquälen, das muss ich nicht haben. Ich hoffe Linux wird sich in naher Zukunft genug etabliert haben, sodass Windows vom Thron geschubst wird.
Ohne Input kein Output.
hagbard
Beiträge: 66
Registriert: 05.08.2010, 23:54

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von hagbard »

Das sauberste ist es unter %APPDATA%\<Anwendungsname> alle Daten abzulegen. Das ist Windows-konform, hinterlässt so wenig Spuren am System wie möglich (in Gegensatz zu irgendwelchen Registry-Schlüsseln) und erlaubt es personalisierte Einstellungen einfach von ein System zum Anderen durch Kopieren zu portieren. In der Regel tut es dabei eine *.ini es seitdem man will verhindern dass der Nutzer von Hand daran rumspielen kann.
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von pUnkOuter »

Das liegt nicht an der Office-Suite im Generellen, sondern an Outlook im Speziellen. Ich habe fünf Jahre als Systems Engineer gearbeitet, und dabei mehrmals versucht, Betriebe auf Linux (auch auf dem Desktop) umzustellen. Gescheitert ist es immer am oberen Management, und der Hauptgrund war: "Der Mailclient ist anders als Outlook".

Ist halt auch wichtig, wenn die berufliche Tätigkeit sich auf das Lesen und ab und zu auch das Verschicken von Mails beschränkt. Powerpoint und den Rest kann ja dann die Sekretärin.

Dass Linux weniger benutzerfreundlich oder gar frickelig wäre als Windows, ist eine sehr gewagte Aussage. Zuerst müsste man mal klären, was mit "Linux" eigentlich gemeint ist. Ich jedenfalls habe die Erfahrung gemacht, dass ein unerfahrener PC Anwender Ubuntu ganz alleine neben seinem Windows installieren und ausprobieren konnte. Der umgekehrte Fall wäre so wohl nicht möglich gewesen. Mit Wubi kann man Ubuntu sogar IM Windows installieren und bei Nichtgefallen aus dem Windows-Softwarecenter heraus wieder löschen.

Noch eine Anekdote zum Schluss: Ein User, der zum ersten mal mit Windows arbeiten musste, fragte mich: "Wo kann ich denn da jetzt neue Software installieren?". Als ich ihm erklärt habe, dass er entweder im WWW nach Gratissoftware suchen, und die dann jeweils einzeln installieren, oder im Laden "professionelle" Programme kaufen muss, hat er zuerst gemeint, ich mache Spass. Als ich ihm dann eine Weile später erklären musste, warum seine Software immer noch auf dem alten Stand war, obwohl es online schon lange neuere Versionen gab, hat er gemeint: "Wer will schon Computer-Hausmeister spielen" und hat Windows wieder deinstalliert.
Entschuldige für den Offtopic-Rant. Bezgl. den Config-Files würde ich sie auch am vorgesehenen Ort speichern. Ich muss dann zwar immer danach suchen, aber das mache ich doch noch lieber, als dem Programm ständig Admin-Rechte zu geben.
Zuletzt geändert von Chromanoid am 19.10.2011, 21:49, insgesamt 1-mal geändert.
Grund: Diskussion zu Linux vs Windows "gespoilert"
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4258
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: EXE-Datei zum ersten mal ausgeführt?

Beitrag von Chromanoid »

Hab das Thema mal aufgespalten. Bitte hier bei Sachen zu "Linux vs. Windows" weiter machen.
Antworten