Jump to content


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.
Photo

Maintanance Setup ausschalten


2 replies to this topic

Torsten

Torsten
  • Members
  • 1 posts

Posted 12 December 2002 - 17:13

Hallo,

ich würde gerne das Maintenance Setup ausschalten. Meine Anwendung soll beim ersten Aufruf von Setup installiert werden und danach höchstens noch deinstalliert werden. Kann man die Auswahlmöglichkeiten ändern und reparieren, die das Setup zur Verfügung stellt, irgendwie ausschalten?

Noch eine Frage, die vielleicht in eine ähnliche Richtung geht: Wie kann man bei der Installation eine Verknüpfung zum direkten Deinstallieren zum Startmenü hinzufügen?

Gruß,

Torsten

probsar

probsar
  • Members
  • 31 posts

Posted 19 December 2002 - 14:22

Das OnMaintenance Event abfangen und selbst ausprogrammierten -> nur Deinstallationsroutine aufrufen bzw. noch kurz nachfragen ob wirklich deinstalliert werden soll AskYesNo...

DonSigl

DonSigl
  • Members
  • 5 posts

Posted 05 February 2003 - 08:42

Zitat
Wie kann man bei der Installation eine Verknüpfung zum direkten Deinstallieren zum Startmenü hinzufügen?


Eine Deinstallations-Verknüpfung kann man nur über das Script dem Startmenü hinzufügen. Mit der Funktion "SetupInstallLink" mache ich immer meine Deinstallations-Verknüpfungen.

Code

function SetupInstallLink ()      

STRING szProgramFolder, szItemName, szCommandLine, szWorkingDir, szIconPath;
STRING szShortCutKey, szProgram, szParam;
NUMBER nIcon, nFlag;
STRING szKey,szEntry;
NUMBER nSize, nType, nReturnCode;
NUMBER nRegEntryType;    
STRING szValue, szIsData;

begin
RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
 
szKey ="SOFTWARE"^"Microsoft"^"Windows"^"CurrentVersion"^"Uninstall"^PRODUCT_GUID;
szEntry = "UninstallString";
   
if (RegDBGetKeyValueEx (szKey, szEntry, nRegEntryType, szValue, nSize ) < 0) then  
MessageBox ("Kann Verknüpfung mit <Uninstall> nicht erstellen",SEVERE);
else  

SdSelectFolder( "" , "" , SHELL_OBJECT_FOLDER );

szProgramFolder = SHELL_OBJECT_FOLDER;
szItemName = @UNINSTAL;      
szCommandLine = szValue;  
szWorkingDir   = "";
szIconPath     = "SHELL32.dll";
nIcon         = 64;
szShortCutKey = "";
nFlag         = REPLACE;

if ( Is(USER_ADMINISTRATOR,szIsData) == TRUE ) then
// Bei Admin unter "Allgemein" installierten:
nType = COMMON;
else
// Nicht Admin, also unter "Persönlich" installieren:
nType = PERSONAL;
endif;

ProgDefGroupType(nType);
   //Deinstallation eintragen:
   nReturnCode = AddFolderIcon(szProgramFolder, szItemName, szCommandLine,
    szWorkingDir, szIconPath, nIcon, szShortCutKey,
    nFlag);
   //Signaturaufruf eintragen:
szItemName = @PRODUCT_KEY;      
szCommandLine = TARGETDIR + "\\*****.exe";  
szWorkingDir   = TARGETDIR;  
szIconPath     = TARGETDIR + "\\*****.exe";  
nIcon         = 0;
   nReturnCode = AddFolderIcon(szProgramFolder, szItemName, szCommandLine,
    szWorkingDir, szIconPath, nIcon, szShortCutKey,
    nFlag);

// Write now SetupPath to MY Registry
szKey="SOFTWARE"^ @COMPANY_NAME ^ @PRODUCT_KEY;

if (RegDBSetKeyValueEx (szKey, "Setup" , REGDB_STRING,szCommandLine,-1) <0) then
MessageBox("Hinzufügen der Setupzeichenkette ist fehlgeschlagen.", SEVERE);
endif;
endif;
end;


Ich hoffe die Funktion hilft Dir! :)