|
Re: Terminer un processus Windows |
|
---|---|---|
Stagiaire WDF
Inscrit:
01/06/2004 17:15 Post(s): 21
|
Regarde ceci :
http://old.wdforge.org/modules/mydownloads/singlefile.php?cid=1&lid=71 Tu trouvera dans mon projet la fonction API FindWindowA si mes souvenir sont bon... cest hwndWinamp sera le handle du processus hwndWinamp est un entier = API("user32.dll","FindWindowA","Class","Nom de la fenetre") Si le nom de la fenetre change alors met Null on travaillera que sur la class ex : hwndWinamp est un entier = API("user32.dll","FindWindowA","Winamp v1.x",Null) Pour récupérer la class, la seule méthode que jai trouvé c'est d'utiliser une application de je sais pas qui :p que j'ai trouvé je ne sais comment ! => Télécharger Listeur de fenetre 1.0
Contribution le : 10/06/2004 12:53
|
|
|
Re: Terminer un processus Windows |
|
---|---|---|
Anonyme
|
Contribution le : 11/06/2004 11:59
|
|
|
Re: Terminer un processus Windows |
|
---|---|---|
Stagiaire WDF
Inscrit:
03/03/2004 11:09 Post(s): 39
|
L'appli se présente comme une fenetre ou tu peut appliquer le changement de priorité du processus en sélectionnant celui-ci dans une combo.
j'ai modifié la fct qui change la priorité du process afin qu'elle le KILL. hCurrentProcess est récupéré a l'aide de la fonction suivante : PROCEDURE nHandleProcessParApplication(sNomApplication) // Variables locales nIndice est un entier // Indice de parcours // Réinitialisation du système de gestion des erreurs ReinitialiseErreur() // Parcours de la liste des process POUR nIndice = 1 A (gnNbProcess) // On compare le nom du process avec le nom de l'application recherchée SI sNomApplication ~= sNomProcess(gsTableauProcess[nIndice]) ALORS // On renvoie le handle du process RENVOYER nHandleProcessParID(gsTableauProcess[nIndice]) FIN FIN // Par défaut, le process n'est pas trouvé RENVOYER 0 Où sNomApplication est le nom du processus sélectionné dans la combo(ici l'appli WDAPI.exe que je lance comme test) Voici Ma fonction : PROCEDURE ChangerPriorite(nPriorite,nHandleProcess=0) // Variables locales hCurrentProcess est un entier sur 4 octets // Handle du processus dont on veut modifier la priorité // Réinitialisation du système de gestion des erreurs gsDerniereErreur = "" // Sous Windows 95, 98 et ME, certaines constantes ne sont pas disponibles SI nPriorite=cPrioriteDessousNormale OU nPriorite=cPrioriteDessusNormale ALORS // On affecte à "Normal" sous 95, 98 et ME SI SysVersionWindows()~="95" OU SysVersionWindows()~="98" OU SysVersionWindows()~="ME" ALORS nPriorite = cPrioriteNormale FIN FIN //Récupère le handle du process SI nHandleProcess= 0 ALORS hCurrentProcess = API("Kernel32","GetCurrentProcess") SINON hCurrentProcess = nHandleProcess FIN // Modification effective de la priorité //SI API("Kernel32","SetPriorityClass",hCurrentProcess, nPriorite)=0 alors // info("Impossible de modifier la priorité."+RC+"Code Erreur : "+APi("kernel32","GetLastError")) // RENVOYER Faux //FIN uExitCode est un entier sans signe=4 // Fin du processus SI API("Kernel32","TerminateProcess",hCurrentProcess, uExitCode)=0 ALORS gsDerniereErreur="Impossible de Terminer le processus."+RC+"Code Erreur : "+API("kernel32","GetLastError") Info(gsDerniereErreur) Info(ErreurApi(API("kernel32","GetLastError"))) RENVOYER Faux FIN RENVOYER Vrai Voili voilou. Comme tu peux le voir la variable UExitCode a 4 en valeur. et l'erreur retourné a comme code 5. J'ai trouvé une fonction permettant de formater le texte correspondant au type de l'erreur sur le site http://centrewd.free.fr/ Mais le texte généré est "L'opération est réussie" :( snifff !!!
Contribution le : 11/06/2004 13:32
|
|
_________________
Cordialement. ----------- Peggy ...... |
||
|
Re: Terminer un processus Windows |
|
---|---|---|
Utilisateur WDF
Inscrit:
09/06/2004 09:31 Post(s): 78
|
se serait pa OpenProcessA ??
Contribution le : 14/06/2004 12:00
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.