1 (изменено: kefi, 2010-10-04 00:59:03)

Тема: VBS: программно нажать кнопку с окошком подтверждением

Помогите программно нажать кнопку "never_disabled" перезагрузки рутера с подтверждением :
Тут при программном нажатии кнопки CreateObject("InternetExplorer.Application").Document.getElementsByName("never_disabled")(0).Click
вылезает окошко подвтерждения confirm("Перезагрузка Маршрутизатора ?"), а программа висит до его ручного подтверждения :

<input type=button name="never_disabled" value=Перезагрузка onclick="do_reboot();">
<script>
function do_reboot()
{
    if(!confirm("Перезагрузка Маршрутизатора ?")) return;
    var str="";
    str="../sys_cfg_valid.xgi?";
    str+=exe_str("submit REBOOT");
    self.location.href=str;
}
function exe_str(str_shellPath)
{
    var str="";
    myShell = str_shellPath.split(";");
    for(i=0; i<myShell.length; i++)
    {
        if (!is_blank(myShell[i])) str+="&"+"exeshell="+myShell[i];
    }
    return str;
}
</script>

2

Re: VBS: программно нажать кнопку с окошком подтверждением

Set window = Document.parentWindow
window.location.href = "../sys_cfg_valid.xgi?" & window.exe_str("submit REBOOT")
Забыл пароль и потерял e-mail.

3 (изменено: kefi, 2010-10-04 12:23:22)

Re: VBS: программно нажать кнопку с окошком подтверждением

2 shiz >
Да, это можно в данном конкретном случае сделать, но вообще, это приведено для примера,

Что делать, если нельзя будет выудить URL следующего запроса , т.е. можно как-то подавить вызываемое скриптом окно

confirm("Очень мешающее окно с двумя кнопками OK и Cancel, в котором нужно программно нажать OK")

4 (изменено: shiz, 2010-10-04 20:42:51)

Re: VBS: программно нажать кнопку с окошком подтверждением

Перед нажатием кнопки подменить функцию confirm возвращающей истинное значение без вопросов. Возможно, так

window.execScript "function confirm() {return true;}"
Забыл пароль и потерял e-mail.

5

Re: VBS: программно нажать кнопку с окошком подтверждением

2 shiz > Вообще, хотелось бы для случая , когда выходит окошко, которое выдает скрипт, подавить такое окошко

А вообще , как подменить/заменить на свою  функцию "do_reboot();" в атрибуте onclick="do_reboot();" элемента  <input type=button name="never_disabled" value=Перезагрузка onclick="do_reboot();"> ?
PS . Не очень понял, Вы Document в посте выше имеете ввиду от объекта CreateObject("InternetExplorer.Application").Document, созданного в WSH.VBS или говорите о работе скрипта внутри браузера IE ?

6

Re: VBS: программно нажать кнопку с окошком подтверждением

PS . Не очень понял, Вы Document в посте выше имеете ввиду от объекта CreateObject("InternetExplorer.Application").Document, созданного в WSH.VBS или говорите о работе скрипта внутри браузера IE

Уже из того, как я получал объект window в #2, должно быть ясно, что первое. Впрочем, какая разница?

Вообще, хотелось бы для случая , когда выходит окошко, которое выдает скрипт, подавить такое окошко

А что, предложенное решение в #4 не помогает?

А вообще , как подменить/заменить на свою  функцию "do_reboot();" в атрибуте onclick="do_reboot();" элемента  <input type=button name="never_disabled" value=Перезагрузка onclick="do_reboot();"> ?

Set элемент.onclick = GetRef("имя функции, определённой в WSH.VBS")

или

window.execScript "элемент.onclick=function () {/*JS-код в контексте окна браузера*/};"

Мне непонятно, нужно решение конкретной задачи или философские обобщения.

Забыл пароль и потерял e-mail.

7 (изменено: kefi, 2010-10-05 23:09:39)

Re: VBS: программно нажать кнопку с окошком подтверждением

спасибо за ответы выше.
что касательно

shiz пишет:

Мне непонятно, нужно решение конкретной задачи или философские обобщения.

то Вы слишком высоко оцениваете мой вопрос - это не философские обощения, а , как я описал выше, скрипты приведены для примера, - Что делать, если нельзя будет выудить URL следующего запроса ? т.е. НУЖНО НАУЧИТЬСЯ КАК-ТО ДАВИТЬ вызываемое скриптом окно , не всегда ведь возможно разобраться в скриптах, повешенных на события, пусть уже их IE обрабатывает, а вот если скрипты выдают окошки, относительно которых известно, что нужно жать клавишу Enter, то нужно научиться как-то эти окошки подтвержать, т.е. , может, нужно как-то организовывать параллельный процесс (ибо IE в текущем процессе останавливает программу на таких окошках) и из-под него давить эти окошки , или еще как ?...