pat.bat
Goto Top

Dynamische XML-Erstellung nach Form Elementen

Hallo,

gibt es eine Möglichkeit, eine XML zur Speicherung von Einstellungen dynamisch zu generieren, je nachdem welche Textbox Elemente sich auf der Form befinden?

Ich habe folgende Form:
eveinstellungen

Dort kann ich derzeit Pfade abspeichern.

In Zukunft sollen auf dieser Form aber noch mehr Einstellungsmöglichkeiten für das restliche Programm folgen.

Da die Einstellungen mit im Anwendungspfad als xml gespeichert werden sollen stellt sich mir die Frage ob es nicht besser ist, eine Logik zu verbauen, die automatisch den Inhalt der Textboxelemente zieht und in nodes erstellt die nach den Namen der Textboxen gespeichert werden.

So könnte man in Zukunft die Maske nach belieben abändern ohne die xml Funktion zum erstellen und lesen der xml zu ändern.

Vielleicht kennt auch jemand eine super Seite wo man sich die XML Geschichte in VB.Net durchlesen kann, da ich auf diesem Gebiet noch recht unerfahren bin und nichts richtiges online finde.

Content-Key: 476461

Url: https://administrator.de/contentid/476461

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: 140447
140447 23.07.2019 aktualisiert um 14:45:17 Uhr
Goto Top
Schlag mal unter Object Serialization nach.
Da die Einstellungen mit im Anwendungspfad als xml gespeichert werden sollen
Oh hauahauahaa... kriegt das Ding nen Installer?
Wenn ja, sowas ist schon seit XP nicht mehr Best Practice!
Ein Normalouser hat keine Schreibrechte im Programme-Ordner. Sowas sollte wenn dann in's Appdata des jeweiligen Users.
Mitglied: Pat.bat
Pat.bat 23.07.2019 um 15:39:14 Uhr
Goto Top
Nein kein Installer, das Programm wird auf einen Netzwerklaufwerk abgelegt und die Pfade sollen einmal hinterlegt werden. Mehrere User können dieses Programm dann bedienen. Wenn ich die Settingsdatei im AppData Ordner speicher müsste jeder User die Pfade für sich neu eingeben. Unter Umständen könnte es passieren das ein falscher Pfad hinterlegt wird.

Ansonsten wurde mir dieser Tipp schon in einen anderen Thread gegeben, wo es um ein ähnliches Problem ging, über die My.Settings. Hätte auch super funktioniert, allerdings frage ich mich ob das best-practice ist für Anwendungseinstellungen? Es geht dabei nicht um user settings.

Den Ablauf des Programmes stelle ich mir so vor:

Wird das Programm das erste mal verwendet, werden die Pfade eingegeben. Sollte sich aus organisatorischen Gründen die Ordner Struktur ändern, hat man so die Möglichkeit, die Pfade abzuändern.
PowerShell skripte sollen dann die Einstellungsdatei lesen und die Pfade nutzen.

Sodass die User dann wie beschrieben im besten Fall einmalig die Pfade hinterlegen und dann das Programm bedienen können. Falls nun ein andere Kollege das Programm bedienen soll, ist schon alles richtig eingestellt und er kann sich auf die Grundlegenden Sachen konzentrieren.

Ich hätte dabei nun angenommen, das ich für diesen Zweck am besten eine settings datei beim Programm hinterlege, wo solche "globalen" Einstellungen hinterlegt werden können.

Gibt es da eine bessere Methode? Das Programm arbeitet nicht mit Datenbanken (derzeit) sonst hätte ich den Pfad in die DB verlegt.
Mitglied: 140447
140447 23.07.2019 aktualisiert um 15:46:15 Uhr
Goto Top
Ist Jacke wie Hose wie du das machst, normalerweise gibt es ein Default-Set (Templatr) das ein Admin vordefiniert und wenn es auf Anwenderseite noch keine Einstellungsdatei gibt werden die in die User-Settings kopiert, und der User kann dann trotzdem weiterhin seine eigenen Anpassungen vornehmen und seine Anpassungen landen dann in seinem Profil.
Mitglied: Pat.bat
Pat.bat 23.07.2019 um 15:56:20 Uhr
Goto Top
Achso ok,

wie würde ich denn den AppData Pfad für die Anwendung herausfinden?

dieser ist ja bei jedem User dann unterschiedlich (ich rede vom kryptischen Ordner vor der Versionsnummer:

C:\Users\user\AppData\Local\ProsozBatchVerwaltung\Prosoz_Batch_Verwaltung.e_Url_oypkz4mfmuu2ugjsrvcfpvk0lhka3p3d\1.0.2.2

Ich müsste auf diese Datei mit meinem PowerShell Skript zugreifen, damit diese sich dann bestimmte Einstellungen ziehen kann.

mit $env:LOCALAPPDATA komme ich bis Local, ich könnte dann noch den Anwendungsnamen vordefinieren aber mit der zufälligen Zeichenzusammenstellung des nächsten Ordners kann ich nicht fest zuweisen.