Что нового

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

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
Репутация
622
ну или не создавать файл, а сразу перехватывать поток.
Код:
#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 319
Kaster
У меня с такой функцией _Encoding_OEM2ANSI($s) работает, а с Вашей _StringOEM2ANSI($s) нет. :smile:
 

kaster

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

depodimon

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

kaster

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

depodimon

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

kaster

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

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

depodimon

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


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

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
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 319
depodimon
Так попробуйте:
Код:
;.......
$sPattern = 'Постоянные'
$sRes = StringRegExpReplace($s, "(?is)\A.*?(" & $sPattern & ".*?)$", "\1")
MsgBox(0, '', $sRes)
 
Автор
D

depodimon

Новичок
Сообщения
26
Репутация
0
Супер! Работает!
 
Верх