Войти

Показать полную графическую версию : [решено] Завершение процесса


d_u
05-04-2010, 20:31
Подскажите, как завершить процесс?
Спрашиваю, потому что после:

ProcessClose("IExplore.exe")
Function ProcessClose(sProcName)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function

программа считает, что был сбой, и предлагает выполнить определенные действия. Как можно не "убить" процесс, а послать сигнал завершения (аналогично нажатию красного крестика справа вверху)?

d_u
05-04-2010, 22:32
Обошелся WshShell.Run("taskkill /IM iexplore.exe"), но выскакивает консольное окошко, неэстетично как-то..

amel27
06-04-2010, 05:27
d_u, попробуй так:
WshShell.Run "taskkill /IM iexplore.exe", 0

d_u
06-04-2010, 17:16
amel27, спасибо.

POOLEET
22-07-2010, 10:06
Здравствуйте, а как будет выглядеть этот скрипт на JS?

deepred
22-07-2010, 12:14
POOLEET,

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("taskkill /IM iexplore.exe", 0);

POOLEET
26-07-2010, 10:55
После завершения задачи, неоходимо псмотреть все запущенные процессы, но эта команда запускается очень быстро и просмотреть результат ее выполнения не получается

WshShell.Run("tasklist ");

Как остановить выполнение этой команды и увидеть запущенные процессы?

deepred
26-07-2010, 17:45
POOLEET,

можно сделать таким образом:

модификация post#1
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")

On Error Resume next

For Each objProcess in colProcessList

If objProcess.Name = "iexplore.exe" Then
objProcess.Terminate()
count = count+1
strtask = "Было завершено " & count & " экземпляра (ов) процесса "& objProcess.Name

Else

If stingle Then
strproc= strproc & objProcess.Name & " " & vbTab
stingle = False

Else
strproc= strproc & objProcess.Name & vbTab & Vbcrlf
stingle = True

End if

End if
Next

Wscript.Echo "Список запущенных процессов:" _
& vbcrlf & strproc & vbcrlf & strtask

модификация post#7 для просмотра в cmd
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("cmd /k tasklist | More ", 1);

Вариация на тему post#7 для просмотра результата в текстовом файле
var WshShell = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var log = fso.openTextFile("c:\\tasklog.txt", 2, true);


var oExec = WshShell.Exec("cmd /k Echo off");
var InStream = oExec.StdIn;

oExec.StdIn.WriteLine ("Chcp 1251 & Cls");
oExec.StdIn.WriteLine ("tasklist & Cls");
oExec.StdIn.WriteLine ("exit");
var TextStream = oExec.StdOut

while (!TextStream.AtEndOfStream)
{
var Str = TextStream.Readline();
log.WriteLine(Str);
}

log.Close();

var oExec = WshShell.Exec("notepad.exe c:\\tasklog.txt");

while (oExec.Status == 0)
{
WScript.Sleep(100);
}


flog = fso.GetFile("c:\\tasklog.txt");

var BtnCode = WshShell.Popup ("Удалить log-файл?", 0, "tasklog:", 4 + 32);

switch(BtnCode) {
case 6:
flog.Delete();
break;
case 7:
break;
}




© OSzone.net 2001-2012