Process Manager
Posted by HellRaz0r
Sunday, July 22, 2007
Description: Lets you manage processes from within mirc. - Currently under development.


;To use type /plist
alias plist {
  if ($1) || ($isid) halt
  elseif (!$exists(c:\windows\system32)) {
    echo -a [^B]Error:[^B] You need tasklist.exe in your c:\windows\system32 dir for this to work. - If you want it do some googling.
    halt
  }
  dialog -m plist plist
  did -b plist 5 | did -b plist 6

  var %com $+(cmd,$ticks)
  .comopen %com wscript.shell
  if (!$comerr) .comclose %com $com(%com,run,1,bstr,cmd.exe /c pushd $mircdir && tasklist > $qt($mircdirshellout) 2>&1,uint,7,bool,true)
  var %x 1
  while (%x <= $lines(shellout)) {
    if ($read(shellout,nt,%x)) {
      tokenize 32 $v1
      if ($0 == 6) && ($1 != System) {
        did -a plist 1 $1

        var %sockname = pinfo- $+ $1
        .sockclose %sockname
        sockopen %sockname www.processlibrary.com 80
        sockmark %sockname /directory?files= $+ $$1
        hadd -m %sockname File $1
      }

    }
    inc %x
  }
  .remove shellout
}
dialog plist {
  title ""
  size -1 -1 200 199
  option dbu
  list 1, 9 33 70 153, size
  text "Process List", 2, 19 13 30 9
  text "Info", 4, 132 40 23 10
  button "Locate - ComingSoon", 5, 119 112 57 12
  button "Terminate - ComingSoon", 6, 119 143 67 12
  edit "", 3, 88 54 106 49, multi
}
on *:dialog:plist:sclick:1:{
  var %text = $did($dname,1).seltext
  var %table = $+(pinfo_,%text)

  var %name = $hget(%table,Name), %author = $hget(%table,Author)
  var %name = $remove(%name,Â), %author = $remove(%author,Â)
  if (%name) && (%author) {
    did -r plist 3
    did -a plist 3 Name: %name $+ $crlf $crlf $+ Author: %author
  }
  else {
    did -r plist 3
    did -a plist 3 Info not found.
  }
}
on *:dialog:plist:close:*:{ .hfree -sw pinfo_* }
on *:sockopen:pinfo-*:{
  var %sw = sockwrite -nt $sockname
  %sw GET $sock($sockname).mark HTTP/1.1
  %sw Host: www.processlibrary.com
  %sw Connection: Close
  %sw
  sockmark $sockname 0
}
on *:sockread:pinfo-*:{
  var %data | sockread %data
  tokenize 32 %data

  if ($1) {
    if ($regex($1-,<span class="val1">([^<]+)<\/span>)) {
      if (!$sock($sockname).mark) {
        hadd -m $sockname Author $regml(1)
        sockmark $sockname 1
      }
      else hadd -m $sockname Pname $regml(1)
    }
    elseif (<span>THE PROCESS/DLL WAS NOT FOUND IN OUR LIBRARY</span> isin $1-) sockclose $sockname
  }
}
on *:sockclose:pinfo-*:{
  if ($hget($sockname,File)) {
    var %file = $v1
    if ($hget($sockname,Pname)) hadd -m $+(pinfo_,%file) name $v1
    if ($hget($sockname,Author)) hadd -m $+(pinfo_,%file) author $v1
  }
  .hfree -sw $sockname
}
Submit a comment
Oops! You need to login or register before you can post a comment!

ebaum's world