OVH Cloud OVH Cloud

liste du gestionnaire des tâches

15 réponses
Avatar
isabelle
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle

10 réponses

1 2
Avatar
Starwing
Je suis content de pouvoir enfin me rendre utile pour toi,

Sub gestionnaire()
Shell "taskmgr.exe", vbNormalFocus
End Sub

Starwing
-----Message d'origine-----
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste
du gestionnaire

des tâches
et d'activer la fenêtre d'un des logiciels en cours
d'exécution.


merci ! par avance

isabelle
.



Avatar
isabelle
ou encore,
comment en vba, basculer vers la fenêtre Internet Explorer ?

isabelle


bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle


Avatar
isabelle
merci ! Starwing, c'est bien cette objet que je veux créer.
sait tu comment récuper la collection item(nom) de cette objet et
basculer vers un item de cette colection en vba ?

isabelle




Je suis content de pouvoir enfin me rendre utile pour toi,

Sub gestionnaire()
Shell "taskmgr.exe", vbNormalFocus
End Sub

Starwing
-----Message d'origine-----
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste
du gestionnaire

des tâches
et d'activer la fenêtre d'un des logiciels en cours
d'exécution.


merci ! par avance

isabelle
.





Avatar
Denis Michon
Bonjour Isabelle,

Il y a un petit utilitaire gratuit disponible à cette adresse :

http://www.pcworld.com/downloads/file_download/0,fid,6102,fileidx,1,00.asp


Le nom de l'utilitaire :
PrcView (Process Viewer) v3.6.2.1

Tout ce passe en Dos, tu as un fichier d'aide que tu peux consulter pour comprendre et exécuter les commandes. Cette
utilitaire traite essentiellement des fichiers (exécutables) du gestionnaire de tâches.


Salutations!



"isabelle" a écrit dans le message de news:
merci ! Starwing, c'est bien cette objet que je veux créer.
sait tu comment récuper la collection item(nom) de cette objet et
basculer vers un item de cette colection en vba ?

isabelle




Je suis content de pouvoir enfin me rendre utile pour toi,

Sub gestionnaire()
Shell "taskmgr.exe", vbNormalFocus
End Sub

Starwing
-----Message d'origine-----
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste
du gestionnaire

des tâches
et d'activer la fenêtre d'un des logiciels en cours
d'exécution.


merci ! par avance

isabelle
.





Avatar
Frédéric Sigonneau
Bonsoir Isabelle,

Une salade d'API en guise de solution :

'======================== Private Declare Function GetWindow Lib "user32" _
(ByVal HWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetParent Lib "user32" (ByVal HWnd As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal HWnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" _
Alias "GetWindowTextA" (ByVal HWnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
Private Declare Function ShowWindow Lib "user32" _
(ByVal HWnd As Long, ByVal nCmdShow As Long) As Long

Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Const SW_SHOWNORMAL = 1


Sub ActiveIExplorer()
Dim CurrWnd&, Length&, i&, twnd&
Dim TaskName$, IEWindow$

i = 1
twnd = FindWindow("Shell_traywnd", vbNullString)
CurrWnd = GetWindow(twnd, GW_HWNDFIRST)
While CurrWnd <> 0
Length = GetWindowTextLength(CurrWnd)
TaskName = Space$(Length + 1)
Length = GetWindowText(CurrWnd, TaskName, Length + 1)
TaskName = Left$(TaskName, Len(TaskName) - 1)
If TaskName Like "*Microsoft Internet Explorer*" Then _
IEWindow = TaskName
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
DoEvents
Wend

ShowWindow FindWindow(vbNullString, IEWindow), SW_SHOWNORMAL

End Sub
'========================
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 !


ou encore,
comment en vba, basculer vers la fenêtre Internet Explorer ?

isabelle


bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle




Avatar
Alain CROS
Bonjour.
Ceci a l'air de fonctionner.

Sub ActiveIE()
Dim MonIE As Object
On Error Resume Next
Set MonIE = GetObject(, "InternetExplorer.Application")
On Error GoTo 0
If Not MonIE Is Nothing Then
AppActivate MonIE.document.Title
Else
Set MonIE = CreateObject("InternetExplorer.Application")
MonIE.Visible = True
End If
Set MonIE = Nothing
End Sub

Alain CROS.

"isabelle" a écrit dans le message de news:
ou encore,
comment en vba, basculer vers la fenêtre Internet Explorer ?

isabelle


bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle




Avatar
Michel Pierron
Bonsoir Isabelle;
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First"
_
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" _
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _
"CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As
Long

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260
End Type

Sub ListeDesProcess()
Dim hSnapshot As Long
hSnapshot = CreateToolhelpSnapshot(2&, 0&)
If hSnapshot = 0 Then Exit Sub
Dim uProcess As PROCESSENTRY32, r As Long, i As Integer
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapshot, uProcess)
Do While r
i = i + 1
Cells(i, 1) = uProcess.szexeFile
r = ProcessNext(hSnapshot, uProcess)
Loop
End Sub

"isabelle" a écrit dans le message de
news:
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle


Avatar
isabelle
bonjour Alain,

la ligne suivant renvoie Nothing même s'il y a un process IE en cour
d'execution
Set MonIE = GetObject(, "InternetExplorer.Application")

par contre en modifiant comme suit ça fonctionne

Application.WindowState = xlMaximized
pcc = ("Microsoft Internet Explorer")
AppActivate (pcc)

merci beaucoup de t'avoir penché sur mon problème,

isabelle


Bonjour.
Ceci a l'air de fonctionner.

Sub ActiveIE()
Dim MonIE As Object
On Error Resume Next
Set MonIE = GetObject(, "InternetExplorer.Application")
On Error GoTo 0
If Not MonIE Is Nothing Then
AppActivate MonIE.document.Title
Else
Set MonIE = CreateObject("InternetExplorer.Application")
MonIE.Visible = True
End If
Set MonIE = Nothing
End Sub

Alain CROS.

"isabelle" a écrit dans le message de news:
ou encore,
comment en vba, basculer vers la fenêtre Internet Explorer ?

isabelle


bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle






Avatar
isabelle
bonjour Michel,

c'est pil poil, exactement ce que je cherchais

merci beaucoup de t'avoir penché sur mon problème,

isabelle


Bonsoir Isabelle;
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First"
_
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" _
(ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias _
"CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As
Long

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szexeFile As String * 260
End Type

Sub ListeDesProcess()
Dim hSnapshot As Long
hSnapshot = CreateToolhelpSnapshot(2&, 0&)
If hSnapshot = 0 Then Exit Sub
Dim uProcess As PROCESSENTRY32, r As Long, i As Integer
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapshot, uProcess)
Do While r
i = i + 1
Cells(i, 1) = uProcess.szexeFile
r = ProcessNext(hSnapshot, uProcess)
Loop
End Sub

"isabelle" a écrit dans le message de
news:
bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle




Avatar
isabelle
un gros merci Frédéric, ça fonctionne parfaitement.
dit moi, je trouve que c'est en effet une grosse salade ;-), il y a t'il
un danger à n'utiliser que :
Application.WindowState = xlMaximized
pcc = ("Microsoft Internet Explorer")
AppActivate (pcc)

isabelle



Bonsoir Isabelle,

Une salade d'API en guise de solution :

'======================== > Private Declare Function GetWindow Lib "user32" _
(ByVal HWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetParent Lib "user32" (ByVal HWnd As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal HWnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" _
Alias "GetWindowTextA" (ByVal HWnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
Private Declare Function ShowWindow Lib "user32" _
(ByVal HWnd As Long, ByVal nCmdShow As Long) As Long

Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Const SW_SHOWNORMAL = 1

Sub ActiveIExplorer()
Dim CurrWnd&, Length&, i&, twnd&
Dim TaskName$, IEWindow$

i = 1
twnd = FindWindow("Shell_traywnd", vbNullString)
CurrWnd = GetWindow(twnd, GW_HWNDFIRST)
While CurrWnd <> 0
Length = GetWindowTextLength(CurrWnd)
TaskName = Space$(Length + 1)
Length = GetWindowText(CurrWnd, TaskName, Length + 1)
TaskName = Left$(TaskName, Len(TaskName) - 1)
If TaskName Like "*Microsoft Internet Explorer*" Then _
IEWindow = TaskName
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
DoEvents
Wend

ShowWindow FindWindow(vbNullString, IEWindow), SW_SHOWNORMAL

End Sub
'======================== >
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 !


ou encore,
comment en vba, basculer vers la fenêtre Internet Explorer ?

isabelle


bonjour mpfie(ne)s,

est t'il possible en vba (xl2002) de récupérer la liste du gestionnaire
des tâches
et d'activer la fenêtre d'un des logiciels en cours d'exécution.

merci ! par avance

isabelle






1 2