Имя: Пароль:
1C
 
пропинговать комп через обработку
0 break
 
24.01.10
13:44
есть ли возможность (я думаю есть) узнать подключен ли комп к локальной сети зная имя компа через код в обработке? натолкните, пожалуйста, на примерный код
1 НикДляЗапросов
 
24.01.10
13:46
а например открыть файл с такого компа, если не открывается то не в сети
2 break
 
24.01.10
13:47
а если доступ закрыт?, тут нужны права админа
3 VitGun
 
24.01.10
13:55
КомандаСистемы("ping ip_comp");

кажется так...
4 Vitello
 
24.01.10
14:00
(3)Ну...ему наверно надо и ответ получить :)
5 break
 
24.01.10
14:03
(4) да как я узнаю результат?
6 Aleksey_3
 
24.01.10
14:04
КомандаСистемы("ping ip_comp >c:\log.txt");

Затем читай файл
7 Kuzen
 
24.01.10
14:05
ыыы тока что решал такую же задачу только для 77

вощем использовал rom-mail.dll там есть ping.
8 dk
 
24.01.10
14:17
9 Kuzen
 
24.01.10
14:18
Щас проверил в 81 ром майл не работатет
10 break
 
24.01.10
14:29
shell=Новый COMОбъект("WScript.Shell");
Сообщить(shell.run("ping -n 1 localhost"));

При любом исходе выдает 0
11 break
 
24.01.10
15:07
нашел такой способ, без всяких логов

Процедура КнопкаВыполнитьНажатие(Кнопка)
ответ =0;
ответ = ping("ip_comp");
Сообщить( ?(ответ >0 ,"Есть соединение","Нет соединения" ));
КонецПроцедуры

Function Ping(IPАдрес)
   objShell = Новый COMОбъект("WScript.Shell") ;
   objScriptExec = objShell.Exec("ping.exe -n 1 " + IPАдрес,ложь) ;
   strPingResults = НРег(objScriptExec.StdOut.ReadAll());
   Возврат  Найти(strPingResults, "ttl=");
EndFunction
12 break
 
24.01.10
15:08
но меня не устраивает что появляется окно консоли, как ее запустить в скрытном режиме? выручайте!
13 dk
 
24.01.10
15:27
14 BOZKURT
 
24.01.10
15:38
15 break
 
24.01.10
15:48
(11) вот так правильнее будет
Процедура КнопкаВыполнитьНажатие(Кнопка)
ответ =0;
ответ = ping("ip_comp");
Сообщить( ?(ответ >0 ,"Есть соединение","Нет соединения" ));
КонецПроцедуры

Function Ping(IPАдрес)
   objShell = Новый COMОбъект("WScript.Shell") ;
   objScriptExec = objShell.Exec("ping.exe -n 1 " + IPАдрес) ;
   strPingResults = НРег(objScriptExec.StdOut.ReadAll());
   Возврат  Найти(strPingResults, "ttl=");
EndFunction
16 break
 
24.01.10
15:49
спасиб BOZKURT, но сначала бы хотел решить проблемку без ВК
17 break
 
24.01.10
17:00
вот оно ))) наконецто
Функция ПроверитьВклКомпа(name)
Если ПустоеЗначение(name) = 1 Тогда
Возврат 0;
КонецЕсли;
Попытка
scrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
scrptCtrl.language="vbscript";
scrptCtrl.addcode("
|Function Avaible()
|Set objWMIService = GetObject(""winmgmts:{impersonationLevel=impersonate}"")
|Set objPing = objWMIService.ExecQuery(""select * from Win32_PingStatus where address = '"+name+"'"")
|For Each objStatus in objPing
|If IsNull(objStatus.StatusCode) Or objStatus.StatusCode <> 0 Then
| Avaible = 0
|Else
| Avaible = 1
|End If
|Next
|End function
|");
Рез = ScrptCtrl.Run("Avaible");
Возврат Рез;
Исключение
Сообщить("Тест 1");
Возврат 0;
КонецПопытки;
КонецФункции // ПроверитьВклКомпа()
18 dk
 
24.01.10
17:08
хде спасибо?