Здравствуйте. Встала такая задача - узнать ИД запущенного процесса и удалить этот процесс. Конкретно в моём случае при извлечении скадой числа из екселя запускается процесс EXCEL.EXE, (C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE). И с каждым новым обращением к екселю из скады запускается очередной EXCEL.EXE, таким образом память забивается и всё виснет. В скаде на работу с екселем такой скрипт:
Код
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
objExcelApp.Workbooks.Open ""+path
Set objWorkSheet = objExcelApp.ActiveWorkbook.Worksheets(num_sheet)
Set objTag1= SmartTags(""+name_tag2)
objTag1.Value= objWorkSheet.Cells(num_row,num_colum).Value
objTag1.Write
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objTag1= Nothing
Команды Kill, TASKKill пробовал, скада их не знает, а я не знаю скады. Хочу в екселе макросом удалять запущенный процесс. Но удалять как бы не сразу, а чтоб скада успела прочитать значение из екселя. Допустим через 1 секунду после начала работы приложения, т. к. скада читает ексель не чаще 1 раза в 2 секунды.
Dim Process As Object
Dim nnn As String
For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
nnn = Process.Caption
If InStr(1, nnn, "EXCEL.exe", 1) > 0 Then
Process.Terminate
Exit For 'если один процесс
End If
Next
asesja, код работает, большое спасибо! Принудительно запускаю макрос столько раз, сколько екзешников запущенно, екзешники удаляются по одному, при удалении последнего файл сам закрывается. Не могу запустить его автоматически. Пробовал просто открывать файл после выполненных операций и потом закрывать его, и пробовал запускать в открытом файле макрос - приложение не удаляется.
юнат, строчку Exit For 'если один процесс, пробовали убрать из кода? Макрос должен пройти по всем процессам и у которых название EXCEL.exe и закрыть их.
юнат , строчку Exit For 'если один процесс , пробовали убрать из кода?
Конечно же нет. Я в Вашей большой авиации даже галандских кур не гружу) Ура, заработало! RAN, у Вас конкретно про ИД, но пока не понадобилось, благодарю. Спасибо за помощь!