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 :

w98: Fermer explorateur window et des fenetres de explorer


Sujet :

API, COM et SDKs Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut w98: Fermer explorateur window et des fenetres de explorer
    Bonjour,

    Je cherche un code delphi permettant de fermer l'explorateur window sans fermer explorer.exe
    Je cherche aussi un code permettant de fermer les fenetres lancés par explorer.exe ( sans faire planter explorer.exe et sans le relancer ) quand par exemple on double-clique sur un dossier.

    mon appli fonctionne sous w98 uniquement.

    merci

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    salut
    pour résoudre ton problème tu peux utiliser les fonctions EnumWindows et GetClassName
    je m'explique: tu utilises la fonction EnumWindows pour avoir tous les handles des fenêtres ouvertes, pour chaque fenêtre, tu récupère sa classe avec la fonction GetClassName, il faut savoir que toutes les fenêtres explorer ont un même nom de classe (quelque chose du genre WCabinetClass je ne me rapelle plus trop).
    ainsi pour chaque handle que tu auras tu fais le test pour savoir si c'est la bonne classe et si c'est le cas tu envoie à la fenêtre un message WM_QUIT ou autre pour la fermer.
    je vais fouiller dans mes archives et t'envoyer un bout de code adéquat.

  3. #3
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    voilà le code en question:
    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
    unit Unit1
     
    interface
     
    uses
    	Windows, Messages, SysUtils, StrUtils, Classes, ShellApi;
    const
      c_CabinetWClass: string = 'cabinetwclass';
     
    function  CloseAllExplorer: Integer;
     
     
    implementation
     
     
    function  CloseAllExplorer: Integer;
    var
      Explorer: THandle;
    begin
      //fermer toutes les fenêtres explorer ouvertes et retourner le nombre de fenêtres fermées
      //première fenêtre explorer
      Explorer := FindWindow(PChar(c_CabinetWClass), nil);
      result := 0;
      while Explorer <> 0 do begin
        //envoyer un message de commande système a la fenêtre pour la fermer
        if PostMessage(Explorer, WM_SYSCOMMAND, SC_CLOSE, 0) then
          Inc(result);
        //rechercher la fenêtre explorer suivante
        Explorer := FindWindow(PChar(c_CabinetWClass), nil);
      end;
    end;
    j'espère qu'il résoudra ton problème.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci beaucoup
    ca marche très bien.

    pour fermer les fenetres de l'explorateur il faut remplacer

    'cabinetwclass' par 'ExploreWClass'.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/02/2015, 17h24
  2. Explorateur windows "Joindre des fichiers"
    Par vivi6674 dans le forum Windows
    Réponses: 2
    Dernier message: 26/02/2014, 16h30
  3. [XL-2007] Fermer explorateur windows depuis excel
    Par fasedan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2011, 17h24
  4. explorateur windows xp?(une seule fenetre)
    Par kinossay dans le forum Windows XP
    Réponses: 3
    Dernier message: 28/03/2006, 20h42
  5. [VB6] Listage des fenêtres windows
    Par gg78 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/05/2003, 11h36

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