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

API, COM et SDKs Delphi Discussion :

Arrêter des instances de programme


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Par défaut Arrêter des instances de programme
    Bonjour.
    J'aurais besoin d'arrêter les instances d'un programme qui a été lancé depuis un emplacement.

    Le but est de fermer toutes ces instances avant de lancer un programme de mise à jour fait avec inno setup et qui plante si un des programmes à remplacer est en cours d'éxecution.

    Merci d'avance de votre aide. La difficulté semble être de retrouver les handle de fenêtre.

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    Salut Butch,

    Enumerer les applications en cours et utiliser FindWindow() pour retrouver les handle qui t'interessent. Il faudra rechercher une certaine occurence dans la barre des titres des fenetres pour identifier *la* bonne application.

    J'espere que ca suffira.

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function KillProcess(const ProcessName : string) : boolean;
    var ProcessEntry32 : TProcessEntry32;
        HSnapShot : THandle;
        HProcess : THandle;
    begin
      Result := False;
     
      HSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      if HSnapShot = 0 then exit;
     
      ProcessEntry32.dwSize := sizeof(ProcessEntry32);
      if Process32First(HSnapShot, ProcessEntry32) then
      repeat
        if CompareText(ProcessEntry32.szExeFile, ProcessName) = 0 then
        begin
          HProcess := OpenProcess(PROCESS_TERMINATE, False, ProcessEntry32.th32ProcessID);
          if HProcess <> 0 then
          begin
            Result := TerminateProcess(HProcess, 0);
            CloseHandle(HProcess);
          end;
          Break;
        end;
      until not Process32Next(HSnapShot, ProcessEntry32);
     
      CloseHandle(HSnapshot);
    end;
    Utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       KillProcess('MonExe.exe');

Discussions similaires

  1. [GMF] Créer des instances d'éléments par programmation
    Par hashas dans le forum Eclipse Modeling
    Réponses: 1
    Dernier message: 03/08/2010, 23h20
  2. Réponses: 6
    Dernier message: 01/07/2010, 18h15
  3. Réponses: 7
    Dernier message: 02/09/2008, 10h07
  4. [DiVERS] -> Arrêter et redemarrer son programme ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/08/2003, 15h25
  5. Etude des "styles" de programmation
    Par RiRi51 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/03/2003, 19h50

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