Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Merci d'avance pour votre aide.
Bonjour Frédéric;
Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des
fenêtres associées comme le demande HD.
MP
"Frédéric Sigonneau" <frédéric.sigonneau@ouanamou.fr> a écrit dans le message de
news:407D95F1.40507@ouanamou.fr...
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs()
Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
Workbooks.Add
For Each objProcess In colProcesses
i = i + 1
Cells(i, "a").Value = objProcess.Name
Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec
Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Merci d'avance pour votre aide.
Frédéric Sigonneau
Salut Michel,
Tu as raison, je suis un peu HS sur ce coup :) Il y a sans doute une propriété des objets de classe Win32_Process qui permet de contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la manipulation de ces objets à vrai dire et je les trouve intéressants, mais je suis encore en phase d'apprentissage.. A l'occasion, je transmettrai une réponse + complète.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Merci d'avance pour votre aide.
Salut Michel,
Tu as raison, je suis un peu HS sur ce coup :)
Il y a sans doute une propriété des objets de classe Win32_Process qui permet de
contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est
visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la
manipulation de ces objets à vrai dire et je les trouve intéressants, mais je
suis encore en phase d'apprentissage..
A l'occasion, je transmettrai une réponse + complète.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric;
Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des
fenêtres associées comme le demande HD.
MP
"Frédéric Sigonneau" <frédéric.sigonneau@ouanamou.fr> a écrit dans le message de
news:407D95F1.40507@ouanamou.fr...
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs()
Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
Workbooks.Add
For Each objProcess In colProcesses
i = i + 1
Cells(i, "a").Value = objProcess.Name
Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec
Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Tu as raison, je suis un peu HS sur ce coup :) Il y a sans doute une propriété des objets de classe Win32_Process qui permet de contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la manipulation de ces objets à vrai dire et je les trouve intéressants, mais je suis encore en phase d'apprentissage.. A l'occasion, je transmettrai une réponse + complète.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Merci d'avance pour votre aide.
Frédéric Sigonneau
Salut Michel,
Tu as raison, je suis un peu HS sur ce coup :) Il y a peut-être une propriété des objets de classe Win32_Process qui permet de contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la manipulation de ces objets à vrai dire et je les trouve intéressants, mais je suis encore en phase d'apprentissage... A l'occasion, je transmettrai une réponse + adaptée.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des
fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Merci d'avance pour votre aide.
Salut Michel,
Tu as raison, je suis un peu HS sur ce coup :)
Il y a peut-être une propriété des objets de classe Win32_Process qui permet de
contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est
visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la
manipulation de ces objets à vrai dire et je les trouve intéressants, mais je
suis encore en phase d'apprentissage...
A l'occasion, je transmettrai une réponse + adaptée.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric;
Cette procédure retourne la liste des process actifs, mais ne donne pas le
nom des
fenêtres associées comme le demande HD.
MP
"Frédéric Sigonneau" <frédéric.sigonneau@ouanamou.fr> a écrit dans le message de
news:407D95F1.40507@ouanamou.fr...
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs()
Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
Workbooks.Add
For Each objProcess In colProcesses
i = i + 1
Cells(i, "a").Value = objProcess.Name
Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec
Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Tu as raison, je suis un peu HS sur ce coup :) Il y a peut-être une propriété des objets de classe Win32_Process qui permet de contrôler si un processus est visible ou non et le nom de sa fenêtre s'il est visible, mais je n'ai pas trouvé pour l'instant. Je découvre un peu la manipulation de ces objets à vrai dire et je les trouve intéressants, mais je suis encore en phase d'apprentissage... A l'occasion, je transmettrai une réponse + adaptée.
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Michel Pierron a écrit:
Bonjour Frédéric; Cette procédure retourne la liste des process actifs, mais ne donne pas le nom des
fenêtres associées comme le demande HD. MP
"Frédéric Sigonneau" <frédé a écrit dans le message de news:
Bonsoir,
Une solution qui ne dépend pas, en principe, de ta version d'Excel :
Sub ProcessusActifs() Dim strComputer, objWMIServices, colProcesses, objProcess
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") Workbooks.Add For Each objProcess In colProcesses i = i + 1 Cells(i, "a").Value = objProcess.Name Next
End Sub
Par contre, dépend de ta version de Windows. Les scripts WMI sont 'de base' avec Windows 2000, XP, 2003. Pour en disposer avec Windows 98 et NT 4 :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
HD a écrit:
Bonjour,
Comment puis-je, en VBA, obtenir la liste des fenêtres Windows ouvertes?
Ne serait-il pas pertinent de charger la librairie : Microsoft Forms 2.0 Object Library
Cette référence est bien activée... d'ailleurs si elle ne l'avait pas été le message d'erreur aurait été tout autre... -- @+ HD
Michel Pierron
Bonjour HD; Pour Excel97: Ajouter en tête du module: Private Declare Function GetCurrentVbaProject Lib "vba332.dll" _ Alias "EbGetExecutingProj" (hProject As Long) As Long Private Declare Function GetFuncID Lib "vba332.dll" Alias _ "TipGetFunctionId" (ByVal hProject As Long, ByVal strFunctionName _ As String, ByRef strFunctionID As String) As Long Private Declare Function GetAddr Lib "vba332.dll" Alias _ "TipGetLpfnOfFunctionId" (ByVal hProject As Long, ByVal strFunctionID _ As String, ByRef lpfnAddressOf As Long) As Long
Ajouter la fonction: '* AddressOf operator replacement for Office97 VBA '* Authors: Ken Getz and Michael Kaplan Function AddrOf(CallbackFunctionName As String) As Long Dim aResult As Long, CurrentVBProject As Long, strFunctionID As String Dim AddressOfFunction As Long, UnicodeFunctionName As String '* convert the name of the function to Unicode system UnicodeFunctionName = StrConv(CallbackFunctionName, vbUnicode) '* if the current VBProjects exists... If Not GetCurrentVbaProject(CurrentVBProject) = 0 Then '* ...get the function ID of the callback function, based on its '* unicode-converted name, in order to ensure that it exists aResult = GetFuncID(hProject:=CurrentVBProject, _ strFunctionName:=UnicodeFunctionName, strFunctionID:=strFunctionID) '* if the function exists indeed ... If aResult = 0 Then ' *...get a pointer to the callback function based on '* the strFunctionID argument of the GetFuncID function aResult = GetAddr(hProject:=CurrentVBProject, _ strFunctionID:=strFunctionID, lpfnAddressOf:dressOfFunction) '* if we've got the pointer pass it to the result of the function If aResult = 0 Then AddrOf = AddressOfFunction End If End If End Function
Remplacer dans Sub WinList(): EnumWindows AddressOf EnumWindowsProc, 0 Par EnumWindows AddrOf("EnumWindowsProc"), 0
MP
"HD" a écrit dans le message de news:c5o5mt$2c85$
AddressOf est inconnu dans xl97.
Je suis justement en Excel 97... -- @+ HD
Bonjour HD;
Pour Excel97:
Ajouter en tête du module:
Private Declare Function GetCurrentVbaProject Lib "vba332.dll" _
Alias "EbGetExecutingProj" (hProject As Long) As Long
Private Declare Function GetFuncID Lib "vba332.dll" Alias _
"TipGetFunctionId" (ByVal hProject As Long, ByVal strFunctionName _
As String, ByRef strFunctionID As String) As Long
Private Declare Function GetAddr Lib "vba332.dll" Alias _
"TipGetLpfnOfFunctionId" (ByVal hProject As Long, ByVal strFunctionID _
As String, ByRef lpfnAddressOf As Long) As Long
Ajouter la fonction:
'* AddressOf operator replacement for Office97 VBA
'* Authors: Ken Getz and Michael Kaplan
Function AddrOf(CallbackFunctionName As String) As Long
Dim aResult As Long, CurrentVBProject As Long, strFunctionID As String
Dim AddressOfFunction As Long, UnicodeFunctionName As String
'* convert the name of the function to Unicode system
UnicodeFunctionName = StrConv(CallbackFunctionName, vbUnicode)
'* if the current VBProjects exists...
If Not GetCurrentVbaProject(CurrentVBProject) = 0 Then
'* ...get the function ID of the callback function, based on its
'* unicode-converted name, in order to ensure that it exists
aResult = GetFuncID(hProject:=CurrentVBProject, _
strFunctionName:=UnicodeFunctionName, strFunctionID:=strFunctionID)
'* if the function exists indeed ...
If aResult = 0 Then
' *...get a pointer to the callback function based on
'* the strFunctionID argument of the GetFuncID function
aResult = GetAddr(hProject:=CurrentVBProject, _
strFunctionID:=strFunctionID, lpfnAddressOf:dressOfFunction)
'* if we've got the pointer pass it to the result of the function
If aResult = 0 Then AddrOf = AddressOfFunction
End If
End If
End Function
Remplacer dans Sub WinList():
EnumWindows AddressOf EnumWindowsProc, 0
Par
EnumWindows AddrOf("EnumWindowsProc"), 0
MP
"HD" <hd@anti.spam.fr> a écrit dans le message de
news:c5o5mt$2c85$1@biggoron.nerim.net...
Bonjour HD; Pour Excel97: Ajouter en tête du module: Private Declare Function GetCurrentVbaProject Lib "vba332.dll" _ Alias "EbGetExecutingProj" (hProject As Long) As Long Private Declare Function GetFuncID Lib "vba332.dll" Alias _ "TipGetFunctionId" (ByVal hProject As Long, ByVal strFunctionName _ As String, ByRef strFunctionID As String) As Long Private Declare Function GetAddr Lib "vba332.dll" Alias _ "TipGetLpfnOfFunctionId" (ByVal hProject As Long, ByVal strFunctionID _ As String, ByRef lpfnAddressOf As Long) As Long
Ajouter la fonction: '* AddressOf operator replacement for Office97 VBA '* Authors: Ken Getz and Michael Kaplan Function AddrOf(CallbackFunctionName As String) As Long Dim aResult As Long, CurrentVBProject As Long, strFunctionID As String Dim AddressOfFunction As Long, UnicodeFunctionName As String '* convert the name of the function to Unicode system UnicodeFunctionName = StrConv(CallbackFunctionName, vbUnicode) '* if the current VBProjects exists... If Not GetCurrentVbaProject(CurrentVBProject) = 0 Then '* ...get the function ID of the callback function, based on its '* unicode-converted name, in order to ensure that it exists aResult = GetFuncID(hProject:=CurrentVBProject, _ strFunctionName:=UnicodeFunctionName, strFunctionID:=strFunctionID) '* if the function exists indeed ... If aResult = 0 Then ' *...get a pointer to the callback function based on '* the strFunctionID argument of the GetFuncID function aResult = GetAddr(hProject:=CurrentVBProject, _ strFunctionID:=strFunctionID, lpfnAddressOf:dressOfFunction) '* if we've got the pointer pass it to the result of the function If aResult = 0 Then AddrOf = AddressOfFunction End If End If End Function
Remplacer dans Sub WinList(): EnumWindows AddressOf EnumWindowsProc, 0 Par EnumWindows AddrOf("EnumWindowsProc"), 0
MP
"HD" a écrit dans le message de news:c5o5mt$2c85$
AddressOf est inconnu dans xl97.
Je suis justement en Excel 97... -- @+ HD
HD
Merci Michel !!! ça fonctionne du tonnerre !!!
Je ne connaissais pas ces fenêtres invisibles... quel est l'intérêt de faire des fenêtres invisibles? Et peut on les rendre visible par curioité?
Merci.
-- @+ HD
Merci Michel !!! ça fonctionne du tonnerre !!!
Je ne connaissais pas ces fenêtres invisibles... quel est l'intérêt de faire
des fenêtres invisibles? Et peut on les rendre visible par curioité?
Et comment peut on mettre le focus sur une fenêtre dont on connait le nom? -- @+ HD
Michel Pierron
Re HD; Pour la question 1: Oui, c'est possible mais à manier avec précaution car certaines fenêtres masquées ne peuvent volontairement être affichées. L'intérêt par exemple, ce sont les fenêtres placées dans le Systray en bas à droite de l'écran. Je t'ai envoyé un fichier exemple en bal perso. Pour la question 2: Il te faut retrouver d'abord le handle de la fenêtre hWnd = FindWindow(vbNullString, "Ici le titre de la fenêtre") Déclarer la fonction suivante en tête de module Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long et utiliser l'instruction: BringWindowToTop hWnd Ou en une seule instruction: BringWindowToTop FindWindow(vbNullString, "Ici le titre de la fenêtre")
MP
"HD" a écrit dans le message de news:
Et comment peut on mettre le focus sur une fenêtre dont on connait le nom? -- @+ HD
Re HD;
Pour la question 1:
Oui, c'est possible mais à manier avec précaution car certaines fenêtres masquées
ne peuvent volontairement être affichées.
L'intérêt par exemple, ce sont les fenêtres placées dans le Systray en bas à
droite de l'écran.
Je t'ai envoyé un fichier exemple en bal perso.
Pour la question 2:
Il te faut retrouver d'abord le handle de la fenêtre
hWnd = FindWindow(vbNullString, "Ici le titre de la fenêtre")
Déclarer la fonction suivante en tête de module
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As
Long
et utiliser l'instruction:
BringWindowToTop hWnd
Ou en une seule instruction:
BringWindowToTop FindWindow(vbNullString, "Ici le titre de la fenêtre")
MP
"HD" <hd@anti.spam.fr> a écrit dans le message de
news:eWXhau5IEHA.2924@TK2MSFTNGP09.phx.gbl...
Et comment peut on mettre le focus sur une fenêtre dont on connait le nom?
--
@+
HD
Re HD; Pour la question 1: Oui, c'est possible mais à manier avec précaution car certaines fenêtres masquées ne peuvent volontairement être affichées. L'intérêt par exemple, ce sont les fenêtres placées dans le Systray en bas à droite de l'écran. Je t'ai envoyé un fichier exemple en bal perso. Pour la question 2: Il te faut retrouver d'abord le handle de la fenêtre hWnd = FindWindow(vbNullString, "Ici le titre de la fenêtre") Déclarer la fonction suivante en tête de module Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long et utiliser l'instruction: BringWindowToTop hWnd Ou en une seule instruction: BringWindowToTop FindWindow(vbNullString, "Ici le titre de la fenêtre")
MP
"HD" a écrit dans le message de news:
Et comment peut on mettre le focus sur une fenêtre dont on connait le nom? -- @+ HD
HD
BringWindowToTop FindWindow(vbNullString, "Ici le titre de la fenêtre")
Le focus apparaît et disparait aussi tôt... -- @+ HD
BringWindowToTop FindWindow(vbNullString, "Ici le titre de la
fenêtre")
Le focus apparaît et disparait aussi tôt...
--
@+
HD