begin process at 2012 02 10 18:39:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > SNIPPET $PROCESS

SNIPPET $PROCESS


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :isopen, com, object, snippet, processus Niveau :Débutant Date de création :18/03/2007 Date de mise à jour :20/04/2007 20:42:31 Vu :3 476

Auteur : wims

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Ce snippet permet de :
-Savoir si oui ou non un processus est ouvert
-Pouvoir fermer le processus

Le code n'est pas de moi même si j'y est bien contribuer, c'est Luckyfranck qui l'a fait, j'ai juste transformé ca en snippet.

Pour l'utiliser : $process()
Propriété : kill, isopen

Exemple :
$process(mirc.exe).isopen ne peux retourné que $true :)
$process(mirc.exe).kill ferme l'application et renvoi $true, $false sinon

Le code utilise les objet Com, ce qui est de loin la chose la moins evidente en mirc.
Le code n'est pas non plus des plus rapides, cela dépendera du nombre de processus ouvert et de leur place.

Source

  • /*
  • Alias très simple pour :
  • -Savoir si tel ou tel processus est actif.
  • -Fermer un processus.
  • Syntaxe: $process(processus)
  • Propriété : isopen kill
  • Exemple: //echo * $process(mirc.exe).isopen
  • Résultat: * $true
  • Pour plus d'aide, concernant l'objet Shell Win32_Process:
  • http://msdn2.microsoft.com/en-us/library/aa394372.aspx
  • */
  • alias process {
  • ; On ouvre l'objet COM
  • .comopen Process WbemScripting.SWbemLocator
  • ; On transfère les données de l'ouverture de l'objet 'Process' dans l'objet 'Win32_Process'
  • ; Il y a création d'un nouvel objet, 'Process' ne sers plus.
  • noop $com(Process,ConnectServer,3, dispatch* Win32_Process)
  • ; On éxécute une requête WQL afin de séléctionner tous les champs (*) de l'objet 'Win32_Process' (pas l'objet COM, l'objet Shell)
  • ; Cette requête nous renvoit la liste
  • ; Le dispatch transfère ces données sur un nouvel objet, 'Win32_Process_Results'
  • noop $com(Win32_Process, ExecQuery,3,string,Select * from Win32_Process,dispatch* Win32_Process_Result)
  • ; On fait une boucle sur la liste
  • var %a = $comval(Win32_Process_Result,0)
  • while (%a) {
  • ; Si le nom du processus est celui que l'on a spécifié :
  • if ($comval(Win32_Process_Result,%a,Name) == $1) {
  • ; On met la variable %t à 1 si on a spécifié $process().open et on arrete la boucle
  • if ($prop == isopen) { var %t 1 | break }
  • ; On met la variable %n a 1 si on a spécifié $process().kill ,on ferme le processus et on arrete la boucle
  • elseif ($prop == kill) { var %n 1 | noop $comval(Win32_Process_Result,%a,Terminate) | break }
  • }
  • ; On décremente %a pour la boucle
  • dec %a
  • }
  • ; On ferme les objets COM
  • .comclose process
  • .comclose win32_process
  • .comclose Win32_Process_Result
  • ; Si %t est à 1, le processus demandé est ouvert, donc on retourne $true, $false sinon.
  • ; Si %n est à 1, le processus demandé a été fermé, donc on retourne $true, $false sinon.
  • return $iif(%t,$true,$iif(%n,$true,$false))
  • }
/*

Alias très simple pour :
-Savoir si tel ou tel processus est actif.
-Fermer un processus.

Syntaxe: $process(processus)
Propriété : isopen kill
Exemple: //echo * $process(mirc.exe).isopen
Résultat: * $true

Pour plus d'aide, concernant l'objet Shell Win32_Process:
http://msdn2.microsoft.com/en-us/library/aa394372.aspx

*/

alias process {

  ; On ouvre l'objet COM

  .comopen Process WbemScripting.SWbemLocator

  ; On transfère les données de l'ouverture de l'objet 'Process' dans l'objet 'Win32_Process'
  ; Il y a création d'un nouvel objet, 'Process' ne sers plus.

  noop $com(Process,ConnectServer,3, dispatch* Win32_Process)

  ; On éxécute une requête WQL afin de séléctionner tous les champs (*) de l'objet 'Win32_Process' (pas l'objet COM, l'objet Shell)
  ; Cette requête nous renvoit la liste
  ; Le dispatch transfère ces données sur un nouvel objet, 'Win32_Process_Results'

  noop $com(Win32_Process, ExecQuery,3,string,Select * from Win32_Process,dispatch* Win32_Process_Result)

  ; On fait une boucle sur la liste
  var %a = $comval(Win32_Process_Result,0) 

  while (%a) {

    ; Si le nom du processus est celui que l'on a spécifié :

    if ($comval(Win32_Process_Result,%a,Name) == $1) {

      ; On met la variable %t à 1 si on a spécifié $process().open et on arrete la boucle 

      if ($prop == isopen) { var %t 1 | break }

      ; On met la variable %n a 1 si on a spécifié $process().kill ,on ferme le processus et on arrete la boucle

      elseif ($prop == kill) { var %n 1 | noop $comval(Win32_Process_Result,%a,Terminate) | break }

    }

    ; On décremente %a pour la boucle

    dec %a 

  }

  ; On ferme les objets COM

  .comclose process 
  .comclose win32_process 
  .comclose Win32_Process_Result 

  ; Si %t est à 1, le processus demandé est ouvert, donc on retourne $true, $false sinon.
  ; Si %n est à 1, le processus demandé a été fermé, donc on retourne $true, $false sinon.

  return $iif(%t,$true,$iif(%n,$true,$false))
}

 Conclusion

Utile si l'on veux savoir si un application est ouverte


 Historique

18 mars 2007 19:13:09 :
manquait le /* du debut des commentaire
20 avril 2007 20:42:31 :
Rajout de la propriété .kill qui permet de fermé le processus

 Sources du même auteur

PACMAN MULTI-JOUEUR EN LIGNE
Source avec Zip SIMULATION D'UNE ROULETTE QUI TOURNE
Source avec Zip Source avec une capture PACMAN ONLINE - 4 JOUEURS
SELPOS - SELECTION ET POSITION !
SINUSOÏDALE

 Sources de la même categorie

Source avec une capture ALIAS POUR TELECHARGER UNE VIDEO SUR YOUTUBE (MISE A JOUR V1... par WorldDMT
ANTI SAJOIN par Maka57
PERMET DE CHERCHER UN HOST par ACoZz
Source avec Zip SIMULATION D'UNE ROULETTE QUI TOURNE par wims
SELPOS - SELECTION ET POSITION ! par wims

 Sources en rapport avec celle ci

ANTI SAJOIN par Maka57

Commentaires et avis

Commentaire de KiNdErMaXi le 21/03/2007 19:51:57

C'est sympa parce que ça montre un peu comment marche les com object

Commentaire de wims le 22/03/2007 17:07:21

Oui, je n'ai jamais vu de source les utilisant ici du moins j'en ai pas souvenir

Commentaire de COOLMAN002 le 23/03/2007 19:26:00

; Si le nom du processus est celui que l'on a spécifié, on met la variable %t à 1 et l'on arrete de la while avec le goto, sinon on continue la boucle.

pourquoi tu n'arrêtes pas la while avec "/break" ?

Des sources avec les objets COM j'en ai déjà vu sur ce site ^^

En tout cas bien commenté, ca pourra servir !

PS: On en parlait y'a pas longtemps des objets COM, ca ta motivé à faire une source dessus ? ^^

Commentaire de wims le 24/03/2007 02:36:40

Oui plus ou moins, c'est un des rare truc dont je me servais pas avec les regex, et c'est bien puissant, ca permet de recupéré pas mal de trucs même si c'est mal documenté ( que en anglais et c'est pas tres simple a aborder )

Je n'arrete pas la while avec /break parce que le goto le fait lui même :) ( j'avais testé ) et cela fait perdre plus de temps qu'autre chose surtout que le goto est obligé d'etre là.

Les commentaires sont ceux de Luckyfranck, donc ouais c'est bien fait :]

Commentaire de dj328i le 29/04/2007 17:43:36

Salut Wims et tous les autres

Vraiment sympa ta source sérieux. Ca fait du bien de voir un truc comme ca dans ce rammasi d'addon qu'on a deja vu 34,000 fois lol.

Les objets coms peuts save s'en servir et pourtant je trouve ca vraiment pratique. J'ai posté 2 ou 3 scrips en 2004 qui avais pour but de manipulé le registre de windows

Je vais allé etudié ta source de plus pres :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

cherche help sur les /com object [ par RysS ] Je cherche une aide concrete ( en fr de préférence ) ou un tutorial ou les deux sur les /com object ( command epour acceder a des programme )RysS [ A Snippet MATHS [ par Zova ] Bon je me suis peut être pas foulé, mais je voulai vous montrer un petit tour de maths :] ALT + A (partie aliases) vous mettez le tout et ta error snippet [ par neo66 ] Bonjours, je me suis amusé a faire ce petit snippet qui n'est pas vraiment tres utile mais bon, je savais pas quoi faire... mais (oui oui, ya toujours Hébergement gratuit d'images [ par jhd ] J'ai créé ce post pour vous présenter un de mes projets : NetImago.com Vous allez me dire qu'il existe de nombreux sites de ce genre et c'est vrai. Po [TCL] Souci sur plusieur tcl [ par Loveurs ] Bonjour,Je suis actuellement sur le projet de vouloir faire un GeoFront sur inspircd1.1.22je n'arrive pas à faire en sorte que le bot link rejoind l'i Pourcentage de similarité [ par BSmax ] Bonjour à tous :)Je cherche un snippet capable de calculer le pourcentage de similarité entre la réponse d'un joueur et une réponse enregistrée, pour MSL qui permet de télécharger des images [ par kevin0998 ] salut a tous! Je ne sais pas si je suis au bon endroit, mais je m'y lance!J'ai un script fait par un membre en 2004 (oui, quand meme vieux) J'ai tenté [BAR]Presentation de mon serveur irc [ par julien154 ] Tous d'abord bonjour je vais vous présentez mon serveur irc qui et Loup.Team.pro Nom de domaine qui est Loup-Team-Pro.org Port 6667 Des nombreux salon


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales