scharly3
Messages postés88Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention 9 juillet 2009
-
20 juil. 2007 à 20:59
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
23 juil. 2007 à 14:41
Bonjour,
Je suppose ce sujet moulte foi evoqué dans le forum mais aprés plusieur heure de recherche code source ... je vais osé la question :D
Alors voici mon code :
Public Class Form1
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'API de fermeture de Process
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long 'Ouverture de Process
Dim IDProg As Integer
Dim condition As Integer
Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bouton.Click
Dim hProcess, Termine&
If condition = 1 Then
IDProg = Shell("explorer http://www.google.fr")
condition = 2
Else
hProcess = OpenProcess(1, False, IDProg)
Termine& = TerminateProcess(hProcess, 4)
condition = 1
End If
End Sub
Au niveau des condition , tous marche comme je le veux , au premié clique , ma page est ouverte , au deuxiéme rien ne ce passe , au troisiéme une seconde pas s'ouvre ... j'en conclu que le probléme est a ce niveau hProcess = OpenProcess(1, False, IDProg)
Termine& = TerminateProcess(hProcess, 4)
le but étant de fermé la page précédement ouverte voili voilou ...
Merci de votre aide
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 21 juil. 2007 à 07:54
salut,
deux choses :
1/ tu es en DotNet, les types Long dans les fonctions d'api sont à remplacer par Integer.
2/ ton framework t'offre 2 belles fonctions à la place de ces api :
System.Diagnostics.Process.Kill
System.Diagnostics.Process.GetProcessById
la première remplace TerminateProcess, la seconde OpenProcess
scharly3
Messages postés88Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention 9 juillet 2009 21 juil. 2007 à 10:08
Hum je sent que le passage vers le .net va etre difficil:
J'ai donc décidé d'utilisé tes instruction apré quelque renseignement j'ai cru comprendre que Process me permetté de récupé la liste des processus en fonctionnement et aprés faire monprocessus.kill pour l'arreté , mais en pratique je ne voi pas du tous comment codé ca ? un petit coup de main ne serrait pas de refu :D Merci
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 21 juil. 2007 à 10:28
Désolé mais je ne suis qu'en vb6
mais je suppose que la méthode Kill accèpte un paramètre style :
System.Diagnostics.Process.Kill "nom_processus" OU
System.Diagnostics.Process.Kill "chemin\nom_executable"