Имя: Пароль:
1C
1С v8
WshShell или ЗапуститьПриложение для смд или bat файла с фиксированым местом окн
0 batman1978
 
27.01.16
18:44
Добрый день всем

простите за сложный вопрос но так надо
или подскажите решение проблемы по другому
нужно запустить окна через WshShell.Run или ЗапуститьПриложение командной строки по всему экрану с фиксированным размером окна
что бы поместились и не накладывались друг на друга

максимум что смог програмно это пойти по пути запуска батника
в котором накидал вот это
Echo off
title окно 1
mode con:cols=59 lines=7
echo on

осталось побороть открытие нескольких окн но что бы не закрывали друг друга

или подскажите как реализовать сразу в 1с без батника но нужно открыть именно командную строку т.к. еужно видеть онлайн отображение выполнения команды
1 batman1978
 
27.01.16
18:47
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("cmd.exe mode con:cols=15 lines=15",9,0 );

не работает так  и смена первой цифры про виндовсстиле не дает тот эффект открытия окн в нужном виде
2 Garykom
 
гуру
27.01.16
18:53
А может все таки просто получать то что там в консоли выводится, парсить это и выводить в нормальном виде в 1С?
3 Мэс33
 
27.01.16
19:52
(0) странная и любопытная задача.
А смысл каков?
4 Serginio1
 
27.01.16
19:54
5 arsik
 
гуру
27.01.16
19:59
(0) может powershell?
6 batman1978
 
28.01.16
18:20
(5) Дело в том что - я честно не рассматривал этот момент. точнее я не разу не дружил 1с и повершел если вы про это.
если есть идея подскажите или ткните носом куда рыть.
7 batman1978
 
28.01.16
18:24
(3) смысл в том что мне нужно видеть цифры с 10 экранов - сразу на одном экране .. то есть 10 или более запущенных окн командной строки с информацией в ней.

возможно закидаете тапками - но пингование в режиме онлайн на нужное мне количество ip  разных окнах и всех сразу ... нет
плюс у меня есть тяга к программированию
а 1с позволит мне этот процесс автоматизировать и сделать гибким для моей работы :)
внешний отчет ввиде пингера - правда по окончанию еще как нибудь бы их разом закрыть - но уж это не кретично по сравнению с результатом который я хочу получить :)
8 batman1978
 
28.01.16
18:26
(2) увы - мне нужно онлайн режим - а тот вариант о чем вы говорите будет давать задержку минуты на 3 ...
это не решит то что я хочу.

Я инженер тех поддержки и когда отваливается кабель - и его начинаешь шевелить - тут только онлайн данные нужны
9 batman1978
 
28.01.16
18:32
можно руками набить 10 окн растянуть их расставить - но в случае если надо срочно отвлечься на другую задачу или ответить в скайп или в джабер - то как вы понимаете - переключить вернуть все экраны обратно - очень геморно - плюс трата времени на растягивание вбивание нужных IP - на подготовку уходит очень много времени ... плюс расстановка экранов по основному экрану что бы все поместилось что нужно.
10 batman1978
 
28.01.16
18:34
(4) не пойдет - это решение запросил получил - а у меня получается запустил опрос 1 раз и потом смотришь ответы до тех пор пока не перестанет быть нужным. а это может быть время разное.
11 Garykom
 
гуру
28.01.16
18:38
(7)(9) ыыы
ну какая разница сколько окон терминала (потоков) из 1С или из чего другого запустить
и потом периодически их читать и выводить в одно большое окно

можно даже сделать что если "нет пинга" в любом окне то оно(они) крупно и СМС-ка или по мессенджеру сообщение падает ))
12 trdm
 
28.01.16
18:41
13 trdm
 
28.01.16
18:50
14 Garykom
 
гуру
28.01.16
18:57
15 Serginio1
 
28.01.16
23:43
(10) Можно через события получать данные
http://stackoverflow.com/questions/1145969/processinfo-and-redirectstandardoutput
16 Serginio1
 
28.01.16
23:59
17 arsik
 
гуру
29.01.16
08:21
NetNative: ВК для работы с сетью
http://1c.ppt.ru/public/261418/
18 Мэс33
 
29.01.16
11:52
(7) Просто видеть или что-то делать при появлении определенных событий?

Я бы на том же питоне накатал скрипт, который запустит с десяток процессов cmd.exe и будет перехватывать вывод с консоли. При наступлении события "х" - оповещать чувака. Можно в фоновом скрытном режиме запускать. Зачем нам глазеть на окошки?
19 batman1978
 
30.01.16
18:32
а как прикрепить файл скрин шот что бы вы поняли что я хочу ?
потому что - то что все посоветовали не как не решает проблему
20 ДенисЧ
 
30.01.16
18:46
(19) pics.rsh.ru
Туда картину а сюда ссылку
21 batman1978
 
30.01.16
23:15
22 batman1978
 
30.01.16
23:16
вот и в каждом запущен пинг с командой -t в каждом окне - и мне их надо много это для примера нарисовал и что бы они вот так аккуратно были раставлены
23 Garykom
 
гуру
30.01.16
23:18
(21) (22) хммм, вы понимаете что можно взять лопату, сорри 6 лопат, по 2 в каждую руку и еще 2 в зубы и идти копать

а можно взять экскаватор, да еще и с 6 и более ковшами да еще и автоматический работающий по программе или даже от спец ии ?
24 Garykom
 
гуру
30.01.16
23:21
(23)+ в смысле объясните вам шашечки (чтобы окошечки терминальные были)?

или ехать (выполнять ту же самую задачу без терминальных-консольных окошечек) ?

нужное число окошечек можно выводить, хотя нафига они нужны если често если хватит одного, средствами 1С или чего другого

суть как понял проверять пинг до неких ресурсов

так и вывести блин в список/таблицу эти ресурсы с понятными именами кроме ip и напротив будут меняться разные циферки для каждого ресурса

типа средний пинг - стока то, текущий пинг стока то и т.д.
25 Garykom
 
гуру
30.01.16
23:23
(24)+ а если пинг того, пропал или таймаут больше заданного (можно в параметрах)
то строчка становится красненькой и вверх поднимается
если не совсем все плохо просто слегка задержка то строчка скажем желтенькая и тоже вверху...
26 Garykom
 
гуру
30.01.16
23:25
(25)+ причем можно навести или тапнуть/кликнуть по строчке и покажется детальное инфо в т.ч. терминальное окошечко с пингом...
27 Garykom
 
гуру
30.01.16
23:30
(26)+ далее при пропадании и(или) задержке пинга можно автоматом разные действия запускать

к примеру tracert|trace route и тапая уже видеть нечто ))
28 Мэс33
 
30.01.16
23:37
Вопрос - самый главный - почему из 1с надо запускать?
29 Garykom
 
гуру
30.01.16
23:39
(28) очередной админ хочет стать типичным 1С-ником и бабло лопатой грести...
вот только многие лопатой машут, но почему то не гребут что хотят, а что набросает
30 mistеr
 
31.01.16
00:38
(7) Ты не тот инструмент выбрал для автоматизации. Для расстановки окон и управления ими правильный инструмент - AutoIt. Ссылку дали выше.

А вообще-то для мониторинга есть более специальный софт. С графиками, отчетами и т.п.
31 arsik
 
гуру
31.01.16
09:48
32 Мэс33
 
31.01.16
11:25
(30) Софта этого -просто валом.
Не понимаю, зачем это городить в 1С.
33 Garykom
 
гуру
31.01.16
11:38
(30) (31) (32) только денег стоит
34 Serginio1
 
31.01.16
11:39
35 batman1978
 
31.01.16
11:56
(24) чтобы окошечки терминальные были - остальное сам допишу как мне надо и что надо :) вызывать их в нужном месте - достаточно показать как одно вызвать в нужной точке экрана
36 batman1978
 
31.01.16
11:58
(32) почему на конкретный вопрос как сделать все пускаются в объяснения надо мне это или нет ?
почему просто нельзя сказать - сделай так или вот так ?
37 Serginio1
 
31.01.16
11:59
(35) Попробуй другое решение которое значительно проще
https://msdn.microsoft.com/ru-ru/library/ms144956(v=vs.110).aspx
38 batman1978
 
31.01.16
11:59
(30) еще раз - мне надо видеть пинг по 10 IP одновременно - в чем проблема ? 10 терминальных окошек - все просто
39 batman1978
 
31.01.16
12:00
(33) вот честно - я хочу и себе работу облегчить и чему то в 1с поучиться. У меня нет конретных задач по 1с .. вот учусь как могу и на что хватает времени.
40 batman1978
 
31.01.16
12:02
(33) при чем тут бабло ? вы думаете что я планирую параллельно 10 фирм обслуживать. мне на основной работе времени в обрез хватает успевать все делать. а заниматься приконторским бизнесом на работе не по мне. ибо отвлекает сильно
41 Записьдампа
 
31.01.16
12:03
(35) На каком из трёх мониторов?
42 batman1978
 
31.01.16
12:08
(37) Предпринимает попытку отправки сообщения запроса проверки связи ICMP с заданным буфером данных на указанный компьютер и получения от него соответствующего сообщения ответа проверки связи ICMP.Эта перегруженная версия метода позволяет указать тайм-аут операции и управлять значениями фрагментации и срока жизни пакета ICMP.

public PingReply Send(
    string hostNameOrAddress,
    int timeout,
    byte[] buffer,
    PingOptions options

проблема не в том что мне нужно там увидеть сколько было потерь или не было потерь

попробывать отправить

ладно попробоую так обьяснить
как прозвонить кабель на обрыв - мы замыкаем с одной стороны 2 контакта - с другой звоним - нету например контакта .. значит прозванивая продолжая мы идем по кабелю и руками проверяем где излом - смотрим опп начало звониться - разрезаем соединяем. все кабель исправен.

так вот я хочу сделать инструмент прозвона. щупаем руками находим там где кабель не исправен

как вы предлагаете теми методами что мне советовали это реализовать ? - пинг пошел и не получили ответа - а если кабель рукой пошевелим - как это будет по таймауту работать ?

а путем непрерывного пинга - звонилки это реально выяснить... кабель разьем конектор контакт излом провода - это все можно найти путем пинга непрерывно и его просмотра
43 batman1978
 
31.01.16
12:08
(41) не понял поясни суть твоего вопроса
44 batman1978
 
31.01.16
12:10
(31) забикс оповещает
и другие вещи оповещают - но это системы мониторинга - а мне нужно сделать инструмент - который поможет мне починить проблему локальную - о которой меня поставит в известность забикс и другие программы.
45 Garykom
 
гуру
31.01.16
12:21
(44) объясни что тебе дадут циферки/буковки на терминале, из того что не может дать другая система?

можно даже моменты появления контакта отслеживать
типа руками "щупаем кабель" и оппа в наушниках пищщитс от программы типа есть контакт
ну или по разному отображает периодичностью писка таймаут
46 Serginio1
 
31.01.16
12:45
(42) Так посылай по таймеру. В чем проблема. А лучше используй асинхронный вариант, что бы не морозить интерфейс.

https://msdn.microsoft.com/ru-ru/library/system.net.networkinformation.pingcompletedeventhandler(v=vs.110).aspx

То, что передаешь в 5 параметре SendAsync получаешь в обработчике события как e.UserState
47 Garykom
 
гуру
31.01.16
12:52
(46) не твоя не понимать... он ничего не хочет по таймеру посылать
он хочет окошки открывать с командами
причем в нужных местах

ЗЫ расскажи ему про winapi и send|postmessage
48 Serginio1
 
31.01.16
12:55
46 и программно определишь разрыв, а не визуально. Мы вроде должны по максимальному автоматизировать процесс.
(47) Ну тут хозяин барин. Как в 9 специально человек должен за пингами наблюдать. Вот она автоматизация.
49 mistеr
 
31.01.16
13:28
(38) Да нет проблемы. Просто делай это на AutoIt.

Вот тебе пример:
---------------------------------------

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

$Form1 = GUICreate("Ping", 282, 100, 189, 154)
$idHost = GUICtrlCreateInput("127.0.0.1", 44, 12, 217, 21)
$Label1 = GUICtrlCreateLabel("Ping:", 12, 14, 28, 17)
$btnRun = GUICtrlCreateButton("Run", 100, 48, 75, 25, $BS_DEFPUSHBUTTON)
$btnStop = GUICtrlCreateButton("Stop", 184, 49, 75, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $btnRun
            $PID = Run("ping -t " & GUICtrlRead($idHost))
            $hWnd = WinWaitActive("[TITLE:C:\Windows\system32\ping.exe; CLASS:ConsoleWindowClass;]")
            WinMove($hWnd, "", 500, 50, 300, 450);

        Case $btnStop
            ProcessClose($PID)

    EndSwitch
WEnd
50 arsik
 
гуру
31.01.16
13:34
(42) Чудак человек. Это мне напоминает http://s003.radikal.ru/i201/1208/c1/d0e7323f980a.jpg

Вообще, для этого есть специальная команда tracert , а не ping. Tracert покажет тебе весь путь прохождения пакета до конечной точки и место, где этот пакет потерялся.

Ну а по уму я бы dude от микротика использовал. В первый раз конечно х.. разберешься, но инструмент дельный. в принципе и автоматом может сеть нарисовать.
51 Garykom
 
гуру
31.01.16
13:41
(50) они вообще то просто д...ы, отсутствие кабельного тестера, который умеет http://www.testers.ru/catalog/index.php?SECTION_ID=19
пытаются какими то непонятными заменить
52 Записьдампа
 
31.01.16
13:46
(51) Классный стартап кстати может получится - выпускать тестеры, позволяющие проверять кабель, концы которого в разных городах.
53 arsik
 
гуру
31.01.16
14:00
(52) Оптический?
54 Garykom
 
гуру
31.01.16
14:05
(53) да хоть беспроводной
55 Garykom
 
гуру
31.01.16
14:07
(52) и да ТС вроде ничего про узлы не говорил, только про кабель?

а если нет узлов-шлюзов и прочих, кабель прямой (неважно медь или оптика) то нет никаких проблем и когда концы в разных городах тестить
56 Garykom
 
гуру
31.01.16
14:08
57 batman1978
 
01.02.16
14:36
(49)
это для одного окна а как мне открыть 10 окн расположив их по всему экрану не закрывайя и не перекрывая другие окна ?
58 batman1978
 
01.02.16
14:39
(50) да при чем тут трасировка то ? зачем мне трасировать ? я же не просил трасировку

блин я же и так все упростил - есть вот такая надобность открыть 10 окн на экране - как это сделать ?

началось чудак .. есть вот такое ... а есть такое а зачем тебе это

не проще сказать - я незнаю ... или вот тебе вариант. я же не спросил у вас почему луна не греет или не спросил что вы думаете о квантовой теории ядерных синтезов
59 batman1978
 
01.02.16
14:40
(51) ... зачем ты предпологаешь того чего сам незнаешь ?

откуда ты знаешь умеют люди пользоваться кабельным тестером ? или нет ?

ты еще научи как обжимать кабеля. раз у тебя есть знания про кабельный тестер - тут же в теме
60 batman1978
 
01.02.16
14:42
(52) или ты про физику забыл или я незнаю даже что ответить - или просто тебе кайф поприкалыватся.
61 batman1978
 
01.02.16
14:44
вы можете кто нибудь дать совет или ответ на конкретно вопрос который я задал  - открыть 10 окн командной строки так что бы они не закрывали друг друга ?

пусть скрипт .. ? я нашел как открыть 1 окно как его сжать под нужный размер - но они открываются в одной точке каскадом - надо что бы равномерно по экрану

а том как сеть нарисовать ... использовать микротики - трасеровать - не надо про это
только конкретика по заданному вопросу плиз :)
62 Garykom
 
гуру
01.02.16
14:47
(59) витуха бо-о-бз-с-бс-з-бк-к и это без подсказок по памяти, вот это тип а или б не помню уже
63 Garykom
 
гуру
01.02.16
14:48
(61) "наймите специалиста"©
другой ответ для вашего уровня пока слишком сложен
64 mistеr
 
01.02.16
23:34
(61) В моем примере тебе чего не хватает?
65 Записьдампа
 
02.02.16
00:27
(61) Конкретный совет - написать батник, запускающий процессы, кликнуть правой кнопкой мыши по панели задач, выбрать пункт "Расположить окна стопкой", перестать парить народу мозг.

Причем тут 1С-то? "Как при помощи автокада открыть бутылку пива?"
66 Мэс33
 
02.02.16
13:34
(65) >>>кликнуть правой кнопкой мыши по панели задач,
кликнуть программно. Тем же AutoIT`ом.
67 Garykom
 
гуру
02.02.16
13:43
(66) не понял это что куча 1С-ников и вообще программистов задачу (0) предлагают не выделываться и решить батниками/скриптами/autoit ?
68 Мэс33
 
02.02.16
14:00
(67) ну я как бы выделывался ))) , см. (3)
А потом стало любопытно, что народ предложит.
69 HardBall
 
02.02.16
15:46
(67) Троляка
Сервисы = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");
Ping = Сервисы.ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '192.168.1.1'");
Для каждого Comp  Из Ping Цикл

    Для каждого Свойство Из Comp.Properties_ Цикл
               Сообщить (Свойство.Name +"-" + Свойство.Value);
    КонецЦикла;
КонецЦикла;
Вывести в кучку форм 1C нужные пинги
70 arsik
 
гуру
02.02.16
15:52
(69) Так не пойдет. Емуж надо онлайн смотреть, а не постфактум.
71 HardBall
 
02.02.16
16:01
(70) То , что выводит ping на экран это постфактум.
72 Dmitry77
 
02.02.16
16:18
нарисовать форму на чем нибудь...
73 Dmitry77
 
02.02.16
16:19
+(72) на форму вытащить элементы управления, в них нужную информацию
74 Garykom
 
гуру
02.02.16
16:28
(70) и в окошечках терминальных по экрану разложенных ))
Закон Брукера: Даже маленькая практика стоит большой теории.