Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Завершение процесса (http://forum.oszone.net/showthread.php?t=172301)

d_u 05-04-2010 20:31 1385641

Завершение процесса
 
Подскажите, как завершить процесс?
Спрашиваю, потому что после:

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 1385717

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

amel27 06-04-2010 05:27 1385842

d_u, попробуй так:
Код:

WshShell.Run "taskkill /IM iexplore.exe", 0

d_u 06-04-2010 17:16 1386303

amel27, спасибо.

POOLEET 22-07-2010 10:06 1458156

Здравствуйте, а как будет выглядеть этот скрипт на JS?

deepred 22-07-2010 12:14 1458261

POOLEET,

Код:

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


POOLEET 26-07-2010 10:55 1460694

После завершения задачи, неоходимо псмотреть все запущенные процессы, но эта команда запускается очень быстро и просмотреть результат ее выполнения не получается

WshShell.Run("tasklist ");

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

deepred 26-07-2010 17:45 1460972

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;
}



Время: 15:27.

Время: 15:27.
© OSzone.net 2001-