(vba) accès au gestionnaire de tâches ...

Le
j-pascal
Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours d'exécution ?

Je crains que cette question soit farfelue, mais bon Excel et ses
mystères

Merci ;-)

Cordialement,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #5100491
Bonsoir,

Lister les process dans excel:

http://cjoint.com/?mnaD3B7B0f

'''''Code uf

Private Sub CommandButton1_Click()
KillProcess ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()

On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" & ProcessName
& "'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

''''ThisWorkBook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call delTest
End Sub

Private Sub Workbook_Open()

Dim monmenu As CommandBarControl, monoption As CommandBarPopup
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set monoption = _
monmenu.Controls.Add(msoControlPopup, , , , True)


With monoption
.Caption = "ListeP"
.OnAction = "MySub"
End With

End Sub

'''''Module1
Sub MySub()
UserForm1.Show
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub

'lSteph



Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours d'exécution ?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP


LSteph
Le #5100471
;o) sinon plus simplement

Sub taskM()
Shell "taskmgr.exe"
End Sub

'lSteph

Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours d'exécution ?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP


j-pascal
Le #5100321
Bonjour Stéphane,

Merci !

J'ai lu ton code jusqu'au bout, mais inutile de te dire que je n'ai pas
compris 2 lignes d'affilées ...
Je commence à comprendre pourquoi je n'ai pas eu de réponse à une question
du même genre posée ces derniers jours ; les autres contributeurs ont
certainement voulu me ménager ... ;-)
Je n'en demeure pas moins très impressionné par ta présente réponse (et je
pense même que je serai loin d'être le seul sur le forum ...) !

JP

"LSteph" %23%
Bonsoir,

Lister les process dans excel:

http://cjoint.com/?mnaD3B7B0f

'''''Code uf

Private Sub CommandButton1_Click()
KillProcess ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()

On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" & ProcessName &
"'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

''''ThisWorkBook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call delTest
End Sub

Private Sub Workbook_Open()

Dim monmenu As CommandBarControl, monoption As CommandBarPopup
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set monoption = _
monmenu.Controls.Add(msoControlPopup, , , , True)


With monoption
.Caption = "ListeP"
.OnAction = "MySub"
End With

End Sub

'''''Module1
Sub MySub()
UserForm1.Show
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub

'lSteph



Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours d'exécution
?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP




j-pascal
Le #5100271
Re,

J'ai relu ...

Le mot "KillProcess" me fait un peu peur ! Je ne veux pas arrêter de
processus !
Si c'est plus simple, est-il possible de lister les processus dans une
Feuille (ie) et de comparer "toto.exe" à cette liste (pour voir s'il s'y
trouve) ?

Je commence à y croire ;-)

@+ ?

JP

PS : quand je dis "plus simple" c'est pour éviter le UF, le UF_initialize,
les "Boutons", le "_BeforeClose", etc. Comme il semble possible de récupérer
tous les processus en cours, j'imagine qu'on peut les copier dans une
Feuille ??
"LSteph" %23%
Bonsoir,

Lister les process dans excel:

http://cjoint.com/?mnaD3B7B0f

'''''Code uf

Private Sub CommandButton1_Click()
KillProcess ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()

On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" & ProcessName &
"'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

''''ThisWorkBook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call delTest
End Sub

Private Sub Workbook_Open()

Dim monmenu As CommandBarControl, monoption As CommandBarPopup
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set monoption = _
monmenu.Controls.Add(msoControlPopup, , , , True)


With monoption
.Caption = "ListeP"
.OnAction = "MySub"
End With

End Sub

'''''Module1
Sub MySub()
UserForm1.Show
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub

'lSteph



Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours d'exécution
?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP




LSteph
Le #5100251
Si c'est juste pour afficher le GT
Regarde mon autre proposition..

;-))

Bonjour Stéphane,

Merci !

J'ai lu ton code jusqu'au bout, mais inutile de te dire que je n'ai pas
compris 2 lignes d'affilées ...
Je commence à comprendre pourquoi je n'ai pas eu de réponse à une
question du même genre posée ces derniers jours ; les autres
contributeurs ont certainement voulu me ménager ... ;-)
Je n'en demeure pas moins très impressionné par ta présente réponse (et
je pense même que je serai loin d'être le seul sur le forum ...) !

JP

"LSteph" %23%
Bonsoir,

Lister les process dans excel:

http://cjoint.com/?mnaD3B7B0f

'''''Code uf

Private Sub CommandButton1_Click()
KillProcess ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()

On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" &
ProcessName & "'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

''''ThisWorkBook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call delTest
End Sub

Private Sub Workbook_Open()

Dim monmenu As CommandBarControl, monoption As CommandBarPopup
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set monoption = _
monmenu.Controls.Add(msoControlPopup, , , , True)


With monoption
.Caption = "ListeP"
.OnAction = "MySub"
End With

End Sub

'''''Module1
Sub MySub()
UserForm1.Show
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub

'lSteph



Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une
macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours
d'exécution ?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP







LSteph
Le #5100231
;-)
c'est précisément ce à quoi sert ce joujou mais qui peut le plus peut le
moins
en tout cas c'est bien la preuve que tu lis bien le code..
..et je n'en ai jamais douté :)))


Re,

J'ai relu ...

Le mot "KillProcess" me fait un peu peur ! Je ne veux pas arrêter de
processus !
Si c'est plus simple, est-il possible de lister les processus dans une
Feuille (ie) et de comparer "toto.exe" à cette liste (pour voir s'il s'y
trouve) ?

Je commence à y croire ;-)

@+ ?

JP

PS : quand je dis "plus simple" c'est pour éviter le UF, le
UF_initialize, les "Boutons", le "_BeforeClose", etc. Comme il semble
possible de récupérer tous les processus en cours, j'imagine qu'on peut
les copier dans une Feuille ??
"LSteph" %23%
Bonsoir,

Lister les process dans excel:

http://cjoint.com/?mnaD3B7B0f

'''''Code uf

Private Sub CommandButton1_Click()
KillProcess ComboBox1
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()

On Error GoTo UIniError

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process"
For Each myp In svc.execquery(myQuery)
ListBox1.AddItem myp.Name & " = " & myp.ExecutablePath
ComboBox1.AddItem myp.Name
Next
Set svc = Nothing
Exit Sub

UIniError:
MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
Err.Clear
End Sub

Public Function KillProcess(ByVal ProcessName As String) As Boolean

Set svc = GetObject("winmgmts:rootcimv2")
myQuery = "select * from win32_process where name='" &
ProcessName & "'"
For Each myp In svc.execquery(myQuery)
myp.Terminate
Next
Set svc = Nothing
End Function

''''ThisWorkBook
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call delTest
End Sub

Private Sub Workbook_Open()

Dim monmenu As CommandBarControl, monoption As CommandBarPopup
Set monmenu = _
Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With monmenu
.Caption = "&Qualité"
End With
Set monoption = _
monmenu.Controls.Add(msoControlPopup, , , , True)


With monoption
.Caption = "ListeP"
.OnAction = "MySub"
End With

End Sub

'''''Module1
Sub MySub()
UserForm1.Show
End Sub
Sub delTest()
Application.CommandBars(1).Controls("&Qualité").Delete
End Sub

'lSteph



Bonsoir,

Est-il possible d'ouvrir le gestionnaire de tâches à partir d'une
macro ?

Si oui, peut-on vérifier le lancement d'un programme en cours
d'exécution ?

Je crains que cette question soit farfelue, mais bon ... Excel et ses
mystères ...

Merci ;-)

Cordialement,

JP







Publicité
Poster une réponse
Anonyme