Добрый день, я пишу кнопку для userform, которая из userform вставляет данные в шаблон word. Иногда так случается, что документ word "проваливается" в память.
Пользователь его не видит на панели задач, но он висит в памяти. Чтобы каждый раз не ходить в менеджер задач для снятия задачи, я хочу при создании документа отлавливать ID его процесса. Скрипт на закрытие определенного процесса через powershell у меня есть.
Т.е. мне надо через VBA создать объект word или excel и записать id процесса в текстовый файлик.
В качестве примера прикладываю свой код для отлавливания ID процесса при запуске powershell скрипта.
При запуске скрипта в текстовый файлик записывается ID. Другая кнопка останавливает скрипт путем считывания ID процесса из файлика.
Код |
---|
<html>
<head>
<title>HTA Test</title>
<HTA:APPLICATION
APPLICATIONNAME="HTA Test"
SCROLL="yes"
SINGLEINSTANCE="yes"
WINDOWSTATE="maximize"
>
</head>
<script language="VBScript">
window.resizeto 200,200
sub monitoring
sCmd = "%SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.exe -NoExit C:\test\test.ps1;Get-process -id $PID|where {$_.mainWindowTitle}|format-table id -autosize|out-file c:\test\out.txt"
Set oShell = CreateObject("Wscript.Shell")
iResult = oShell.Run(sCmd, 1, true)
end sub
sub end_monitor
set ObjShell = createobject("wscript.shell")
ObjShell.run ("powershell -command & {0.1 |% {stop-process (Get-content c:\test\out.txt -totalcount 4)[-1]}}")
end sub
</script>
<body>
<input type="button" value="Запуск" name="run_button" onClick="monitoring">
<input type="button" value="Стоп" name="run_button2" onClick="end_monitor">
</body>
</html> |