Hallo,
hat sich jemand von euch schon mit der Lizenznummerabfrage beschäftigt?
In meiner Anwendung muss ich einige Features in Abhängigkeit von der angegebenen Lizenznummer installieren.
Wie ich sehe gibt es in InstallShield 12 kein spezieles Dialog für die Abfrage einer Lizenznummer, aber dieser ließe sich leicht erstellen.
Das Problem ist, das sich sicherlich nicht um eine CA herumkomme. Momentan habe ich alle Lizenznummer in einer Tabelle (Excell) und vergleiche den Kundeninput mit den Einträgen dort und bei übereinstimmung benutze ich bei der Installation das entsprechende Feature.
Hat jemand einen Vorschlag wie ich dabei am besten vorgehe, vielleicht gibt es bereits eine Standardlösung oder CA?
Wo und wie wäre es am besten die Lizenznummern abzulegen? Ich habe mir überlegt im Direct Editor eine neue TAbelle hinzuzufügen. Ist das erlaubg und ungefährlich? Wenn ja wie "lerne" ich das InstallShield diese Tabelle zu benutzen?
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Lizenznummer abragen
Started by
kukumar
, Jan 31 2007 10:24
2 replies to this topic
Posted 31 January 2007 - 11:18
Hallo, zu Tabellen:
Tabellen kannst Du einbauen und dann z. Bsp. per Script drauf zugreifen:
Beispiel: BasicMsi-Projekt, Tabelle = _PolySupport
export prototype MyFunction(HWND);
////////////////////////////////////////////////////////////////////////////////
// Function: MyFunction
////////////////////////////////////////////////////////////////////////////////
function MyFunction( hInstall )
STRING sSQL;
NUMBER nBuffer;
NUMBER nResult;
begin
nBuffer = 20;
csVersion = "";
sSQL = "SELECT `Value` FROM `_PolySupport` WHERE `Support`='Version'";
nResult = GEN_DB_Get_String( hInstall, sSQL, csVersion, nBuffer );
end;
////////////////////////////////////////////////////////////////////////////////
// Function: GEN_DB_Get_String
// Purpose: Get a value (string, one record) from a table.
////////////////////////////////////////////////////////////////////////////////
function GEN_DB_Get_String( hInstall, sSQL, sValue, nBuffer )
NUMBER hView, hRec;
NUMBER nResult;
begin
// Open and execute a view.
nResult = MsiDatabaseOpenView(hInstall,sSQL,hView);
if nResult = 0 then
nResult = MsiViewExecute(hView, 0);
if nResult = 0 then
nResult = MsiViewFetch(hView,hRec);
if nResult = 0 then
nResult = MsiRecordGetString(hRec,1,sValue,nBuffer);
endif;
endif;
MsiCloseHandle(hView);
endif;
return nResult;
end;
Gruß
André
Tabellen kannst Du einbauen und dann z. Bsp. per Script drauf zugreifen:
Beispiel: BasicMsi-Projekt, Tabelle = _PolySupport
export prototype MyFunction(HWND);
////////////////////////////////////////////////////////////////////////////////
// Function: MyFunction
////////////////////////////////////////////////////////////////////////////////
function MyFunction( hInstall )
STRING sSQL;
NUMBER nBuffer;
NUMBER nResult;
begin
nBuffer = 20;
csVersion = "";
sSQL = "SELECT `Value` FROM `_PolySupport` WHERE `Support`='Version'";
nResult = GEN_DB_Get_String( hInstall, sSQL, csVersion, nBuffer );
end;
////////////////////////////////////////////////////////////////////////////////
// Function: GEN_DB_Get_String
// Purpose: Get a value (string, one record) from a table.
////////////////////////////////////////////////////////////////////////////////
function GEN_DB_Get_String( hInstall, sSQL, sValue, nBuffer )
NUMBER hView, hRec;
NUMBER nResult;
begin
// Open and execute a view.
nResult = MsiDatabaseOpenView(hInstall,sSQL,hView);
if nResult = 0 then
nResult = MsiViewExecute(hView, 0);
if nResult = 0 then
nResult = MsiViewFetch(hView,hRec);
if nResult = 0 then
nResult = MsiRecordGetString(hRec,1,sValue,nBuffer);
endif;
endif;
MsiCloseHandle(hView);
endif;
return nResult;
end;
Gruß
André