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] Fin de tâche d'un fichier exe installé avant la mise à jour d'un programme


Sujet :

Outils Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut [Inno Setup] Fin de tâche d'un fichier exe installé avant la mise à jour d'un programme
    Bonjour,

    je recherche la bonne solution afin de mettre fin à monficher.exe en cours d'utilisation et sans message d'information pour pouvoir installer une nouvelle version de mon programme sans être obligé de désinstaller l'ancienne version installée


    [Files]
    Source: {App}\monficher.exe; DestDir: {app}; BeforeInstall: TaskKill('monficher.exe')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TaskKill(FileName: String);
    var
      ResultCode: Integer;
    begin
        Exec(ExpandConstant('taskkill.exe'), '/f /im ' + '"' + FileName + '"', '', SW_HIDE,
         ewWaitUntilTerminated, ResultCode);
    end;

    Merci

    CocoNuts974

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 710
    Points : 13 174
    Points
    13 174
    Par défaut
    Je le ferais dans CurStepChanged lorsque CurStep vaut ssInstall.

  3. #3
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par CocoNuts974 Voir le message
    je recherche la bonne solution afin de mettre fin à monficher.exe en cours d'utilisation et sans message d'information
    C'est pas faute de gueuler à longueur d'année contre Microsoft et ses mises à jour "transparentes" qui rebootaient Windows alors qu'on faisait quelque chose...

    On ne ferme pas un programme sans l'accord de l'utilisateur. Telle est la voie !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci bien pour votre aide, voici les codes utilisés qui fonctionnent


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      ResultCode: Integer;
      Uninstall: String;
      begin
      if (CurStep = ssInstall) then begin
        if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\Signal Phone_is1', 'UninstallString', Uninstall) then begin
          MsgBox('Warning: an old version of YourApp is installed! Now the old one will be removed and installed the new!', mbInformation, MB_OK);
          Exec(RemoveQuotes(Uninstall), ' /SILENT', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
        end;
      end;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function InitializeSetup(): Boolean;
    var
      ErrorCode: Integer;  
      begin        
            ShellExec('open',
              'taskkill.exe',
              '/f /im signal.exe','',SW_HIDE,ewNoWait,ErrorCode);
     
            ShellExec('open',
              'tskill.exe',
              'signal','',SW_HIDE,ewNoWait,ErrorCode);
            result := True;
      end;

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/01/2015, 05h59
  2. Réponses: 2
    Dernier message: 03/09/2012, 21h09
  3. Réponses: 7
    Dernier message: 01/06/2012, 16h13
  4. Réponses: 1
    Dernier message: 02/03/2011, 13h30
  5. Réponses: 2
    Dernier message: 13/10/2010, 15h56

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