Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

REDUIRE DES FENETRES DANS LA BARRE DE TACHES EN VB.NET


Information sur la source

Catégorie :VB.NET Source .NET ( DotNet ) Classé sous : REDUIRE, FENETRE, BARRE TACHE Niveau : Débutant Date de création : 13/06/2008 Date de mise à jour : 13/06/2008 19:09:07 Vu : 4 031

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

A compiler dans une application "console".
A partir les arguments passés en ligne de commande, les fenêtres, dont le titre contient l'un des arguments, sont réduites dans la barre de tâche.

Programme testé en VB2008 Express.
Il peut être compilé pour le Framework 2.0, 3.0 ou 3.5
 

Source

  • '===========================================================================================
  • ' Projet : ReduitFenetre
  • ' Gis59 - 13/06/2008
  • '===========================================================================================
  • ' Description : Réduction des fenetres passées en paramétre
  • ' Paramtres : Titres des fenetres
  • '===========================================================================================
  • ' Modif :
  • '===========================================================================================
  • Module Main
  • Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Integer, ByVal wCmd As Integer) As Integer
  • Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
  • Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Integer) As Integer
  • Private Declare Function GetDesktopWindow Lib "user32" () As Integer
  • Public Declare Function CloseWindow Lib "user32" (ByVal hWnd As Integer) As Integer
  • <VBFixedString(255)> Dim TitreFenetre As String
  • Const GW_HWNDFIRST As Integer = 0
  • Const GW_HWNDLAST As Integer = 1
  • Const GW_HWNDNEXT As Integer = 2
  • Const GW_HWNDPREV As Integer = 3
  • Const GW_OWNER As Integer = 4
  • Const GW_CHILD As Integer = 5
  • Sub Main()
  • Dim blnRet As Boolean = False
  • 'Test si "?" dans les arguments
  • blnRet = TestSiHelp()
  • 'Cherche les fenetres et fait la réduction si pas demande d'aide
  • If Not blnRet Then Call ChercheEtReduit()
  • End Sub
  • '---------------------------------------------------------------------------------------
  • ' Sub : ChercheEtReduit
  • ' Description : Parcout la liste des fenêtres active et réduit les fenêtres dans le nom
  • ' contient un des strings passées en argument au programme.
  • '---------------------------------------------------------------------------------------
  • Sub ChercheEtReduit()
  • Dim hWnd As Integer
  • Dim argument As String
  • Dim Titre As String
  • Dim iNbCar As Integer
  • 'Recupere le Handle du bureau
  • Dim hWndDesktop = GetDesktopWindow()
  • 'Recupere le Handle de la 1ere Fenetre fille
  • hWnd = GetWindow(hWndDesktop, GW_CHILD)
  • 'Boucle sur toute les fenetres filles
  • Do While (Not IsNothing(hWnd)) AndAlso (hWnd <> 0)
  • 'Lecture du titre
  • TitreFenetre = New String(Chr(0), 255)
  • iNbCar = GetWindowText(hWnd, TitreFenetre, 255)
  • If iNbCar > 0 Then
  • 'If TitreFenetre <> New String(Chr(0), 255) Then
  • If IsWindowVisible(hWnd) = 1 Then
  • Titre = Microsoft.VisualBasic.Left(TitreFenetre, iNbCar)
  • 'Parcourt les argument pour chercher une concordance avce le titre
  • For Each argument In My.Application.CommandLineArgs
  • If Titre.ToUpper.Contains(argument.ToUpper) Then
  • Console.WriteLine("Fenetre à réduire : " & Titre.ToString)
  • 'Réduit la fenetre si concordance
  • CloseWindow(hWnd)
  • End If
  • Next
  • End If
  • End If
  • 'Recupere le Handle de la Fenetre fille suivante
  • hWnd = GetWindow(hWnd, GW_HWNDNEXT)
  • Loop
  • End Sub
  • '---------------------------------------------------------------------------------------
  • ' Function : TestSiHelp
  • ' Description : Si un des arguments contient "?", affichage de l'aide
  • ' Retour : True si demande d'aide, sinon false
  • '---------------------------------------------------------------------------------------
  • Function TestSiHelp() As Boolean
  • Dim blnDemandeHelp As Boolean = False
  • Dim argument As String
  • If My.Application.CommandLineArgs.Count = 0 Then
  • blnDemandeHelp = True
  • Else
  • 'Parcoutr les Arguments pour recherche "?"
  • For Each argument In My.Application.CommandLineArgs
  • If argument.Contains("?") Then
  • blnDemandeHelp = True
  • Exit For
  • End If
  • Next
  • End If
  • 'Affiche l'aide
  • If blnDemandeHelp Then
  • Console.WriteLine("")
  • Console.WriteLine("=======================================================================")
  • Console.WriteLine(" ReduitFenetre.exe")
  • Console.WriteLine("=======================================================================")
  • Console.WriteLine("Decription : Réduit dans la barre de tache")
  • Console.WriteLine(" les fenetres passées en argument.")
  • Console.WriteLine("")
  • Console.WriteLine("Syntaxe : ReduitFenetre.exe arg1 [arg2 .... argx] ")
  • Console.WriteLine(" arg1 à argx : titre (ou partie du titre) des fenetres a reduire.")
  • Console.WriteLine("")
  • Console.WriteLine("Exemple : ReduitFenetre.exe ""cmd.exe""")
  • Console.WriteLine(" --> Reduction de toutes les fenetres dant le titre contient cmd.exe")
  • Console.WriteLine("")
  • End If
  • TestSiHelp = blnDemandeHelp
  • End Function
  • End Module
'===========================================================================================
'                               Projet : ReduitFenetre 
'                                Gis59 - 13/06/2008
'===========================================================================================
' Description : Réduction des fenetres passées en paramétre
' Paramtres   : Titres des fenetres
'===========================================================================================
' Modif       :
'===========================================================================================

Module Main

    Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Integer, ByVal wCmd As Integer) As Integer
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
    Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Integer) As Integer
    Private Declare Function GetDesktopWindow Lib "user32" () As Integer
    Public Declare Function CloseWindow Lib "user32" (ByVal hWnd As Integer) As Integer

    <VBFixedString(255)> Dim TitreFenetre As String

    Const GW_HWNDFIRST As Integer = 0
    Const GW_HWNDLAST As Integer = 1
    Const GW_HWNDNEXT As Integer = 2
    Const GW_HWNDPREV As Integer = 3
    Const GW_OWNER As Integer = 4
    Const GW_CHILD As Integer = 5

    Sub Main()
        Dim blnRet As Boolean = False
        'Test si "?" dans les arguments
        blnRet = TestSiHelp()
        'Cherche les fenetres et fait la réduction  si pas demande d'aide
        If Not blnRet Then Call ChercheEtReduit()

    End Sub

    '---------------------------------------------------------------------------------------
    ' Sub           : ChercheEtReduit
    ' Description   : Parcout la liste des fenêtres active et réduit les fenêtres dans le nom
    '                   contient un des strings passées en argument au programme.
    '---------------------------------------------------------------------------------------

    Sub ChercheEtReduit()
        Dim hWnd As Integer
        Dim argument As String
        Dim Titre As String
        Dim iNbCar As Integer

        'Recupere le Handle du bureau
        Dim hWndDesktop = GetDesktopWindow()
        'Recupere le Handle de la 1ere Fenetre fille
        hWnd = GetWindow(hWndDesktop, GW_CHILD)

        'Boucle sur toute les fenetres filles
        Do While (Not IsNothing(hWnd)) AndAlso (hWnd <> 0)
            'Lecture du titre
            TitreFenetre = New String(Chr(0), 255)
            iNbCar = GetWindowText(hWnd, TitreFenetre, 255)
            If iNbCar > 0 Then
                'If TitreFenetre <> New String(Chr(0), 255) Then
                If IsWindowVisible(hWnd) = 1 Then
                    Titre = Microsoft.VisualBasic.Left(TitreFenetre, iNbCar)
                    'Parcourt les argument pour chercher une concordance avce le titre
                    For Each argument In My.Application.CommandLineArgs
                        If Titre.ToUpper.Contains(argument.ToUpper) Then
                            Console.WriteLine("Fenetre à réduire : " & Titre.ToString)
                            'Réduit la fenetre si concordance
                            CloseWindow(hWnd)
                        End If
                    Next
                End If
            End If
            'Recupere le Handle de la Fenetre fille suivante
            hWnd = GetWindow(hWnd, GW_HWNDNEXT)
        Loop
    End Sub

    '---------------------------------------------------------------------------------------
    ' Function      : TestSiHelp
    ' Description   : Si un des arguments contient "?", affichage de l'aide
    ' Retour        : True si demande d'aide, sinon false                  
    '---------------------------------------------------------------------------------------
    Function TestSiHelp() As Boolean
        Dim blnDemandeHelp As Boolean = False
        Dim argument As String

        If My.Application.CommandLineArgs.Count = 0 Then
            blnDemandeHelp = True
        Else
            'Parcoutr les Arguments pour recherche "?"
            For Each argument In My.Application.CommandLineArgs
                If argument.Contains("?") Then
                    blnDemandeHelp = True
                    Exit For
                End If
            Next
        End If

        'Affiche l'aide
        If blnDemandeHelp Then
            Console.WriteLine("")
            Console.WriteLine("=======================================================================")
            Console.WriteLine("                     ReduitFenetre.exe")
            Console.WriteLine("=======================================================================")
            Console.WriteLine("Decription : Réduit dans la barre de tache")
            Console.WriteLine("             les fenetres passées en argument.")
            Console.WriteLine("")
            Console.WriteLine("Syntaxe : ReduitFenetre.exe arg1 [arg2 .... argx] ")
            Console.WriteLine("   arg1 à argx : titre (ou partie du titre) des fenetres a reduire.")
            Console.WriteLine("")
            Console.WriteLine("Exemple : ReduitFenetre.exe ""cmd.exe""")
            Console.WriteLine("  --> Reduction de toutes les fenetres dant le titre contient cmd.exe")
            Console.WriteLine("")

        End If

        TestSiHelp = blnDemandeHelp
    End Function

End Module

Commentaires et avis

signaler à un administrateur
Commentaire de mortalino le 13/06/2008 18:53:21

Salut,

bien que tu l'aies précisé dans la catégorie de ta source, tu as dû oublier de cocher quelque part 'Source .Net" en déposant ta source. Essaie de voir si tu peux mettre à jour ;)

Bonne continuation

signaler à un administrateur
Commentaire de PCPT le 13/06/2008 19:28:34 administrateur CS

salut,
"Microsoft.VisualBasic.Left"
umm, vraiment pas top en VB2008 çà... substring?

"Dim hWnd As Integer"
les handles ne doivent pas être en IntPtr?

"TestSiHelp = blnDemandeHelp"
RETURN blnDemandeHelp


etc..., ton code est très "à la VB6"
bon courage ;)

signaler à un administrateur
Commentaire de Revelc le 21/06/2008 18:36:03

Oui c'est vrai qu'il y a de la nostalgie vb6 dans ton code. Mais merci quand même , c'était exactement ce que je cherché :)

A+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Reduire fenetre [ par Phonix4567 ] Bonjour, &nbsp;apres avoir chercher dans le forum, et n'avoir trouv&#233; aucune r&#233;ponse, ainsi que d'avoir test&#233; diff&#233;rent truc sur v cacher, reduire fermer [ par narco4 ] Bjr,voila, je voudrais savoir si c'est possible en vbs de reduire la fenetre dos dans la barre des tache?je m'explique j'ai un petit batch qui appele OUVRIR UNE FENETRE DOS A PARTIR D'UNE MACRO EXCEL [ par bfiguig ] bonjour,voila, y - a - t - il un moyen pour pouvoir ouvrir une fenetre dos à partir d'une macro excel et executer un script ensuite recuperer le resul Barre pour deplacé la fenetre qui remplace celle de windows [ par ultimeval ] rebonsoir ! Voila j'ai un nouveau soucis c'est que j'ai fait ma propre image de fond et j'ai inclu la barre en haut ^^niveau design baa j'aime bien et compatiblitie vista [ par aurel16 ] bonjour, J'ai developpé une application compatible avec vista. Elle s'éxécute très bien, mais je dois obligatoirement la lancer en mode administrateur sendmesage Postmessage [ par POURMONET ] Bonjour,ça coince. Je dois être un peu neuneu, mais ce bout de code ne fonctionne pas.j'ai une application qui tourne, elle s'appelle "Identification" fenetre flottante [ par bubule636 ] bonjour a tous,Quelqu'un saurait il comment faire pour ajouter une fenetre flottante qui s'en vas automatiquement lorsque l'on clique sur une autre zo Problème avec FlashWindow [ par Systech_Systems ] Bonjour, Je dévellope un bureau sécurisé, qui sert à bloquer certaines fenêtre afin qu'elle ne puisse être vu par d'autre utilisateur que le concerné. fenetre se ferme seule [ par mohamed222222 ] Bonjour,Dans mon application que je suis entrain de développer quand je clique sur un bouton qui fait un traitement la fenetre se ferme . Je ne compre fenetre sans fermeture ni agrandire ni miniature [ par miche19000 ] Bonjour , je voudrais cree une fenetre en vb2005 mais qui ne pocede pas de icon d'agrandisement, ni de ferneture ni minimisation le cas  d'agrandiseme


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.