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 / Exemple :
'===========================================================================================
' 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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.