|
Никто не пробовал по имени срубить процесс в винде из 1с? | ☑ | ||
---|---|---|---|---|
0
BigShmax
29.03.12
✎
14:20
|
очень нужно при определенном действии снимать процесс виндовый, имя известно - как бы срубить его.
|
|||
1
vicof
29.03.12
✎
14:21
|
через WSH
|
|||
2
Fragster
гуру
29.03.12
✎
14:21
|
taskkill
|
|||
3
Fragster
гуру
29.03.12
✎
14:21
|
(1) если тупо по имени - то не обязательно
|
|||
4
forforumandspam
29.03.12
✎
14:21
|
||||
5
Ёпрст
29.03.12
✎
14:21
|
/taskkill
|
|||
6
vicof
29.03.12
✎
14:22
|
Option Explicit
Dim objWMIService,Processes,Process, CommandLine, WshShell Set WshShell = CreateObject("WScript.Shell") 'Получаем список процессов notepad.exe через WMI Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set Processes = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name='r_server.exe'") If Processes.Count => 1 Then For Each Process In Processes CommandLine = Process.CommandLine Process.Terminate Exit For Next End If |
|||
7
rs_trade
29.03.12
✎
14:25
|
Процедура УбитьПроцесс(ИмяПроцесса, ИмяПользователя="")
objWMIService = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\" + ИмяКомпьютера() +"\root\cimv2"); ProcessSet = objWMIService.ExecQuery("select * from win32_process where name='"+ИмяПроцесса+"'"); Для Каждого Process Из ProcessSet Цикл User = ""; Domain = ""; Если ПустаяСтрока(ИмяПользователя) Тогда Process.Terminate(); Иначе Process.GetOwner(User, Domain); Если User = ИмяПользователя Тогда ЗаписьЖурналаРегистрации("ОБМЕН.Автолог", УровеньЖурналаРегистрации.Информация, , , "Убили процесс - "+Process.Path_.RelPath); Process.Terminate(); КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
8
Fragster
гуру
29.03.12
✎
14:43
|
КомандаСистемы( TASKKILL /F /IM 1c8.exe");
|
|||
9
BigShmax
29.03.12
✎
14:46
|
(6) (7) спасибо
ушел на базу :-) пойду пробовать килячить процессы :-) |
|||
10
Maxus43
29.03.12
✎
14:49
|
я за таск_килл
|
|||
11
BigShmax
29.03.12
✎
15:01
|
(10) преимущества?
|
|||
12
Fragster
гуру
29.03.12
✎
15:02
|
(11) тебе за количество строк платят?
|
|||
13
rs_trade
29.03.12
✎
15:04
|
(10) за дурацкое выскакивающее черное окошко
|
|||
14
Fragster
гуру
29.03.12
✎
15:06
|
(13) Все равно меньше получается
WshShell = Новый COMОбъект("WScript.Shell") WshShell.Run("TASKKILL /F /IM 1c8.exe",0,1); |
|||
15
BigShmax
29.03.12
✎
15:08
|
(14) компактнее и читаемее. ща заценю если без всяких побочных эфектов то круть.
|
|||
16
BigShmax
29.03.12
✎
15:40
|
лабораторные испытания на первом попавшемся процессе прошли удачно , а вот полевые закончились крахом :-(
всплывающее окно которое мне нужно гасить не создает процесса собственного а является составляющим другого который гасить нельзя :-( можно ли отловить окно по имени и закрыть его ? :-) |
|||
17
rs_trade
29.03.12
✎
15:42
|
(16) а сделать так что бы оно не всплывало никак?
|
|||
18
Fragster
гуру
29.03.12
✎
15:43
|
можно ли отловить окно по имени и закрыть его - можно
|
|||
19
BigShmax
29.03.12
✎
15:46
|
(17) никак мне нужно чтобы оно всплывало. к нему после всплытия идет обращение через актив икс. но после завершения события его приходится руками запахивать, а хотлось бы из 1с. оно просто в трее появляется и потом умирает. на текущий оно распазхивается - все обращения через ком объект работают осталось запахнуть его.
|
|||
20
BigShmax
29.03.12
✎
15:48
|
(18) а подробнее
|
|||
21
BigShmax
29.03.12
✎
16:14
|
"можно" это вся инфа какую можно получить ? :-(
|
|||
22
BigShmax
29.03.12
✎
17:49
|
и тишина :-(
|
|||
23
Fragster
гуру
29.03.12
✎
17:58
|
||||
24
Fragster
гуру
29.03.12
✎
17:58
|
хотя я не помню, auto it! вполне может работать из командной строки
|
|||
25
oleg_km
29.03.12
✎
18:06
|
Процесс запахивания - это что? просто в свое время автоматизировал банк-клиент, тоже нужно было запахивать окно, отправил ему WM_CLOSE - не проканало, нужно было как-то эмулировать нажатие ОК. Короче забил на это. А так WinAPI и COM тебе в руки. FindWindow, SendMessage или PostMessage и т.д.
|
|||
26
BigShmax
29.03.12
✎
18:17
|
(25) запахивание это нажатие на крестик справа сверху :-)
|
|||
27
BigShmax
29.03.12
✎
18:26
|
а нет примера использования кого нить из WinAPI ? или помогите мне как нить перебрать окна и например вывести через Сообщить() ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |