Ir ao conteúdo
  • Cadastre-se

Inno Setup - Aperfeiçoar esquema


Posts recomendados

:D

Senhores, bom dia !!!

Certa vez, ha cerca de 1 ano atrás, vocês me ensinaram (mais especificamente o Sr Clemente silva)

a fazer um esqueminha básico no Inno Setup, aqui no forum ...

Dei uma fuçada, adaptei um esquema de exemplo, para minha necessidade ...

Peguei o exemplo que ensina a fazer a instalação em varios idiomas, e utilizei este esquema para, ao invés da pessoa fazer a escolha das linguas, ela escolhe a versão do AutoCAD ...

No final, baseado na versão do AutoCAD escolhida, o setup extrai os atalhos ja criados para o desktop e para a pasta programas ... o problema, é que se o usuario não tiver o CAD instalado,

ele instala o programa do mesmo jeito ... Eu queria que se o usuario não tivesse o CAD, desse uma mensagem: Não há AutoCAD neste computador ... impossivel prosseguir ... e abortasse o Setup ...

Outro problema, é que o setup extrai os atalhos para o AutoCAD, nas pastas padrões ... ou seja: se é CAD 2002 - "c:\arquivos de programas\autocad 2002\acad.exe"

Mas ... e se o AutoCAD estiver instalado em outra pasta ??? tipo "c:\program files\MEUCAD" ou "C:\CADS\AutoCAD" ??? ai complica ... o usuario liga pra mim falando que o Atalho é invalido ...

Gostaria que vocês me ajudassem a criar um esquema da seguinte forma ...

No REGEDIT, ele verifica se a chave "HKEY_CURRENT_USER\Software\Autodesk\AutoCAD" existe,

em seguida, dentro desta chave, existe outras chaves:

\R14.0 - para CAD 14,

\R15.06 - para CAD 2002,

\R16.0 - para CAD 2004,

etc ...

Atraves da versão, o setup pegará a versão mais recente (caso exista mais de um CAD instalado), e no final, criará um atalho para o executavel do programa da seguinte forma:

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R14.0\ACAD-2453525:74546800 - Valor de "AcadLocation" concatenado com "\acad.exe"

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409 - Valor de "AcadLocation" concatenado com "\acad.exe"

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.0\ACAD-201:409 - Valor de "AcadLocation" concatenado com "\acad.exe"

As tres linhas acima são um exemplo do campo "DESTINO" ou "OBJETO" do atalho a ser criado, sendo que o campo "INICIAR EM", do atalho será sempre: "C:\PGCAD\SUPPORT\"

Abaixo, segue o esquema de Setup Atual ...

; ====================================================

; ESQUEMA PARA CRIAÇÃO DE SETUP

[setup]

AppName=PEXECAD 3.0

AppVerName=PEXECAD 3.0

AppPublisher=Emanuel Jesus de Almeida - XXXCAD

AppPublisherURL=http://www.XXXCAD.ind.br

AppVersion=3.0

DefaultDirName={win}\Uninstall

DisabledirPage=yes

DefaultGroupName=PEXECAD 3.0

LicenseFile=C:\AT\License.txt

SetupIconFile=C:\XXXCAD\R15\SUPPORT\PEXECAD.ico

Compression=lzma

SolidCompression=yes

WindowVisible=yes

AlwaysRestart=yes

[Languages]

Name: en; MessagesFile: "compiler:Default0.isl"

Name: nl; MessagesFile: "compiler:Default1.isl"

Name: de; MessagesFile: "compiler:Default2.isl"

Name: no; MessagesFile: "compiler:Default3.isl"

[Files]

Source: "C:\XXXCAD\DESIGNS\PEXECADDD\1000330.dwg"; DestDir: "C:\XXXCAD\DESIGNS\PEXECADDD"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\DESIGNS\PEXECADDD\1000340.dwg"; DestDir: "C:\XXXCAD\DESIGNS\PEXECADDD"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\DESIGNS\PEXECADDD\1000530.dwg"; DestDir: "C:\XXXCAD\DESIGNS\PEXECADDD"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\HELP\PEXECAD.hlp"; DestDir: "C:\XXXCAD\HELP"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\R15\SUPPORT\ACADDOC.lsp"; DestDir: "C:\XXXCAD\R15\SUPPORT"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\R15\SUPPORT\FORT2DP.bmp"; DestDir: "C:\XXXCAD\R15\SUPPORT"; CopyMode: alwaysoverwrite; Flags: ignoreversion

Source: "C:\XXXCAD\R15\SUPPORT\FORT3DP.bmp"; DestDir: "C:\XXXCAD\R15\SUPPORT"; CopyMode: alwaysoverwrite; Flags: ignoreversion

source: "c:\at\Help PEXECAD.lnk"; destdir: "{userprograms}\PEXECAD 3.0"; copymode: alwaysoverwrite; flags: ignoreversion

source: "c:\at\2000\PEXECAD.lnk"; destdir: "{userdesktop}"; copymode: alwaysoverwrite; languages: en; flags: isreadme

source: "c:\at\2002\PEXECAD.lnk"; destdir: "{userdesktop}"; copymode: alwaysoverwrite; languages: nl; flags: isreadme

source: "c:\at\2004\PEXECAD.lnk"; destdir: "{userdesktop}"; copymode: alwaysoverwrite; languages: de; flags: isreadme

source: "c:\at\2005\PEXECAD.lnk"; destdir: "{userdesktop}"; copymode: alwaysoverwrite; languages: no; flags: isreadme

source: "c:\at\2000\PEXECAD.lnk"; destdir: "{userprograms}\PEXECAD 3.0"; copymode: alwaysoverwrite; languages: en; flags: isreadme

source: "c:\at\2002\PEXECAD.lnk"; destdir: "{userprograms}\PEXECAD 3.0"; copymode: alwaysoverwrite; languages: nl; flags: isreadme

source: "c:\at\2004\PEXECAD.lnk"; destdir: "{userprograms}\PEXECAD 3.0"; copymode: alwaysoverwrite; languages: de; flags: isreadme

source: "c:\at\2005\PEXECAD.lnk"; destdir: "{userprograms}\PEXECAD 3.0"; copymode: alwaysoverwrite; languages: no; flags: isreadme

REPAREM QUE OS lnk's SÃO OS ATALHOS, QUE NEM SEMPRE APONTAM PARA O LOCAL CORRETO ...


procedure AboutButtonOnClick(Sender: TObject);

begin

MsgBox('Sistema de projetos PEXECAD XXXCAD, versão 3.0' #13#13 ' Desenvolvido por Emanuel Jesus de Almeida' #13 ' [email]emanuel@XXXCAD.ind.br[/email]' #13 , mbInformation, mb_Ok);

end;

procedure URLLabelOnClick(Sender: TObject);

var

ErrorCode: Integer;

begin

ShellExec('open', 'http://www.XXXCAD.ind.br', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);

end;

procedure InitializeWizard();

var

AboutButton, CancelButton: TButton;

URLLabel: TNewStaticText;

BackgroundBitmapImage: TBitmapImage;

BackgroundBitmapText: TNewStaticText;

begin

CancelButton := WizardForm.CancelButton;

AboutButton := TButton.Create(WizardForm);

AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;

AboutButton.Top := CancelButton.Top;

AboutButton.Width := CancelButton.Width;

AboutButton.Height := CancelButton.Height;

AboutButton.Caption := '&About...';

AboutButton.OnClick := @AboutButtonOnClick;

AboutButton.Parent := WizardForm;

URLLabel := TNewStaticText.Create(WizardForm);

URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;

URLLabel.Left := AboutButton.Left + AboutButton.Width + 20;

URLLabel.Caption := 'www.XXXCAD.ind.br';

URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderLine];

URLLabel.Font.Color := clBlue;

URLLabel.Cursor := crHand;

URLLabel.OnClick := @URLLabelOnClick;

URLLabel.Parent := WizardForm;

end;

;====================================================

Link para o post
Compartilhar em outros sites

:bored:

Ai Pessoal ... acho que pedi demais ...

To querendo o programa pronto ...

Será que alguem me explica pelo menos como

ler uma chave qualquer no REGEDIT, gravar o valor numa variavel

e a fazer um teste IF na linguagem de script do INNO SETUP ???

Ai eu tento fazer o esquema que postei acima ... :rolleyes:

Valeu ...

Emanuel

21/06/2005

Link para o post
Compartilhar em outros sites
  • Membro VIP

Até onde eu sei, o Inno Setup pode ler uma chave do Registry e usar o valor para algo que não seja condicional, ou seja o Inno Setup não faz nada com IFs...

Pelo menos eu acho que até a versão atual não existe suporte para instalação condicional: até agora a única coisa que dá pra fazer condicionalmente é instalar dependendo da versão do Windows, mas outros parâmetros (como os que você está querendo), ainda não é possível.

Veja: Can Inno Setup do a conditional installation?

[]'s

Link para o post
Compartilhar em outros sites
  • 8 meses depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!