Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Как убить внешний процесс из Excell? (http://forums.kuban.ru/f1024/kak_ubit-_vneshnij_process_iz_excell-6617893.html)

77 18.03.2015 17:35

Как убить внешний процесс из Excell?
 
Ппожалуйста подскажите, очень нужно убить внешний процесс минуя реестр (остановить лекгую програмку) из Excell при нулевом значении ячейки.
В VBA - я не особо, заранее спасибо (контакт [email]asda23@mail.ru[/email]).

economist 19.03.2015 12:19

77 - Excel не имеет работать с процессами сам. Лучший инструмент для "прибития" процессов - это скрипт VBS, Shell или Python, который можно вызвать из Excel по событию, отслеживаемому по VBA:

[code]
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
[/code]

economist 19.03.2015 12:21

Для отслеживания 0 изложить так 2-ю строку:

If Target.Address = Range("СТОПЭ!!").Address And Target.Value = 0 Then

max 21.03.2015 20:19

За это кстати теоретикам Офиса нужно руки оторвать.

g_krd 22.03.2015 19:35

[quote=economist;38382761]Excel не имеет работать с процессами сам[/quote]
Его можно научить это делать. В Эксель через Declare Function легко подключать внешние dll, в том числе api windows, и с их помощью делать почти все, в том числе убивать внешние процессы.

economist 23.03.2015 12:17

Немного реабилитирую VBA: если процесс ЗАПУСКАТЬ самим VBA - то и "прибить" его изнутри (силами VBA) почти всегда можно, путем закрытия объекта.

Офис с VBA итак сильно опасный в плане вандализма, макросы исполняются с повышенными привилегиями, файлы удалятся не в корзину, и если еще разрешить ему убивать процессы - то получится идеальная среда для написания вирусни...

77 24.03.2015 10:48

все получилось с подключением библиотек dll для эксперимента в XP/32 и XP/64, на Win8/64 - не работает.

max 27.03.2015 00:14

6-77 > Ну дык, сообразили наконец чуваки, что тут что-то не так. :)

valtron1 17.05.2015 22:51

Интересно


Текущее время: 07:56. Часовой пояс GMT +3.