Что нового

Вывод постоянных маршрутов в программу

depodimon

Новичок
Сообщения
26
Репутация
0
Здравствуйте! Подскажите как можно сделать вывод постоянных маршрутов в окно программы. Команда route print нужно к примеру чтобы выводил в программе: Постоянные маршруты: такие то такие-то
Возможно это сделать?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Идея такая:
Код:
Run(@ComSpec & " /c " & "route print >D:\route.txt", "", @SW_HIDE)
Sleep(500)
$file = FileOpen("D:\route.txt", 0)
$text = FileRead($file)
MsgBox(64, "Route print", $text)
FileClose($file)
Exit


Т.е. командой "route print >D:\route.txt" создаем файл с результатом
и потом уже с этим фалом что-то делаем. Может и не очень хорошая идея,
но все же.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
ну или не создавать файл, а сразу перехватывать поток.
Код:
#include <encoding.au3>
$pid = Run(@ComSpec & ' /c route print', '', @SW_HIDE, 0x2)
$s = ''
While 1
    $line = StdoutRead($pid)
    If @error Then ExitLoop
    If StringLen($line) > 0 Then $s &= $line
WEnd
$s = _StringOEM2ANSI($s)
MsgBox(0, '', $s)

а с $s уже можно делать все что угодно. парсить и т.д.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Kaster
У меня с такой функцией _Encoding_OEM2ANSI($s) работает, а с Вашей _StringOEM2ANSI($s) нет. :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
madmasles
наверное у меня старая версия. давно качал
 
Автор
D

depodimon

Новичок
Сообщения
26
Репутация
0
но он тогда выводит весь список вместе с активными маршрутами, а он довольно длинный.. Можно обрезать как нибудь?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
depodimon
а поиском воспользоваться?
http://autoit-script.ru/index.php?topic=510.0
 
Автор
D

depodimon

Новичок
Сообщения
26
Репутация
0
да я нашёл уже библиотеку) А вот как обрезать не доходит
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
depodimon
хорошо что ты спросил. у меня для тебя есть беспрецедентная акция
Код:
StringRight, StringLeft, StringMid, StringReplace, StringRegExp, StringRegExpReplace, StringSplit

выбирай какой хочешь, а лучше несколько и в связке ;)
 
Автор
D

depodimon

Новичок
Сообщения
26
Репутация
0
О шикарна) Спасибо!


Добавлено:
Сообщение автоматически объединено:

и ещё вопросик, у людей к примеру ipшники 192.168.х.х и 10.168.х.х Нужно прописать маршруты соотственно для тез у кого 10 одни а у кого 192 другие. Можно как нибудь определить какой сейчас ip адрес на сетевухе(не инетовский) и если на 192 начинается то одни маршруты если нет то другие прописать
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
depodimon
Ты когда планируешь начать читать справку? Дай знать. :beer: Отметим такое событие 8)
Код:
@IPAddress1, @IPAddress2, @IPAddress3
 
Автор
D

depodimon

Новичок
Сообщения
26
Репутация
0
Делаю так не рабоатет.

Код:
$pid = Run(@ComSpec & ' /c route print', '', @SW_HIDE, 0x2)
$s = ''
While 1
	$line = StdoutRead($pid)
	If @error Then ExitLoop
	If StringLen($line) > 0 Then $s &= $line
WEnd
$s = _Encoding_OEM2ANSI($s)

$sPattern = '.*?Постоянные'
$sRes = StringRegExpReplace($s, $sPattern, 'Постоянные')
$route_print = GUICtrlCreateLabel($s, 20,45,650,200)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
depodimon
Так попробуйте:
Код:
;.......
$sPattern = 'Постоянные'
$sRes = StringRegExpReplace($s, "(?is)\A.*?(" & $sPattern & ".*?)$", "\1")
MsgBox(0, '', $sRes)
 
Верх