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] Problème avec mon script depuis l'utilisation d'ISSI


Sujet :

Outils Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut [INNO SETUP] Problème avec mon script depuis l'utilisation d'ISSI
    Bonjour,

    Je viens faire appel au pro pour une problème avec Inno Setup Script Include.

    Ce programme permet de proposer des fonctions prédéfini tel que l'ajout de son, modification de la taille des images et autres.

    Avant l'utilisation de ce programme, mon script fonctionnait correctement, mais depuis que j'utilise ce dernier. J'obtiens une erreur non pas lors de la compilation mais lorsque je clique sur le bouton Suivant de mon installeur.



    Voici mon code

    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
    var
      UserPage: TInputQueryWizardPage;
      Pseudo: String;
    Procedure ISSI_InitializeWizard;
    begin
    RegQueryStringValue(HKCU, 'Software\Valve\Steam', 'LastGameNameUsed', Pseudo);
     begin
      UserPage := CreateInputQueryPage(wpInstalling,
        'Information de jeu', 'Quel est votre pseudo ?',
        'Saisissez le pseudo que vous souhaitez avoir en jeu.');
      UserPage.Add('Pseudo :', False);
      UserPage.Values[0] := Pseudo;
     end;
    end;
    { Skin }
    procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
    external 'LoadSkin@files:isskin.dll stdcall';
    procedure UnloadSkin();
    external 'UnloadSkin@files:isskin.dll stdcall';
    function ShowWindow(hWnd: Integer; uType: Integer): Integer;
    external 'ShowWindow@user32.dll stdcall';
    function InitializeSetup(): Boolean;
    var
      SplashImage: TBitmapImage;
      SplashForm: TForm;
      SplashFileName: String;
      I : Integer;
    begin
      SplashFileName := ExpandConstant('{tmp}\{#Splash}');
      ExtractTemporaryFile(ExtractFileName(SplashFileName));
     
      SplashForm := TForm.create(nil);
      with SplashForm do
       begin
        BorderStyle := bsNone;
        Position := poScreenCenter;
        ClientWidth := 600;
        ClientHeight := 293;
       end;
     
      SplashImage := TBitmapImage.Create(SplashForm);
      with SplashImage do
        begin
        Bitmap.LoadFromFile(SplashFileName);
        Stretch := true;
        Align := alClient;
        Parent := SplashForm;
        end;
     
      with SplashForm do
       begin
         Show;
         for I := 1 to 5 do
          begin
           Repaint;
           Sleep(400);
          end;
         Close;
         Free;
       end;
       begin
      ExtractTemporaryFile('{#Skin}.msstyles');
      LoadSkin(ExpandConstant('{tmp}\{#Skin}.msstyles'), '');
      Result := True;
    end;
    end;
    procedure ISSI_DeinitializeSetup();
    begin
      ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
      UnloadSkin();
    end;
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      aExecFile, bExecDir: String;
    begin
      Result := True;
      if CurPageID = wpSelectdir then
      begin
        aExecFile := ExpandConstant('{app}') + '\fichier.exe';
        bExecDir := ExpandConstant('{app}') + '\dossier';
        if not FileExists(aExecFile) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
        else if not DirExists(bExecDir) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
      end
       If CurPageID = UserPage.ID then
       begin
       if UserPage.Values[0] = '' then begin
          MsgBox('Merci de saisir votre pseudo.', mbError, MB_OK);
          Result := False;
        end
      Begin
      RegWriteStringValue(HKCU, 'Software\Valve\Steam', 'LastGameNameUsed', UserPage.Values[0])
      end;
      Begin
        SetIniString('Emulator', //section
        'SteamUser', //clé
        UserPage.Values[0], //valeur de la page perso
        ExpandConstant('{app}\rev.ini'));
        SetIniString('steamclient',
        'Playername',
        UserPage.Values[0],
        ExpandConstant('{app}\rev.ini'));
      end;
    end;
    end;
    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    Euh what else

    après le end il manque un else
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Merci, j'ai rajouté le "else" mais cela me fait la même erreur...

    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
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      aExecFile, bExecDir: String;
    begin
      Result := True;
      if CurPageID = wpSelectdir then
      begin
        aExecFile := ExpandConstant('{app}') + '\fichier.exe';
        bExecDir := ExpandConstant('{app}') + '\dossier';
        if not FileExists(aExecFile) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
        else if not DirExists(bExecDir) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
      end else
       If CurPageID = UserPage.ID then
       begin
       if UserPage.Values[0] = '' then begin
          MsgBox('Merci de saisir votre pseudo.', mbError, MB_OK);
          Result := False;
        end

  4. #4
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    c'est pas là qu'il faut le mettre
    Ta construction, dans cette zone, est bancale:
    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
      end;
       If CurPageID = UserPage.ID then
       begin
       if UserPage.Values[0] = '' then begin
          MsgBox('Merci de saisir votre pseudo.', mbError, MB_OK);
          Result := False;
        end
      Begin
      RegWriteStringValue(HKCU, 'Software\Valve\Steam', 'LastGameNameUsed', UserPage.Values[0])
      end;
      Begin
        SetIniString('Emulator', //section
        'SteamUser', //clé
        UserPage.Values[0], //valeur de la page perso
        ExpandConstant('{app}\rev.ini'));
        SetIniString('steamclient',
        'Playername',
        UserPage.Values[0],
        ExpandConstant('{app}\rev.ini'));
      end;
    end;
    Il manque des ;
    Des Begin ... end tous seuls
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Oui, j'ai un peu de mal pour la syntaxe du Pascal mais ce qui me trouble c'est que malgré les quelques erreurs ce script marchait auparavant...

    J'ai vu qu'avec ISSI qu'il fallait parfois mettre son code de façon spécifique.

    http://members.home.nl/albartus/inno...uttonClick.htm

    Peut être que le problème viendrait de là...

    En tout cas, merci de vos réponses.

  6. #6
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    ISSI ne peut pas passer au dessus de la syntaxe Pascal

    Ne sachant pas trop ce que tu souhaites faire, j'ai corrigé ta fonction à mon idée :
    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
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      aExecFile, bExecDir: String;
    begin
      Result := True;
      if CurPageID = wpSelectdir then
      begin
        aExecFile := ExpandConstant('{app}') + '\fichier.exe';
        bExecDir := ExpandConstant('{app}') + '\dossier';
        if not FileExists(aExecFile) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
        else if not DirExists(bExecDir) then
        begin
          MsgBox('Ce répertoire ne correspond pas au jeu {#Game} !', mbError, MB_OK);
          Result := False;
        end
      end;
     
      If CurPageID = UserPage.ID then
      begin
        if UserPage.Values[0] = '' then 
          begin
            MsgBox('Merci de saisir votre pseudo.', mbError, MB_OK);
            Result := False;
          end
        else
          begin
            RegWriteStringValue(HKCU, 'Software\Valve\Steam', 'LastGameNameUsed', UserPage.Values[0])
            SetIniString('Emulator', //section
            'SteamUser', //clé
            UserPage.Values[0], //valeur de la page perso
            ExpandConstant('{app}\rev.ini'));
            SetIniString('steamclient',
            'Playername',
            UserPage.Values[0],
            ExpandConstant('{app}\rev.ini'));
          end;
      end;  
    end;
    Fais un essai
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Merci Thierry d'avoir corrigé mon script.

    Je viens de faire un essai et le problème est toujours le même.

    En fait, je souhaiterais qu'après l'extraction des fichiers l'utilisateur saisisse une valeur (dans le contexte du script un pseudo) et que cette valeur soit inscrit dans un fichier .ini, auparavant j'utilisais ce script sans ISSI et tout se déroulait comme je le voulais...

    Merci encore de ton aide

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 45
    Points : 22
    Points
    22
    Par défaut
    Je viens de résoudre mon problème en ajoutant à la fin de mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #define ISSI_UseMyInitializeWizard
    #include "IW.txt"
    #define ISSI_IncludePath "C:\ISSI"
    #include ISSI_IncludePath+"\_issi.isi"
    #define ISSI_UseMyDeInitializeSetup
    #include "DIS.txt"
    #define ISSI_IncludePath "C:\ISSI"
    #include ISSI_IncludePath+"\_issi.isi"
    J'ai supprimé les 2 procédures (InitializeWizard et DeInitializeSetup) de la partie code.

    Le fichier IW.txt contient mon code "InitializeWizard" et le fichier DIS.txt contient mon code "DeInitializeSetup"

    Merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Inno Setup] Problème avec GetFileversion()
    Par Frimouss dans le forum Outils
    Réponses: 4
    Dernier message: 11/10/2008, 18h56
  2. [MySQL] Divers petits problèmes avec mon script
    Par fourniey dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 16h20
  3. Problème avec mon script shell case in esac
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 22h54
  4. Problème avec mon script
    Par Toinou0123 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2006, 18h37
  5. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26

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