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 :

installer Net. Framework 3.5 si l'os n'est pas Window 7 avec Inno Setup


Sujet :

Outils Delphi

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut installer Net. Framework 3.5 si l'os n'est pas Window 7 avec Inno Setup
    Bonjour

    j'ai une application que j'ai empaqueté avec inno setup. je veux ajouter dans la section [code], un script qui me permettent de lancer automatiquement Microsoft Framework 3.5 si le système d'exploitation n'est pas Windows 7

    voilà ce que j'ai bricolé

    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
    unit WinVersion;
    *
    interface
    // {$IFDEF MSWindows}{$WARN SYMBOL_PLATFORM OFF}{$WARN UNIT_PLATFORM OFF}{$ENDIF MSWindows}
    *
    *
    uses
      Windows,
      Messages,
      Consts,
      SysUtils,
      Classes;
    *
    type
      TWindowsVersion = (wvUnknown, wvWin31, wvWin95, wvWin95OSR2, wvWin98,
        wvWin98SE, wvWinME, wvWin9x, wvWinNT3, wvWinNT4, wvWin2000, wvWinXP,
        wvWinNT, wvWinServer2003, wvWinVista);
    *
    const
      CWindowsVersionStr: array [TWindowsVersion] of string = ('Inconnu',
        'Windows 3.1', 'Windows 95', 'Windows 95 OSR 2', 'Windows 98',
        'Windows 98 SE', 'Windows Me', 'Windows 9x', 'Windows NT 3.5',
        'Windows NT 4', 'Windows 2000', 'Windows XP', 'Windows NT', 'Windows Server 2003',
        'Windows Vista');
    *
    *
    function  GetWindowsVersion: TWindowsVersion;
    *
    implementation
    *
     function GetWindowsVersion: TWindowsVersion;
    *
        function ExportsAPI(module: HMODULE; const apiName: string): boolean;
        begin
          Result := GetProcAddress(module, PChar(apiName)) <> nil;
        end; { ExportsAPI }
    *
      var
        hKernel32: HMODULE; // Windows.pas 
    *
      begin { GetWindowsVersion }
        hKernel32 := GetModuleHandle('kernel32');
        Win32Check(hKernel32 <> 0);
        if ExportsAPI(hKernel32, 'GetLocaleInfoEx') then
          Result := wvWinVista
        else if ExportsAPI(hKernel32, 'GetLargePageMinimum') then
          Result := wvWinServer2003
        else if ExportsAPI(hKernel32, 'GetNativeSystemInfo') then
          Result := wvWinXP
        else if ExportsAPI(hKernel32, 'ReplaceFile') then
          Result := wvWin2000
        else if ExportsAPI(hKernel32, 'OpenThread') then
          Result := wvWinME
        else if ExportsAPI(hKernel32, 'GetThreadPriorityBoost') then
          Result := wvWinNT4
        else if ExportsAPI(hKernel32, 'IsDebuggerPresent') then  // aussi dans NT4!
          Result := wvWin98
        else if ExportsAPI(hKernel32, 'GetDiskFreeSpaceEx') then  // aussi dans NT4!
          Result := wvWin95OSR2
        else if ExportsAPI(hKernel32, 'ConnectNamedPipe') then
          Result := wvWinNT3
        else if ExportsAPI(hKernel32, 'Beep') then
          Result := wvWin95
        else // aucune idée
          Result := wvUnknown;
      end;
      end. { GetWindowsVersion }
     
    program unit1;
    *
    {$APPTYPE CONSOLE}
    *
    uses
      Windows,
      SysUtils,
      WinVersion;
    *
    begin
      Writeln('GetWindowsVersion: ', CWindowsVersionStr[GetWindowsVersion]);
      Readln;
    end.

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut
    je n'arrive pas à compiler. si quelqu'un peut m'aider

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    program unit1;
    *
    {$APPTYPE CONSOLE}
    *
    uses
      Windows,
      SysUtils,
      WinVersion;
    *
    begin
      Writeln('GetWindowsVersion: ', CWindowsVersionStr[GetWindowsVersion]);
      Readln;
    end.
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Writeln('GetWindowsVersion: ', CWindowsVersionStr[GetWindowsVersion]);
      Readln;
    j'aurai préféré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
      // executer le fichier installNetFramework3.5 si le système d'exploitation n'est pas windows7
    end.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Points : 120
    Points
    120
    Par défaut
    je crois qu'il est inutile cet exercice.
    je peux l'insérer dans dans un bloc note sous forme d'instruction ou d'aide à l'utilisateur.

    ce qui me tracasse, c'est comment installer silencieusement un fichier .msi ou .exe à la fin de l'installation de mon application compilée avec inno setup

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 713
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 713
    Points : 13 182
    Points
    13 182
    Par défaut
    Pas de problème si l'installer supporte l'installation silencieuse (pour un script Inno Setup ce serait : /SP- /VERYSILENT).
    Si ce n'est pas le cas, tu peux toujours essayer de le lancer depuis [Run] avec l'option RunHidden ou depuis [Code] par ShellExec(..., SW_HIDE) pour autant qu'il ne requière pas de saisie utilisateur. Sinon c'est le deadlock...

Discussions similaires

  1. Auto Installation .NET Framework & Visual C++ runtime?
    Par DreamNooby dans le forum Débuter
    Réponses: 1
    Dernier message: 09/09/2013, 09h24
  2. Installation Net Framework 4
    Par jolemoine dans le forum Framework .NET
    Réponses: 3
    Dernier message: 07/10/2012, 12h22
  3. [Débutant] Probleme installation NET Framework 3.5
    Par nawbya dans le forum Framework .NET
    Réponses: 2
    Dernier message: 03/07/2012, 21h38
  4. Réponses: 1
    Dernier message: 21/12/2011, 12h01
  5. Installation .NET Framework 3.0
    Par compdev dans le forum Framework .NET
    Réponses: 3
    Dernier message: 29/06/2009, 11h46

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