0
- 18.03.2015 - 17:35
|
Ппожалуйста подскажите, очень нужно убить внешний процесс минуя реестр (остановить лекгую програмку) из Excell при нулевом значении ячейки. В VBA - я не особо, заранее спасибо (контакт asda23@mail.ru). | |
1
- 19.03.2015 - 12:19
|
77 - Excel не имеет работать с процессами сам. Лучший инструмент для "прибития" процессов - это скрипт VBS, Shell или Python, который можно вызвать из Excel по событию, отслеживаемому по VBA: Код: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("СТОПЭ!!").Address Then Set WshShell = WScript.CreateObject("WScript.Shell") CheckRun = "Запускаемая программа" Set WshExec = WshShell.Exec(CheckRun) WScript.Sleep 5000 WshExec.Terminate Set WshShell = Nothing Set WshExec = Nothing End If End sub | |
2
- 19.03.2015 - 12:21
|
Для отслеживания 0 изложить так 2-ю строку: If Target.Address = Range("СТОПЭ!!").Address And Target.Value = 0 Then | |
3
- 21.03.2015 - 20:19
| За это кстати теоретикам Офиса нужно руки оторвать. | |
4
- 22.03.2015 - 19:35
| Его можно научить это делать. В Эксель через Declare Function легко подключать внешние dll, в том числе api windows, и с их помощью делать почти все, в том числе убивать внешние процессы. | |
5
- 23.03.2015 - 12:17
|
Немного реабилитирую VBA: если процесс ЗАПУСКАТЬ самим VBA - то и "прибить" его изнутри (силами VBA) почти всегда можно, путем закрытия объекта. Офис с VBA итак сильно опасный в плане вандализма, макросы исполняются с повышенными привилегиями, файлы удалятся не в корзину, и если еще разрешить ему убивать процессы - то получится идеальная среда для написания вирусни... | |
6
- 24.03.2015 - 10:48
| все получилось с подключением библиотек dll для эксперимента в XP/32 и XP/64, на Win8/64 - не работает. | |
7
- 27.03.2015 - 00:14
| 6-77 > Ну дык, сообразили наконец чуваки, что тут что-то не так. :) | |
8
- 17.05.2015 - 22:51
| Интересно | |
| Интернет-форум Краснодарского края и Краснодара |