PDA

Vollständige Version anzeigen : Wert aus Dialog "Textfeld" lesen


Sascha0815
15.01.2010, 09:14
Hi, ich bin gerade dabei ein Setup für mein Programm zu erstellen (Visual Studio 2010 Beta). Nun habe ich ein Dialog "Textfeld" eingefügt und möchte gerne den Wert, der dort während der Installation eingetragen wird abspeichern.
Am liebsten in einer XML-Datei im Installationsverzeichnis, deswegen habe ich es über eine benutzerdefinierte Aktion probiert, weiß aber nicht, wie ich von dieser den Wert des Textfeldes auslesen kann. Dann habe ich es nach der Anleitung von MSDN Dialogfeld "Textfelder" der Benutzeroberfläche (http://msdn.microsoft.com/de-de/library/e04k6f53.aspx) unter "Abrufen von Benutzerinformationen mithilfe von Eigenschaften des Dialogfelds Textfelder" versucht, aber die dort beschriebene Anleitung funktioniert nicht, wie sie dort beschrieben ist. Wenn ich die Property-Eigenschaft des Textfeldes einer Condition-Eigenschaft eines Registry-Wertes zuweise, dann erreiche ich damit nur, dass bei leerem Textfeld kein Registry-Wert erzeugt wird und bei beliebigem Inhalt des Textfeldes wird der Registry-Wert gesetzt, aber nicht mit dem Wert des Textfeldes (wie es in der Anleitung beschrieben wird), sondern mit dem Standard-Wert den ich angegeben habe (in den Eigenschaften von dem Registry-Wert).

Weiß einer wie ich das machen kann? Also, wie gesagt, am liebsten in einer XML-Datei, aber zur Not auch irgendwie anders, hauptsache der Inhalt wird gespeichert und ich kann später darauf zugreifen.

Sascha

Sascha0815
18.01.2010, 09:23
Hi, nach längerem Rumprobieren bin ich auf das Eigenschaftsfeld "CustomActionData" bei einer benutzerdefinierten AKtion gestoßen und habe bei dem entsprechenden MSDN-Eintrag die Lösung für mein Problem gefunden.

Man kann mit [PROPERTY] (sprich Name der Property-Eigenschaft eines Textfeldes in eckigen Klammern) den Wert des Textfeldes adressieren.

Das funktioniert sowohl als Übergabeparameter für eine benutzerdefinierte Aktion, wo man dann in die "CustomActionData"-Eigenschaft:
/para=[PROPERTY]
schreibt, als auch für Registry-Einträge, wo man dann in die "value"-Eigenschaft des Registry-Wertes:
[PROPERTY]
schreibt.
(para und PROPERTY sind selbstverständlich nur Platzhalter)

Das ist der ganze Trick an der Sache.

Sascha