Как создать сценарий на VBS для определения сходства процессов в Windows?

Как правильно написать команду в скрипте для определения сходства процессов в Windows и установки им приоритета?
  • 2 августа 2024 г. 14:23
Ответы на вопрос 2
Для создания сценария на VBS для определения сходства процессов в Windows, следует использовать следующий код:

```
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

For Each objProcess in colProcesses
    If InStr(objProcess.Name, "process_name") > 0 Then ' заменить "process_name" на название процесса, который нужно найти
        WScript.Echo "Process ID: " & objProcess.ProcessId
        WScript.Echo "Priority: " & objProcess.Priority
        ' здесь можно добавить дополнительные действия, например, установка приоритета
    End If
Next
```

Для установки приоритета процессу в Windows, можно использовать следующую команду в скрипте:

```
objProcess.SetPriority(process_priority) ' заменить "process_priority" на желаемый приоритет (0 - Idle, 32 - Normal, 64 - High, 128 - RealTime)
```

Например, чтобы установить приоритет процессу с ID 1234 на высокий, нужно добавить следующую строку после вывода информации о процессе в предыдущем сценарии:

```
If objProcess.ProcessId = 1234 Then
    objProcess.SetPriority(64) ' установка приоритета процессу на High
End If
```
Аналогично и не будет работать - у этого объекта просто нет такого метода SetAffinity . 
Рекомендую сначала изучать документацию прежде чем лезть в мозги к операционной системе.

Для выполнения этой операции надо использовать функцию SetProcessAffinityMask из библиотеки kernel32.dll .
Похожие вопросы