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
}