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 :

Script serial number


Sujet :

Outils Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut Script serial number
    Bonjour,

    Je viens de faire un script pour une installation de logiciel. Un logiciel alléger de 3 mo qui a son installation va télécharger tous ces composants en zip et les unzip dans le même dossier tous ca c’est ok.
    Apres j’ai voulu ajouté un serial donc j’ai commencé à chercher des tutoriaux sur le net qui mon emmenai a faire appel a la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Setup]
    UserInfoPage=true
     
    Avec un code du style:
     
    function CheckSerial(Serial: String): Boolean;begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + Serial + Chr(13), True);
    	Result := True;
    end;
    Tous ceci me génère une erreur mais de toute façon je suis pratiquement sur que ce n’est pas ce que je cherche car moi je veux utiliser une liste de login et de serial prédéfinis soit entré dans le script ou sur un fichier texte crypté héberger sur un ftp sécurisé.

    Pourrais-je avoir un petit coup de main si quelqu’un a une idée ?

    Cordialement
    Kyu

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut Up
    Bonjour,
    ThierryAIM Pourrez tu passez par là stp.
    J’ai suivi beaucoup de tes post pour evoluez sur mon exe. Ton aide me ferai le plus grand bien je pense vu ton niveau dans la matière.
    Cordialement
    Kyu

  3. #3
    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
    Citation Envoyé par kyu666 Voir le message
    Un logiciel alléger de 3 mo qui a son installation va télécharger tous ces composants en zip et les unzip dans le même dossier tous ca c’est ok.
    C'est lequel des 2 qui télécharge les composants. Ton logiciel ou le script InnoSetup ?

    Ou tu veux savoir comment télécharger un fichier avec IS, c'est ça ou j'ai rien compris ?
    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

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut re merci de ton passage
    Donc je te rassure tu as rien compris, lol, mais ne te fait pas de soucis j'ai
    souvent du mal a m'exprimer correctement.

    Je résume tout ce qui download c’est Ok j’ai même changé ton d’exe car unzip.exe ne fait pas correctement son travail en renommant les fichiers téléchargés j’utilise 7Z.exe + 7Z.dll beaucoup mieux car il conserve l’intégrité des noms.

    Mon problème vient d’un ajout que je veux faire protégeant mon exe.
    Je voudrai intégrer un login et un serial a l’installation qui correspondra à une liste créé par mes soins.

    Donc j’ai trouvé ces quelques infos :

    UserInfoPage=true « ce qui m’affiche une nouvelle page dans exe correspondant aux infos pc de l’utilisateur »

    A ceci j’ai voulu ajouter un serial qui ne s’affiche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function CheckSerial(Serial: String): Boolean;begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + Serial + Chr(13), True);
    	Result := True;
    end;
    Tous ceci me génère une erreur.
    Mais de toute façon je suis pratiquement sûr que ce n’est pas ce que je cherche, car moi je veux utiliser une liste de login et de serial prédéfinis soit entré dans le script ou sur un fichier texte crypté héberger sur un ftp sécurisé. Et ne pas utiliser les infos utilisateurs PC.

    Je ne c’est pas si j’ai été assez explicite cette fois ci.

    Cordialement
    Kyu

  5. #5
    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
    un début de réponse :
    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
    [Setup]
    UserInfoPage=true
     
    [Code ]
    function CheckSerial(Serial: String): Boolean;
    begin
    	if Serial = '12345' then Result:= true;
    end;
     
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      ErrorCode: Integer;
    begin
      if curpageID=wpUserInfo then
      begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + ExpandConstant('{userinfoserial}') + Chr(13), True);
      end;
      Result:=True;
     end;
    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

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut Je mets mon code ca pourras peut etre t'aider
    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
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{}
    AppName=Entreprise_Soft
    AppVersion=4.9
    ;AppVerName=Entreprise_Soft 4.9
    AppPublisher=Entreprise_Soft
    AppPublisherURL=URL
    AppSupportURL=URL
    AppUpdatesURL=URL
    DefaultDirName={pf}\Entreprise_Soft
    DefaultGroupName=Entreprise_Soft
    LicenseFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    InfoBeforeFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    InfoAfterFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    OutputDir=C:\Documents and Settings\Administrateur\Bureau
    OutputBaseFilename=FloGexe_setup
    SetupIconFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\funny.ico
    Password=123
    Compression=lzma
    SolidCompression=yes
    UserInfoPage=true
    VersionInfoCompany=Entreprise_Soft
    VersionInfoDescription=Entreprise_Soft
    VersionInfoProductName=Entreprise_Soft
    VersionInfoVersion=4.9.0.0
    WizardImageFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\WizModernImage-IS2.bmp
    WizardSmallImageFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\Soft\Res\WizModernSmallImage-IS1.bmp
     
    [Languages]
    Name: french; MessagesFile: compiler:Languages\French.isl
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    [Files]
    Source: Entreprise_Soft\7z.exe; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\7z.dll; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\Entreprise_Soft.exe; DestDir: {app}; Flags: ignoreversion
    Source: Entreprise_Soft\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [_ISToolDownload]
    Source: http://thierryaim.developpez.com/divers/1.zip; DestDir: {tmp}; DestName: 1.zip; Components: Telechargement\Fichier1
    ; NOTE: Je laisse tes fichiers de downloaad en exemple
     
    [Components]
    Name: Telechargement; Description: Telechargement Jeu; Types: full
    Name: Telechargement\Fichier1; Description: Fichier 1; Types: full
     
    [Icons]
    Name: {group}\Entreprise_Soft; Filename: {app}\Entreprise_Soft.exe
    Name: {group}\{cm:ProgramOnTheWeb,Entreprise_Soft}; Filename: URL
    Name: {group}\{cm:UninstallProgram,Entreprise_Soft}; Filename: {uninstallexe}
    Name: {commondesktop}\Entreprise_Soft; Filename: {app}\Entreprise_Soft.exe; Tasks: desktopicon
     
    [Run]
    Filename: {app}\7z.exe; Parameters: x {tmp}\1.zip; Components: Telechargement\Fichier1; Flags: runhidden
    Filename: {app}\Entreprise_Soft.exe; Description: {cm:LaunchProgram,Entreprise_Soft}; Flags: nowait postinstall skipifsilent
     
    [Registry]
    Root: HKLM; SubKey: SOFTWARE\(32bit Os); ValueType: none; Flags: uninsdeletekey
    Root: HKCC; SubKey: SOFTWARE\Wow6432Node\(64bit Os); ValueType: none; Flags: uninsdeletekey
     
    [UninstallDelete]
    Name: {app}; Type: filesandordirs
     
    [ Code]
    // Function generated by ISTool.
    function NextButtonClick(CurPage: Integer): Boolean;
    begin
    Result := istool_download(CurPage);
    end;
     
    Procedure URLLabelOnClick(Sender: TObject);
    var
      ErrorCode: Integer;
    begin
      ShellExec('open', 'URL', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
    end;
    {*** INITIALISATION ***}
    Procedure InitializeWizard;
    var
      URLLabel: TNewStaticText;
    begin
      URLLabel := TNewStaticText.Create(WizardForm);
      URLLabel.Caption := 'URL';
      URLLabel.Cursor := crHand;
      URLLabel.OnClick := @URLLabelOnClick;
      URLLabel.Parent := WizardForm;
      { 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 := WizardForm.ClientHeight - URLLabel.Height - 15;
      URLLabel.Left := ScaleX(20);
    end;
     
     
    [  Code] "ERROR"
    function CheckSerial(Serial: String): Boolean;
    begin
    	if Serial = '12345' then Result:= true;
    end;
     
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      ErrorCode: Integer;
    begin
      if curpageID=wpUserInfo then
      begin
    	SaveStringToFile(mcLogFile, 'In function CheckSerial ' + ExpandConstant('{userinfoserial}') + Chr(13), True);
      end;
      Result:=True;
     end;

  7. #7
    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
    Attention, tu as 2 fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function NextButtonClick(CurPageID: Integer): Boolean;
    mcLogFile n'est pas déclarer
    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

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut re merci de ta reponse rapide
    Je viens juste de rentrer je vais voir de suite merci car je suis vraiment novice dans ce langage j'attaque à peine le langage C++.
    Je vais essayer merci, mais pour la liste de login serial prédéfinie as-tu une idée pour m'orienter stp? Le but est que j apprenne donc met moi sur la voie sans donner de réponse toute faite merci.
    J'adore apprendre et comprendre ce que je fait.

    Cordialement
    Kyu

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut Bonjour
    J'ai trouvé ces exemples de codes d'aprés toi me seront-ils utile ?

    http://www.vincenzo.net/isxkb/index....events_example

    http://www.vincenzo.net/isxkb/index....install_events

    Cordialement
    Kyu

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut re
    Re,

    Merci pour ta réponse en mp.

    Donc je viens de faire évoluer mon exe encore il me reste juste ce problème de login et serial apparemment il me faudrait un script du genre tableau en 2D.

    Exemple de code valide sur AutoIT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $monArray[1,1] = ["valeur1,valeur2","mdp1,mdp2"]
    Vu mon niveau je galère pourrez tu m'aider, je m’incline est accepte un code tout fait.

    Cordialement
    Kyu

  11. #11
    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
    mettre tout les login serial dans l'installation sans cryptage c'est nul.

    une méthode, mettre un pass sur l'installation (voir aide inno).

    faire une page personnalisé inno setup qui demande login serial.

    les envoyer à un serveur distant qui les vérifie et envoie le pass de l'installation si c'est correct.

    le passe de l'installation pouvant être sniffer on peut améliorer encore ... mais déjà sans login serial correct pas de décryptage possible et les login serial sont sur un serveur distant et pas lisible en clair dans l'exe ...
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  12. #12
    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
    Citation Envoyé par ThierryAIM en MP
    Bonjour
    les liens que tu as trouvé te seront surement utiles pour apprendre à manipuler le code pascal et les fonctions spécifiques de Inno Setup, en faisant des essais

    Mais je pense que tu es encore un peu léger dans ce domaine pour faire par toi-même ce que tu demandes.

    ....
    @ouiouioui : bien sûr que ce que tu préconises, c'est une bonne soluce? mais je ne vois pas notre ami kyu faire ça tout seul, sans aucune notion de programmation pascal ou delphi

    Quant à l'écrire pour lui, ce n'est pas le but de ce forum ...
    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

  13. #13
    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
    on peut quand même imaginer un truc plus simple (certes pas aussi sécurisé) comme downloader (dans le cache internet, par exemple) un fichier d'un serveur distant contenant les login-pwd (pourquoi pas cryptés avec un code d'installation) et les comparer à ceux rentrés par l'utilisateur
    c'est pas le must en matière de cracking, mais ça peut déjà décourager l'utilisateur lambda
    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

  14. #14
    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
    histoire de prouver que ma solution était assez simple j'ai décidé de faire un petit exemple, au lieu d'y passé 15 minutes j'y ai passé trois quarts d'heure

    mais au final on a un setup qui récupère un mot de passe sur le serveur distant lorsque l'utilisateur à un accès valide. Mot de passe servant à décrypter les fichiers de l'installeur.
    Donc lorsque l'on a l'installeur sans user et serial valide il devient difficile de décrypter les fichiers.
    le sérial est envoyé sur le serveur distant sous forme de hash md5 et pas en clair

    il y a pas mal de solutions possible, j'ai choisi d'utiliser XML coté inno setup et PHP avec XML coté serveur.

    Dans le zip vous trouverez :
    - un exemple déjà compilé. les acces possibles pour l'installer sont :
    test test
    test2 test2

    - un fichier php qui permet sur un serveur distant de vérifier si l'utilisateur à un accès correct et de renvoyer la clé.

    - le script iss pour générer l'installeur.


    Plusieurs possibilités de l'améliorer :
    - arrêté d'envoyer la clé en clair mais utilisé un mini cryptage côté serveur et inno setup.
    - actuellement le nom d'utilisateur ne doit pas contenir d'espace ou de caractères spéciaux, il suffit d'envoyer les données sous forme XML pour parer à ce problème, ou d'encoder la valeur.


    Voila c'est somme toute basique mais fonctionnel

    le zip : http://www.toutenvrac.org/files/inno_serial.zip
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  15. #15
    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
    Citation Envoyé par ouiouioui Voir le message
    histoire de prouver que ma solution était assez simple
    Je n'en ai jamais douté (encore faut il avoir un serveur pour tester)
    c'est vrai que ça marche, mais ....

    Citation Envoyé par kyu666 Voir le message
    Jje suis vraiment novice dans ce langage j'attaque à peine le langage C++.
    et tu lui parles de XML, php .... et du code pascal qu'il découvre
    Ca fait pas un peu beaucoup en une fois ? !
    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

  16. #16
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut re
    Bonsoir,

    Je viens de finir de formater, et je viens de voir vos posts.
    Merci pour vos réponses bien que je n’ai pas pu voir l'exemple le lien ne fonctionnant pas.

    Mais d'après ton explication c'est exactement ce que je demandais même si mes propos n’étaient pas clairs.

    Cordialement
    Kyu

    P.S: le php je connais un peu puisque je possède plusieurs site web sur ma machine OVH

  17. #17
    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
    Citation Envoyé par ThierryAIM Voir le message
    et tu lui parles de XML, php .... et du code pascal qu'il découvre
    Ca fait pas un peu beaucoup en une fois ? !
    Oui j'avoue, en même temps adapter mon exemple nécessite pas une grande connaissance je pense. Tu me gâche mon plaisir, je n'interviendrai plus dans tes posts
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  18. #18
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut RE
    Ouiouioui tu es un chef dans la matière.
    Pour moi, novice, il y a encore du boulot mais tu m'as vraiment maché le travail je te remercierai mille fois mais ca deviendrai du spam
    Cordialement Kyu

  19. #19
    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
    Citation Envoyé par ouiouioui Voir le message
    Oui j'avoue, en même temps adapter mon exemple nécessite pas une grande connaissance je pense.
    Je sais, même moi j'y suis arrivé
    Citation Envoyé par ouiouioui Voir le message
    Tu me gâche mon plaisir,

    Citation Envoyé par ouiouioui Voir le message
    je n'interviendrai plus dans tes posts
    non, ça t'as pas le droit
    Moi aussi je connais ton niveau, alors tu es toujours le bienvenu
    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

  20. #20
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 1
    Points
    1
    Par défaut RE à tous
    Bonjour,

    Donc j’ai fait une grosse amélioration de base de mon script, en rajoutant les traductions manuelles et aussi en simplifiant les chemins avec #define.
    Ce script n’est pas complet car il fait presque 600 lignes que je pense séparer en plusieurs .iff, cela doit être possible.

    Bref pour les derniers tests j’ai ajouté le script à ouiouioui ( merci encore chef ), j’ai sécurisé un dossier ftp interdisant l’accès pour le check.php (en accés direct via le web).

    Mais voila le problème est la fonction nextbuttonclick se répétant 2 fois, donc je cherche à la doubler mais apparemment ce n’est pas possible. Donc je cherche depuis un peu plus d’une semaine ne trouvant pas la solution.

    Sachant que les fonctions (download + serial) ayant besoin nextbuttonclick sont indispensables.

    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
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
    #define MyAppName "website"
    #define MyAppVersion "4.9"
    #define MyAppPublisher "website"
    #define MyAppURL "http://www.website.com/~website/"
    #define MyAppExeName "website_update.exe"
    #define MyAppVer GetFileVersion("website\website.exe")
    #define MyPassword "fd5rd6HPG541ZSX25V5fnvwoeg980"
    #define MyXMLURL "http://www.website.com/patchs/check.php"
     
    [Setup]
    AppId={{BA760530-996D-4805-B88E-F4DD8DFEBB00}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    DefaultDirName={pf}\{#MyAppName}
    DefaultGroupName={#MyAppName}
    ;LicenseFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    ;InfoBeforeFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    ;InfoAfterFile=C:\Documents and Settings\Administrateur\Bureau\flog sauv\License.txt
    OutputDir=Output
    OutputBaseFilename=website_setup
    SetupIconFile=res\funny.ico
    Password={#MyPassword}
    Compression=lzma
    SolidCompression=true
    UserInfoPage=true
    VersionInfoCompany={#MyAppName}
    VersionInfoDescription={#MyAppName}
    VersionInfoProductName={#MyAppName}
    VersionInfoVersion={#MyAppVer}
    Encryption=yes
    WizardImageFile=res\WizModernImage-IS2.bmp
    WizardSmallImageFile=res\WizModernSmallImage-IS1.bmp
    AllowNoIcons=true
    SetupLogging=true
     
    ; Les fichiers de license. Reste à traduire: Italien, Espagnol et Allemand
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl; LicenseFile: res\License-en.txt
    Name: french; MessagesFile: compiler:Languages\French.isl; LicenseFile: res\License-fr.txt
    Name: german; MessagesFile: compiler:Languages\German.isl; LicenseFile: res\License-de.txt
    Name: italian; MessagesFile: compiler:Languages\Italian.isl; LicenseFile: res\License-it.txt
    Name: spanish; MessagesFile: compiler:Languages\Spanish.isl; LicenseFile: res\License-es.txt
     
    ; Variable des texte traduit. Trad. faite avec Google donc à corriger ;-)
    [CustomMessages]
    french.DL=Telechargement des principaux fichiers
    french.DL_File1=Fichier du Jeu
    english.DL=Main files to download
    english.DL_File1=Game files
    german.DL=Main-Dateien zum Download
    german.DL_File1=Game-Dateien
    italian.DL=Main file da scaricare
    italian.DL_File1=File di Gioco
    spanish.DL=Cuerpo de archivos para descargar
    spanish.DL_File1=Juego de Archivos
    ; chek serial
    cmSerial=Serial:
    french.cmSerial=Serial :
    cmBadUserOrSerial=Bad username and/or serial.
    french.cmBadUserOrSerial=Mauvais nom d'utilisateur et/ou numéro de série.
     
    [Files]
    Source: website\7z.exe; DestDir: {app}; Flags: ignoreversion
    Source: website\7z.dll; DestDir: {app}; Flags: ignoreversion
    Source: website\{#MyAppExeName}; DestDir: {app}; Flags: ignoreversion
    Source: website\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
     
    [_ISToolDownload]
    Source: http://www.website.com/patchs/updates/1.zip; DestDir: {tmp}; DestName: 1.zip; Components: Telechargement\Fichier1
     
    [Components]
    Name: Telechargement; Description: {cm:DL}; Types: full
    Name: Telechargement\Fichier1; Description: {cm:DL_File1}; Types: full
     
    [Icons]
    Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
    Name: {group}\{cm:ProgramOnTheWeb,website}; Filename: {#MyAppURL}
    Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
    Name: {group}\{cm:UninstallProgram,website}; Filename: {uninstallexe}
     
    [Run]
    Filename: {app}\7z.exe; Parameters: x {tmp}\1.zip; Components: Telechargement\Fichier1; Flags: runhidden
    Filename: {app}\logiciel_update.exe; Description: {cm:LaunchProgram,logiciel}; Flags: nowait postinstall skipifsilent
     
    [  Code]
    // Function generated by ISTool.
    function NextButtonClick(CurPage: Integer): Boolean;
    begin
    Result := istool_download(CurPage);
    end;
     
    [  code]
    var
      MyUserInfoPage: TWizardPage; //page pour mettre user et serial
      AlreadyShowMyUserInfoPage: boolean; //necessaire pour passer pageinfo une fois ok
     
    // demande user - serial
     
    //on change l'apparence de la page pour demander un user, serial
    //et comme sa sert à rien de réinventer la roue on pompe la page prévu pour.
    procedure MakeMyUserInfoPage();
    var
      innoUserInfoPage: TWizardPage;
    begin 
      innoUserInfoPage := PageFromID(wpUserInfo);                            
     
      MyUserInfoPage := CreateCustomPage(wpWelcome, innoUserInfoPage.Caption, innoUserInfoPage.Description); 
     
      //on affiche la demande de user 
      WizardForm.UserInfoNameLabel.Parent := MyUserInfoPage.Surface;
      WizardForm.UserInfoNameEdit.Parent := MyUserInfoPage.Surface;         
      //on affiche la demande de serial
      WizardForm.UserInfoSerialLabel.Parent := MyUserInfoPage.Surface;
      WizardForm.UserInfoSerialLabel.Top := WizardForm.UserInfoOrgLabel.Top;
      WizardForm.UserInfoSerialLabel.Visible := True;
      WizardForm.UserInfoSerialLabel.Caption := ExpandConstant('{cm:cmSerial}');   
      WizardForm.UserInfoSerialEdit.Parent := MyUserInfoPage.Surface;             
      WizardForm.UserInfoSerialEdit.Top := WizardForm.UserInfoOrgEdit.Top;     
      WizardForm.UserInfoSerialEdit.Visible := True;   
    end;
     
    function CheckPassword(Password: String): Boolean;
    begin
      Result := True;
    end;
     
    procedure InitializeWizard();
    begin
      AlreadyShowMyUserInfoPage := False;
      MakeMyUserInfoPage;
    end;
     
    //verification user - serial
     
    function CheckSerialOnline: boolean;
    var
      XMLHTTP, XMLDoc, Node: Variant;
    begin
      Result := False;
     
      if (WizardForm.UserInfoNameEdit.Text = '') or (WizardForm.UserInfoSerialEdit.Text = '') then
        Exit;
     
      { Create the main MSXML COM Automation object } 
      try
        XMLHTTP := CreateOleObject('MSXML2.ServerXMLHTTP');
      except
        RaiseException('Please install MSXML first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)');
      end;
     
      { Send user and md5 serial } 
      XMLHTTP.Open('POST', '{#MyXMLURL}', False);
      XMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      { user and serial need to be encoded if they have space or special caracters like &
        you can make a xml and send it, and load in on server alternatively of encodage}
      XMLHTTP.Send('user=' + WizardForm.UserInfoNameEdit.Text + '&serial=' + GetMD5OfString(WizardForm.UserInfoSerialEdit.Text));
     
      { Load the XML Result }   
      XMLDoc := CreateOleObject('MSXML2.DOMDocument');
      XMLDoc.LoadXML(XMLHTTP.responseText);
      if XMLDoc.parseError.errorCode <> 0 then
      begin
        RaiseException('Error on line ' + IntToStr(XMLDoc.parseError.line) + ', position ' + 
          IntToStr(XMLDoc.parseError.linepos) + ': ' + XMLDoc.parseError.reason);
      end
      else
      begin   
        Node := XMLDoc.documentElement.firstChild;                    
        if (Node.nodeName = 'password') and (Node.Text <> '') then
        begin    
          WizardForm.PasswordEdit.Text := Node.Text; 
          AlreadyShowMyUserInfoPage := True;    
          Result := True;   
        end;
      end;
    end;
     
    function NextButtonClick(CurPageID: Integer): Boolean;
    begin
      if CurPageID = MyUserInfoPage.ID then
      begin
        //verif sur serveur distant user, serial et récuperation clé.
        if CheckSerialOnline then   
          Result := True
        else 
        begin 
          MsgBox(ExpandConstant('{cm:cmBadUserOrSerial}'), mbError, MB_OK);
          Result := False
        end;
      end
      else
        Result := True;
    end;  
     
    // cacher page info user serial pour ne plus les changer vu que c'est bon
     
    function ShouldSkipPage(PageID: Integer): Boolean;
    begin
      if (PageID = MyUserInfoPage.ID) and AlreadyShowMyUserInfoPage then      
        Result := True
      else
        Result := False;
    end;  
     
    // cacher page password mais simuler passage pour que le passe soit enregistrer dans inno
     
    const
      BM_CLICK    = $00F5;
     
    procedure CurPageChanged(CurPageID: Integer);
    begin
      if CurPageID = wpPassword then
      begin
        PostMessage(WizardForm.NextButton.Handle, BM_CLICK, 0, 0);
      end;
    end;
     
    [  code]
    Procedure URLLabelOnClick(Sender: TObject);
    var
      ErrorCode: Integer;
    begin
      ShellExec('open', 'http://www.website.com/~website/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
    end;
     
    var
      URLLabel: TNewStaticText;
    begin
      URLLabel := TNewStaticText.Create(WizardForm);
      URLLabel.Caption := 'www.website.com/~website/';
      URLLabel.Cursor := crHand;
      URLLabel.OnClick := @URLLabelOnClick;
      URLLabel.Parent := WizardForm;
      { 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 := WizardForm.ClientHeight - URLLabel.Height - 15;
      URLLabel.Left := ScaleX(20);
    end;
    Cordialement
    Kyu666

Discussions similaires

  1. Serial number dans ProInstall
    Par Freyer dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 21/10/2009, 18h45
  2. récuperer le Serial Number de mon hard Disk
    Par mikky dans le forum Composants
    Réponses: 4
    Dernier message: 15/10/2009, 12h59
  3. recup serial number disque physique
    Par ighost dans le forum Débuter
    Réponses: 8
    Dernier message: 31/07/2008, 17h23
  4. Set serial Number sur une disquette
    Par Cpet dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/12/2004, 10h24

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