Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как прибить процесс? (число прочтений - 3800 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Как прибить процесс?
20. Сентября 2006 :: 08:47
Печать  
Ситуация такая. Из шедулера периодически запускается 1С для выполнения заданий. Одно из них - выкачать данные через активикс webbrowser. Но на сайте авторизация сложная, через доп.активикс, который вызывает в фоне окно IE и по https производится авторизация. Для пользователя обычно это незаметно. Но я столкнулся с тем что этот процесс IE остается в памяти после завершения работы 1С.
Сначала искал способы прибить дочерние окна и т.д. - не помогло. Мне кажется проще прибить определенный процесс от робота-пользователя.

Как это сделать проще?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #1 - 20. Сентября 2006 :: 08:55
Печать  
Код
Выбрать все
tasklist /?
taskkill /? 

  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #2 - 20. Сентября 2006 :: 09:12
Печать  
наверняка можно сделать через WMI
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win3...
чтобы создавать объекты WMI можно использовать EventProxy.dll
Код
Выбрать все
EventProxy=СоздатьОбъект("Addin.EventProxy");
te}!\\.\root\default"); 


а можно использовать MSScriptControl
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #3 - 20. Сентября 2006 :: 09:20
Печать  
Да, наверное через WMI самый оптимальный вариант
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #4 - 20. Сентября 2006 :: 09:27
Печать  
steban писал(а) 20. Сентября 2006 :: 09:12:
а можно использовать MSScriptControl

Учитывая то, что потребуется обход коллекций, использовать MSScriptControl будет все-таки удобнее.
Код
Выбрать все
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery( _
    "select * from win32_process where name='iexplore.exe'" )
For Each objProcess in colProcesses
     objProcess.Terminate()
Next 

  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #5 - 20. Сентября 2006 :: 09:43
Печать  
Ага, логично!
  
Наверх
 
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #6 - 28. Сентября 2006 :: 17:09
Печать  
А что значит сложная авторизация?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #7 - 28. Сентября 2006 :: 20:27
Печать  
Через активикс + сертификаты + все на жабаскриптах
  
Наверх
 
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как прибить процесс?
Ответ #8 - 05. Октября 2006 :: 09:35
Печать  
Понятно. У меня простым пост запросом. Сделал через XML2.XMLHTTP- все работает. Дай думаю оберну все в класс... Обернул, при вызове методов open-send часто выскакивала ошибка невозможно загрузить msxml3.dll.
Пробовал на 2003sp1, xpsp2, xml3, 4sp2,6. 1с++2,02,2
Пришлось методы эти вынести в обработку, т.е. объект создан в классе, а метод open должен быть обязательно в обработке%-)
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать