Вопрос вынесен в отдельную тему из топика: Капчи, сохранение и распознавание. reCaptcha, Solve Media.


Правила форума:
2.  Не рекомендуется:
2.21
  Отсылать сообщения, не соответствующие обсуждаемой теме (оффтопик). Сообщения будут удаляться без предупреждения или выделяться в отдельные темы.

InfSub


PRESIDENT пишет

В факе есть пример запуска батника из макроса.

Ты имеешь ввиду пример запуска внешней программы?

скрытый текст
Screenshot-510.1453732150.png

но в данном примере приводится запуск экзешника (.ехе), а батник так же само запускать надо из макроса или есть способ ещё?

dvitkovs
а батник, у вас, сам по себе запускается? погуглите-ка, что такое батник и чем он обрабатывается в системе, или по вашему cmd.exe не exe-шник?

25-01-2016 17:45:14
в том же FAQ есть ссылка на пост PRESIDENT'а, на тему батника и перезапуска FF, если вы не заметили

А как сделать, чтоб исполняемый батник не исчезал сразу? А то не успеваю почитать, что он там пишет.
Дело в следующем: имеется у меня батник реконнекта интернет-соединения

скрытый текст

Выделить код

Код:

rasdial byfly /disconnect 
ping -n 1 -w 5000 192.168.254.254 >nul 
rasdial byfly


так вот, он хорошо делает дисконнект, а коннект не происходит. То есть соединение с интернетом не устанавливается. Мне приходится потом вручную кликать на ярлычок на рабочем столе, тогда соединение происходит.

dvitkovs
pause  в батнике

InfSub пишет

dvitkovs
pause  в батнике

Благодарю!
Удалось прочитать, что там написано:

скрытый текст
Screenshot-516.1453738183.png

Видимо это из-за неверно указанного адреса. У меня в батнике прописан адрес 192.168.255.255 но может это не верно, я пробовал разные варианты и всегда выдает сообщение об ошибке службы удаленного доступа 691. Пишет, что доступ запрещён поскольку такие имя пользователя и пароль не допустимы в этом домене.
А вот какие адреса у меня на компе есть вообще:
скрытый текст
Screenshot-517.1453738541.png

Подскажите, может действительно в батнике адрес нужно какой-то другой прописать?
скрытый текст

Выделить код

Код:

rasdial byfly /disconnect
ping -n 1 -w 5000 192.168.254.254 >nul
rasdial byfly

melena083 пишет

192.168.1.1 - это твой
192.168.1.2 - это судя по скринам у тебя не одна машина

на скрине с ipconfig все ж видно
192.168.1.1 - роутер/модем, выполняющий соответственно, роль шлюза
192.168.1.2 - комп, так что вы что-то путаете

dvitkovs
Вообще то правильнее так будет

скрытый текст

Выделить код

Код:

rasdial "имя_вашего_соединения" /disconnect
timeout /T 10 /NOBREAK
rasdial "имя_вашего_соединения" "Логин" "Пароль"
timeout /T 10 /NOBREAK

PRESIDENT пишет

dvitkovs
Вообще то правильнее так будет

скрытый текст

Выделить код

Код:

rasdial "имя_вашего_соединения" /disconnect
timeout /T 10 /NOBREAK
rasdial "имя_вашего_соединения" "Логин" "Пароль"
timeout /T 10 /NOBREAK

Благодарю! Так действительно само-то, что надо. Работает. :)

Подскажите, команда rasdial "имя_вашего_соединения" /disconnect подходит для любого типа подключения к Интернету? Мой ноут коннектится к роутеру по wi-fi, команда rasdial, запущенная в терминале, говорит об отсутствии подключения, хотя Интернет есть.

udalov
отключение от роутера и подключение заново - вам вряд ли, поможет сменить IP в интернете
google в помощь по написанию cmd/bat-скрипта для перезапуска вашего роутера (если он поддерживает подключение через telnet/ssh)
или перезапуск роутера через web-интерфейс - средствами iMacros
опять же, все это имеет смысл, только, если ваш провайдер, предоставляет белый динамический IP

Для тех, у кого внешний динамический адрес и подключение через LAN-ADSL или через роутеры такой скрипт

скрытый текст

Выделить код

Код:

192.168.1.1 23
WAIT "Login:"
SEND "LOGINm"
WAIT "Password:"
SEND "PASSm"
WAIT ">"
SEND "system restartm"
SEND "user logoutm"


Вместо 192.168.1.1 укажите IP вашего мoдeмa
LOGIN - логин к модему
PASS - пароль к модему

Для тех, у кого внешний динамический адрес и прямое подключение по локальной сети предлагается такой скрипт
Отключение и включение сетевой карты
Для 64 битных разрядных систем, на 32 битных разрядных системах не проверял

скрытый текст

Выделить код

Код:

C:\devcon.exe find =net
timeout 5 > NUL
pause
C:\devcon.exe disable =net PCI\VEN_14E4
timeout 20 > NUL 
C:\devcon.exe enable =net PCI\VEN_14E4
timeout 5 > NUL


Где PCI\VEN_14E4 идентификатор вашей сетевой карты
Когда найдете идентификатор удалить пауза
Запускать с правами администратора
Скачать devcon.exe и распаковать в корень диска C:\
скрытый текст

offtop
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

В cmd руками прописываю

скрытый текст

Выделить код

Код:

telnet 192.168.1.1
login:*****
password:****
>reboot


все чики-пуки!!!
Но в bat. не знаю как реализовать. Пробовал решения опубликованные выше, ни как! В Гугле тоже не нашел.
Подскажите пожалуйста кто знает как реализовать в bat.

VBS. все решил. Может кому пригодиться.
VBS

скрытый текст

Выделить код

Код:

Set wshShell = WScript.CreateObject("WScript.Shell")
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
wshShell.Run "telnet.exe 192.168.1.1" // имя роутера
WScript.Sleep 500
wshShell.SendKeys "логин~" 
WScript.Sleep 500
wshShell.SendKeys "пароль~" 
WScript.Sleep 500
wshShell.SendKeys "reboot~"
WScript.Sleep 5000
Set ProcList = oWMI.ExecQuery("Select * from Win32_Process Where Name = 'telnet.exe'") 
For Each oProc in ProcList 
        oProc.Terminate() 
Next


и bat. к нему (vbs. и bat. в одной папке)
скрытый текст

Выделить код

Код:

start /w wscript.exe "reconect.vbs"

При запуске батника

скрытый текст

Выделить код

Код:

start /w wscript.exe "reboot.vbs"


для  старта   .vbs
скрытый текст

Выделить код

Код:

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.run "telnet.exe"

WScript.Sleep 5000
WshShell.SendKeys"open 192.168.1.1" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"admin" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"admin" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"system reboot" & chr(13)

WScript.Sleep 3500
ProcessClose("cmd.exe")
ProcessClose("telnet.exe") 
Function ProcessClose(sProcName) 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'") 
For Each objProcess in colProcessList 
objProcess.Terminate() 
Next 
End Function


из js-скрипта

скрытый текст

Выделить код

Код:

var prgpath="C:\\ZyXel\\cmd.bat";
var args = ['-open','"c:\\program','files','(x86)\\Mozilla Firefox\\reboot.vbs"'];
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(prgpath);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file);
process.run(false, args, args.length);


выдаёт ошибку

скрытый текст
0b7503e77884.jpg

Путь к .bat   C:Zyxel\cmd.bat"
Путь к .vbs   C:\Program Files (x86)\Mozilla Firefox\reboot.vbs

OS: Win10x64   
FF: v.27.0.1 , v.35.0.1 , v.47


Кто в теме, подскажите причину возникновения такой ошибки

Mirex
Такая же ерунда была , пока к этим файлам не добавил telnet.exe (в одну папку).

Путь до telnet.exe прописать нельзя было?