Код сценария VB не уничтожает процесс в windows 7 - PullRequest
0 голосов
/ 09 января 2020

У меня есть задача, в которой всякий раз, когда приложение работает, и когда я запускаю обновление этого приложения, оно должно быть удалено из процессов, иначе оно выдаст ошибку лицензий, так как некоторые из лицензий присоединены к этому процессу приложения. Теперь я создал код VB Script, чтобы убить этот конкретный процесс приложения, и он отлично работает в моей локальной среде в windows 7. Но когда я пытаюсь запустить тот же код в среде QA в windows 7, тогда процесс все равно не убивает , Я пробовал много вещей, таких как убийство с использованием прав администратора, создавал журналы, но не получал подсказок, где я пропускаю.

В настоящее время у меня нет кода, если кто-то хочет проверить код VB Script, тогда я обновляю вопрос через некоторое время.

Если у кого-либо есть какая-либо информация по этому вопросу, пожалуйста, предложите мне ...

Заранее спасибо.

См. код ниже:

Option Explicit

DIM FileObject

On Error Resume Next

set FileObject = CreateObject( "WScript.Shell" )

FileObject.Run "TaskKill /F /IM Program1.exe", , True

FileObject.Run "TaskKill /F /IM Program2.exe", , True

FileObject.Run "TaskKill /F /IM Program3.exe", , True

FileObject.Run "TaskKill /F /IM Program4.exe", , True

FileObject.Run "TaskKill /F /IM Program5.exe", , True

FileObject.Run "TaskKill /F /IM Program6.exe", ,True

В приведенном выше коде Program1 и Program6 успешно закрываются из диспетчера задач, но не из других программ.

Примечание: - Приведенный выше код работает нормально, когда я явно запускаю файл сценария vb, но когда я включаю этот код сценария в мой обновитель Отлично, тогда он убивает только программу1 и программу6.

1 Ответ

0 голосов
/ 09 января 2020

Проблема может быть из-за 32- и 64-битных процессов. Попробуйте обработать его, используя Win32_Process

или вы можете попробовать использовать taskkill

например

Dim myshell : myshell = CreateObject("WScript.Shell")

    ' Launch notepad '
    myshell.Run "notepad"
    WScript.Sleep 3000

    ' Kill notepad '
    myshell.Run("taskkill /im notepad.exe", , True)

или

 Dim myshell : Set myshell = CreateObject("WScript.Shell")
Set Rt = myshell.Exec("Notepad") : wscript.sleep 4000 : Rt.Terminate

Не уверен, что вы пытаетесь это сделать, поскольку пример кода не предоставлен

...