1 (изменено: Alex Li, 2016-05-11 22:01:09)

Тема: VBS: Запись в лог загрузки процессора по конкретному процессу

Нужно записывать в лог загрузку процессора по процессу iexplore.exe - (7й Интернетэксплорер) - просто две цифры в лог каждые 0,3 сек

Нашел код


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
set PerfProcess = objWMIService.Get(_
    "Win32_PerfFormattedData_PerfProc_Process.Name='Idle'")

While (True)
    PerfProcess.Refresh_     
    Wscript.Echo PerfProcess.PercentProcessorTime
    Wscript.Sleep 1000
Wend

Как модифицировать этот код, чтобы вместо всплывающего окна была запись в лог? Спасибо!

2

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Исправьте в заголовке WBS. на VBS:.

LogFile = "C:\Log.txt"

Set LogFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(LogFile, 8, True)
Set PerfProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")._
Get("Win32_PerfFormattedData_PerfProc_Process.Name='iexplore'")

Do
  PerfProcess.Refresh_     
  LogFile.WriteLine PerfProcess.PercentProcessorTime
  WScript.Sleep 300
Loop

3

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Пишет "Несоответствие типа LogFile.WriteLine"

4

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Я проверял, такой проблемы не было. Попробуйте добавить синее: CStr(PerfProcess.PercentProcessorTime).

P.S.: Двоеточие вместо точки в заголовке забыли.

5

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Попробовал - другая ошибка - "Недопустимое использование Null :'CStr'".Если без CStr вместо PerfProcess.PercentProcessorTime написать 1 или "1" - пишет в лог за милу душу.

Нашел   тут конструкцию через IF, попробовал - работает.
В результате код принял такой вид:


LogFile = "C:\Log.txt"

Set LogFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(LogFile, 8, True)
Set PerfProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")._
Get("Win32_PerfFormattedData_PerfProc_Process.Name='isis'")

Do
  PerfProcess.Refresh_()
If PerfProcess.PercentProcessorTime > 0 Then
LogFile.WriteLine PerfProcess.PercentProcessorTime
else
LogFile.WriteLine 0
End If
WScript.Sleep 300  
Loop

Еще раз большое спасибо за помощь!

6

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

ОК. Можно и так. А какая версия Windows и wscript.exe (на всякий случай)?

7

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Windows XP Sp3 , wscript 5.7

8

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Понял. Как-нибудь попробую на XP. А почему isis вместо iexplore?

9

Re: VBS: Запись в лог загрузки процессора по конкретному процессу

Flasher
Что активно крутилось на компе, то и вставил. С эксплорером счас буду пробовать.