Sous VB6.0, je veux fermer des applications externes (exe)
qui n'ont pas de fen=EAtre active.
Peut on forcer la fermeture d'une application autrement=20
qu'en envoyant le message WM_CLOSE =E0 ses fen=EAtres.
Si oui, comment ?
Merci de me r=E9pondre
Cordialement.
Jean Saint Jalmes
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ng
Salut,
Oui on peut tuer le process de l'appli mais c'est un peu violent comme méthode :
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" a écrit dans le message de news: 124a601c3f610$57297430$ Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
Salut,
Oui on peut tuer le process de l'appli mais c'est un peu violent comme
méthode :
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" <anonymous@discussions.microsoft.com> a écrit dans le
message de news: 124a601c3f610$57297430$a401280a@phx.gbl...
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe)
qui n'ont pas de fenêtre active.
Peut on forcer la fermeture d'une application autrement
qu'en envoyant le message WM_CLOSE à ses fenêtres.
Si oui, comment ?
Merci de me répondre
Cordialement.
Jean Saint Jalmes
Oui on peut tuer le process de l'appli mais c'est un peu violent comme méthode :
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" a écrit dans le message de news: 124a601c3f610$57297430$ Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
ng
oups le message est parti tout seul :/
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load() Dim lRet As Long, lExitCode As Long, lHandle As Long lRet = Shell("notepad.exe", vbNormalFocus) MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, lRet) Call GetExitCodeProcess(lHandle, lExitCode) Call TerminateProcess(lHandle, lExitCode) Call CloseHandle(lHandle) End Sub
</non testé>
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" a écrit dans le message de news: 124a601c3f610$57297430$ Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
oups le message est parti tout seul :/
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess"
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long,
lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess
As Long, lpExitCode As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As
Long, ByVal uExitCode As Long) As Long
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load()
Dim lRet As Long, lExitCode As Long, lHandle As Long
lRet = Shell("notepad.exe", vbNormalFocus)
MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly
lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, lRet)
Call GetExitCodeProcess(lHandle, lExitCode)
Call TerminateProcess(lHandle, lExitCode)
Call CloseHandle(lHandle)
End Sub
</non testé>
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" <anonymous@discussions.microsoft.com> a écrit dans le
message de news: 124a601c3f610$57297430$a401280a@phx.gbl...
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe)
qui n'ont pas de fenêtre active.
Peut on forcer la fermeture d'une application autrement
qu'en envoyant le message WM_CLOSE à ses fenêtres.
Si oui, comment ?
Merci de me répondre
Cordialement.
Jean Saint Jalmes
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load() Dim lRet As Long, lExitCode As Long, lHandle As Long lRet = Shell("notepad.exe", vbNormalFocus) MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False, lRet) Call GetExitCodeProcess(lHandle, lExitCode) Call TerminateProcess(lHandle, lExitCode) Call CloseHandle(lHandle) End Sub
</non testé>
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" a écrit dans le message de news: 124a601c3f610$57297430$ Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
François Picalausa
Bonjour/soir,
En complément, il y a une solution complète pour tuer un process (avec WM_CLOSE, d'abord et ensuite, si ça n'a pas fonctionné, tuer le process) sur http://msdn.microsoft.com/library/en-us/dnvsm01/html/dt0109.asp et du même auteur, un exemple plus complet: http://www.mvps.org/vb/code/tasklist.zip
"Jean Saint Jalmes" a écrit dans le message de news:124a601c3f610$57297430$
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
Bonjour/soir,
En complément, il y a une solution complète pour tuer un process (avec
WM_CLOSE, d'abord et ensuite, si ça n'a pas fonctionné, tuer le process) sur
http://msdn.microsoft.com/library/en-us/dnvsm01/html/dt0109.asp
et du même auteur, un exemple plus complet:
http://www.mvps.org/vb/code/tasklist.zip
"Jean Saint Jalmes" <anonymous@discussions.microsoft.com> a écrit dans
le message de news:124a601c3f610$57297430$a401280a@phx.gbl
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe)
qui n'ont pas de fenêtre active.
Peut on forcer la fermeture d'une application autrement
qu'en envoyant le message WM_CLOSE à ses fenêtres.
Si oui, comment ?
Merci de me répondre
Cordialement.
Jean Saint Jalmes
En complément, il y a une solution complète pour tuer un process (avec WM_CLOSE, d'abord et ensuite, si ça n'a pas fonctionné, tuer le process) sur http://msdn.microsoft.com/library/en-us/dnvsm01/html/dt0109.asp et du même auteur, un exemple plus complet: http://www.mvps.org/vb/code/tasklist.zip
"Jean Saint Jalmes" a écrit dans le message de news:124a601c3f610$57297430$
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
Jean Saint Jalmes
Merci pour cette réponse. Cependant, la procédure suppose que je connaisse le handle du process à fermer ce qui n'est pas le cas car il n'a pas été lancé par mon appli.
Il y a peut être une API qui permet de lister tous les process en cours ?
-----Message d'origine----- oups le message est parti tout seul :/
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32"
Alias "TerminateProcess"
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess Declare Function GetExitCodeProcess Lib "kernel32" (ByVal
hProcess As Long,
lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32"
(ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId
As Long) As Long
Private Declare Function CloseHandle Lib "kernel32"
(ByVal hObject As Long)
As Long Private Declare Function GetExitCodeProcess
Lib "kernel32" (ByVal hProcess
As Long, lpExitCode As Long) As Long Private Declare Function TerminateProcess Lib "kernel32"
(ByVal hProcess As
Long, ByVal uExitCode As Long) As Long Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load() Dim lRet As Long, lExitCode As Long, lHandle As Long lRet = Shell("notepad.exe", vbNormalFocus) MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False,
lRet)
Call GetExitCodeProcess(lHandle, lExitCode) Call TerminateProcess(lHandle, lExitCode) Call CloseHandle(lHandle) End Sub
</non testé>
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes"
a écrit dans le
message de news: 124a601c3f610$57297430
$
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
.
Merci pour cette réponse.
Cependant, la procédure suppose que je connaisse le handle
du process à fermer ce qui n'est pas le cas car il n'a pas
été lancé par mon appli.
Il y a peut être une API qui permet de lister tous les
process en cours ?
-----Message d'origine-----
oups le message est parti tout seul :/
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32"
Alias "TerminateProcess"
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal
hProcess As Long,
lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32"
(ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId
As Long) As Long
Private Declare Function CloseHandle Lib "kernel32"
(ByVal hObject As Long)
As Long
Private Declare Function GetExitCodeProcess
Lib "kernel32" (ByVal hProcess
As Long, lpExitCode As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32"
(ByVal hProcess As
Long, ByVal uExitCode As Long) As Long
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load()
Dim lRet As Long, lExitCode As Long, lHandle As Long
lRet = Shell("notepad.exe", vbNormalFocus)
MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly
lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False,
lRet)
Call GetExitCodeProcess(lHandle, lExitCode)
Call TerminateProcess(lHandle, lExitCode)
Call CloseHandle(lHandle)
End Sub
</non testé>
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes" <anonymous@discussions.microsoft.com>
a écrit dans le
message de news: 124a601c3f610$57297430
$a401280a@phx.gbl...
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe)
qui n'ont pas de fenêtre active.
Peut on forcer la fermeture d'une application autrement
qu'en envoyant le message WM_CLOSE à ses fenêtres.
Si oui, comment ?
Merci de me répondre
Cordialement.
Jean Saint Jalmes
Merci pour cette réponse. Cependant, la procédure suppose que je connaisse le handle du process à fermer ce qui n'est pas le cas car il n'a pas été lancé par mon appli.
Il y a peut être une API qui permet de lister tous les process en cours ?
-----Message d'origine----- oups le message est parti tout seul :/
Je disais donc, on peux utiliser TerminateProcess :
Declare Function TerminateProcess Lib "kernel32"
Alias "TerminateProcess"
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Le 2ème paramètre est récupérable par GetExitCodeProcess Declare Function GetExitCodeProcess Lib "kernel32" (ByVal
hProcess As Long,
lpExitCode As Long) As Long
On peut alors imaginer un exemple :
<non testé>
Private Declare Function OpenProcess Lib "kernel32"
(ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId
As Long) As Long
Private Declare Function CloseHandle Lib "kernel32"
(ByVal hObject As Long)
As Long Private Declare Function GetExitCodeProcess
Lib "kernel32" (ByVal hProcess
As Long, lpExitCode As Long) As Long Private Declare Function TerminateProcess Lib "kernel32"
(ByVal hProcess As
Long, ByVal uExitCode As Long) As Long Private Const PROCESS_QUERY_INFORMATION = &H400
Private Sub Form_Load() Dim lRet As Long, lExitCode As Long, lHandle As Long lRet = Shell("notepad.exe", vbNormalFocus) MsgBox "Cliquez sur OK pour tuer le process", vbOKOnly lHandle = OpenProcess(PROCESS_QUERY_INFORMATION, False,
lRet)
Call GetExitCodeProcess(lHandle, lExitCode) Call TerminateProcess(lHandle, lExitCode) Call CloseHandle(lHandle) End Sub
</non testé>
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
"Jean Saint Jalmes"
a écrit dans le
message de news: 124a601c3f610$57297430
$
Bonjour,
Sous VB6.0, je veux fermer des applications externes (exe) qui n'ont pas de fenêtre active. Peut on forcer la fermeture d'une application autrement qu'en envoyant le message WM_CLOSE à ses fenêtres. Si oui, comment ?
Merci de me répondre Cordialement. Jean Saint Jalmes
.
François Picalausa
Bonjour/soir,
voir mon post à ce sujet :-) Dans le second exemple, il y a tout ce qu'il faut. Mais pour simplement lister les process, tu as http://support.microsoft.com/default.aspx?scid2986
"Jean Saint Jalmes" a écrit dans le message de news:1261601c3f617$77b11300$
Il y a peut être une API qui permet de lister tous les process en cours ?
Bonjour/soir,
voir mon post à ce sujet :-)
Dans le second exemple, il y a tout ce qu'il faut.
Mais pour simplement lister les process, tu as
http://support.microsoft.com/default.aspx?scid2986
voir mon post à ce sujet :-) Dans le second exemple, il y a tout ce qu'il faut. Mais pour simplement lister les process, tu as http://support.microsoft.com/default.aspx?scid2986