![]() |
ActiveX und Lizenz-Dateien
Hallo :),
ich nutze in einem Projekt eine ActiveX-Komponente. Beim Kauf habe ich eine Lizenz-Datei (*.lic) bekommen. Liegt diese Datei aber nicht im Projektverzeichnis, so kommt immer zur Laufzeit eine Nachricht, dass die verwendete Komponente nur eine Test-Version ist, die nach 30 Tagen abläuft. Wenn die Datei drin liegt, läuft alles so wie gewünscht. Die Entwickler schreiben, dass man diese Lizenz-Datei nicht mit ausliefern muss und darf (!). Sie soll mit in die Exe gelegt werden. Weiter schreiben die, dass das VS das wohl automatisch macht. Natürlich wird Delphi offiziell nicht unterstützt, daher konnte mir auch niemand sagen, wie es dort funktioniert. Ich konnte leider auch keinen nachvollziehbaren Weg für das VS finden :(. Da das VS (welche Version kann ich leider auch nicht sagen) angeblich automatisch die lic-Datei einfügt, gehe ich davon aus, dass es ein typisches Verfahren bei ActiveX ist. Doch wie funktioniert so etwas? Wie kann ich die Lizenz-Datei "richtig" einbinden? Ich habe es einfach mal so probiert: {$R 'dcube.lic'} Aber das klappt natürlich wie erwartet nicht... Normaler weise legt Delphi (zumindest in der Win32-Version) ja diese ..._TLB.pas Dateien beim Importieren einer ActiveX-Komponente an. In dieser Datei lässt sich das hier finden: "LicenseKey: nil". Doch unter .Net gibt es so etwas ja leider nicht. Da binde ich einfach die Ocx ein und erzeuge dann manuell zur Laufzeit die Komponente auf dem Formular. Wenn jemand auch nur einen kleinen Hinweis hat, dann nur her damit :). Besten Dank schon einmal, euer Alexander Nachtrag: Gefunden hatte ich übrigens das hier: http://msdn2.microsoft.com/de-de/library/fe8b1eh9(VS.80).aspx
Code:
Da steht ja im Prinzip, dass man die Lic-Datei benötigt und dass es auch für ActiveX funktionieren soll.
license = LicenseManager.Validate(typeof(MyControl), this);
Nur verstehe ich nicht, wie ich beim Erzeugen der Komponente mit dem LicenseManager arbeiten soll. |
Re: ActiveX und Lizenz-Dateien
Yeah, ich hab's gefunden :)
![]()
Code:
"gnvlslnjskvlmlgnnimh" soll dabei die Runtime-Lizenz sein. Die steht dann in der Lizenz-Datei.
System.Reflection.FieldInfo f =
typeof(AxHost).GetField("licenseKey", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); f.SetValue(myControl, "gnvlslnjskvlmlgnnimh"); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz