IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[inno setup]executer un .jar dans la session [code] de inno setup


Sujet :

Outils Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut [inno setup]executer un .jar dans la session [code] de inno setup
    Bonjour,

    J'essaie d'intégrer un exécutable JAVA à Inno Setup, je m'explique: durant l'installation de mon produit je désire visualiser une fenêtre d'information créée en java (je l'ai faite en java parce que je sais pas comment le faire en Code Inno Setup ) et je sais pas comment pourrais-je appeler le fichier .jar de ma session [code]
    est ce que quelqu'un serais comment il faut faire?

    Merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Pas une bonne idée à priori : si l'utilisateur n'a pas de machine virtuelle Java ("javaw.exe" disponible sur la machine) installée, et correctement configurée, il ne pourra JAMAIS exécuter ton fichier .JAR !!

    Je crois qu'il existe une manière de transformer un .JAR en un (gros) .EXE autonome, peut-être voir de ce côté là, mais l'exécutable Java reste une mauvaise idée en soi.

    Normalement, tu peux (presque) tout faire via le Pascal Scripting intégré à InnoSetup, y compris créer de nouveaux panels, utiliser des DLL, bref faire quasiment n'importe quoi. Le langage est un sous-ensemble de Delphi, avec quelques fonctions spécifiques à l'environnement. A ta place, je regarderais de ce côté-là.

    Si tu penses que c'est un problème de "configuration" du script ISS, n'hésites pas à poster ici le script en question ainsi qu'une capture d'écran de ton application Java.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    En fait j'aurais bien aimer le faire en langage inno setup, si t'as une piste, un tutoriel ou un site pour la partie code de Inno setup ça serait gentil de me le filler.

    Pour mon application, j'essaie durant l'installation d'envoyer un mail à l'administrateur et puisque l'ouverture de mail aussi bien que les informations nécessaires à l'administrateur se font d'une manière automatique je voulais ajouter cette fenêtre d'information qui à comme rôle d'appuyer le fait qu'il faut envoyer le mail à l'administrateur. Mon script est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
     
    [Setup]
    AppId={{9C7C2D27-75A9-452E-8C03-907A859FF3BB}
     
    AppName=Nom_Produit
    DefaultDirName=C:\Program
     
    AppVerName=Program 1.0
    CreateAppDir=no
    DisableProgramGroupPage=yes
     
    DefaultGroupName=Program
    ;UninstallDisplayIcon={app}\Uninstall.exe
    ;WindowVisible=yes
     
    OutputDir=C:\Output
     
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    [Files]
    Source: C:\hostinfo\*.*; DestDir: C:\Program; Flags: recursesubdirs createallsubdirs
     
    Source: {tmp}\bassmod.dll; DestDir: {tmp}; Flags: deleteafterinstall dontcopy
    Source: {tmp}\_Music.xm; DestDir: {tmp}; Flags: deleteafterinstall dontcopy
    Source: {tmp}\_Button.bmp; DestDir: {tmp}; Flags: deleteafterinstall dontcopy
     
    [Icons]
    Name: {group}\{cm:UninstallProgram,Program}; Filename: {uninstallexe}
    Name: {group}\{cm:ProgramOnTheWeb,Program}; Filename: http://www.site.com/
     
    [Run]
    Filename: C:\hostinfo.bat; Flags: shellexec waituntilterminated
    Filename: C:\MessageHostInfoR.bat
     
     
    [UninstallDelete]
    Type: files; Name: C:\Program
     
     
    [ Code]
    var
      str: string;
      BASSMODArray: array of Char;
     
     
    const
      BASS_MUSIC_RAMP = 1;               // (Fast Tracker .xm Mode 1)
      BASS_MUSIC_RAMPS = 2;              // (Fast Tracker .xm Mode 2)
      BASS_MUSIC_LOOP = 4;               // (Loop Play Mode)
      BASS_MUSIC_FT2MOD = 16;            // (.mod FastTracker 2)
      BASS_MUSIC_PT1MOD = 32;            // (.mod ProTracker 1)
      BASS_MUSIC_SURROUND = 512;         // (surround Mode 1)
      BASS_MUSIC_SURROUND2 = 1024;       // (surround Mode 2)
     
    function BASSMOD_Init(device: Integer; freq, flags: DWORD): Boolean;
      external 'BASSMOD_Init@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicLoad(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): Boolean;
      external 'BASSMOD_MusicLoad@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_MusicFree();
      external 'BASSMOD_MusicFree@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPlay(): Boolean;
      external 'BASSMOD_MusicPlay@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPause(): Boolean;
      external 'BASSMOD_MusicPause@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicStop(): Boolean;
      external 'BASSMOD_MusicStop@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_Free();
      external 'BASSMOD_Free@files:bassmod.dll stdcall delayload';
     
    procedure PlayButtonOnClick(Sender: TObject);
    var
      Name1: string;
    begin
      if not BASSMOD_MusicPlay then
      begin
        Name1 := ExpandConstant('{tmp}\_Music.xm');
        if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
           BASSMOD_MusicPlay;
      end;
    end;
     
    procedure PauseButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicPause;
    end;
     
    procedure StopButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicStop;
      BASSMOD_MusicFree;
    end;
     
     
    procedure InitializeWizard();
     
    var
      Name1: string;
      PlayButton, PauseButton, StopButton: TButton;
     
      begin
     
        PlayButton := TNewButton.Create(WizardForm);
        PlayButton.Left := ScaleX(10);
        PlayButton.Top := WizardForm.ClientHeight - 30;
        PlayButton.Width := ScaleX(40);
        PlayButton.Height := ScaleY(20);
        PlayButton.Caption := 'Play';
        PlayButton.OnClick := @PlayButtonOnClick;
        PlayButton.Parent := WizardForm;
     
        PauseButton := TNewButton.Create(WizardForm);
        PauseButton.Left := ScaleX(60);
        PauseButton.Top := WizardForm.ClientHeight - 30;
        PauseButton.Width := ScaleX(40);
        PauseButton.Height := ScaleY(20);
        PauseButton.Caption := 'Pause';
        PauseButton.OnClick := @PauseButtonOnClick;
        PauseButton.Parent := WizardForm;
     
        StopButton := TNewButton.Create(WizardForm);
        StopButton.Left := ScaleX(110);
        StopButton.Top := WizardForm.ClientHeight - 30;
        StopButton.Width := ScaleX(40);
        StopButton.Height := ScaleY(20);
        StopButton.Caption := 'Stop';
        StopButton.OnClick := @StopButtonOnClick;
        StopButton.Parent := WizardForm;
     
        WizardForm.PasswordEdit.Visible := False;
        WizardForm.PasswordEdit.Text := '';
     
        ExtractTemporaryFile(ExpandConstant('bassmod.dll'));
        ExtractTemporaryFile(ExpandConstant('_Music.xm'));
        if not BASSMOD_Init(-1, 44100, 0)
          then
        begin
          MsgBox('BASSMOD Can''t initialize the device. Playing is not possible.', mbError, MB_OK)
            BASSMOD_Free;
        end
        else
        begin
          Name1 := ExpandConstant('{tmp}\_Music.xm');
          if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
            BASSMOD_MusicPlay;
        end;
    end;
     
    procedure AboutButtonOnClick(Sender: TObject);
    begin
      MsgBox('This demo shows some features of the various form objects and control classes.', mbInformation, mb_Ok);
    end;
     
    procedure URLLabelOnClick(Sender: TObject);
    var
      ErrorCode: Integer;
    begin
      ShellExec('open', 'http://www.site.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
    end;
     
    procedure CreateAboutButtonAndURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton);
    var
      AboutButton: TNewButton;
      URLLabel: TNewStaticText;
    begin
      AboutButton := TNewButton.Create(ParentForm);
      AboutButton.Left := ParentForm.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 := ParentForm;
     
      URLLabel := TNewStaticText.Create(ParentForm);
      URLLabel.Caption := 'www.site.com';
      URLLabel.Cursor := crHand;
      URLLabel.OnClick := @URLLabelOnClick;
      URLLabel.Parent := ParentForm;
      { Alter Font *after* setting Parent so the correct defaults are inherited first }
      URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
      URLLabel.Font.Color := clBlue;
      URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
      URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);
    end;
     
    //envoyer un message de préinstallation
    function Install(): Boolean;
    var
    	Url: String;
    	ErrorCode: Integer;
    //	PieceJointe: TFile;
     
    	begin
    //		PieceJointe.Values[0] := 'C:\Program\CANNELLE.hostinfo';
     
            //MaPiece := C:\Program\CANNELLE.hostinfo
            Url := 'mailto:useri@site.com?Subject=' +
    				'Host%20Info&' +'Body=';
            ShellExec('open', Url, '', '', SW_SHOW, ewNoWait, ErrorCode);
    //        ShellExec('', 'cmd.exe', '/c net share RADIOWINNERS=' + ExpandConstant('C:\UpdateFile.bat') , '', SW_SHOW, ewNoWait, ErrorCode);
        end;
     
    procedure CurStepChanged(CurStep: TsetupStep);
    var
      WindowNumber: HWND;
    var
      RegDir: String;
    begin
      if CurStep = ssPostInstall then
      begin
    	Install();
      end;
    end;

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Tout simplement dans les exemples d'InnoSetup, tu as un exemple complet avec la création d'un panel entier.

    Plus l'aide du logiciel, bien entendu, qui est quand même relativement complète. Fais tout de même attention : un installeur, c'est prévu pour être relativement petit, mettre plein de fioritures dedans au détriment du contenu "utile", c'est peut-être une mauvaise idée en soi...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2019, 10h04
  2. [inno setup] Programmation dans session CODE
    Par ririrourou dans le forum Outils
    Réponses: 1
    Dernier message: 28/07/2009, 20h05
  3. Réponses: 9
    Dernier message: 12/06/2009, 09h47
  4. script pour executer un jar dans le web
    Par raogui dans le forum Applets
    Réponses: 2
    Dernier message: 21/04/2009, 14h26
  5. Executer un jar dans le meme JVM
    Par obelix dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2006, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo