Página 1 de 1

logeo IE

Publicado: 31 Ago 2011, 19:56
por ary666
Hola, recientemente me e visto en la necesidad de crear automatismos para ciertas cosas y me topo con la herramienta “Autoit” que me pareció muy interesante.
Lo que yo necesito es crear un script para para abrir una pagina y logearme a esta. Esta permite la conexión a internet en mi lugar de trabajo.

El código de la página es el siguiente

Código: Seleccionar todo

<html>
<head>
<title>Web Authentication</title>
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
<!--
DIV.sidebar {
    RIGHT: 0px;
    POSITION: absolute;
    TOP: -1px;
    HEIGHT: 100%;
    width: 200;
}
DIV.graybar {
    RIGHT: 0px; POSITION: absolute; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: #f8f8f8
}
/* background not be shown for NEC */

DIV.header {
    BACKGROUND-POSITION: right 50%; LEFT: 0px; BACKGROUND-IMAGE:  url(images/background_web41.jpg); WIDTH: 100%; BACKGROUND-REPEAT: repeat; POSITION: absolute; TOP: 0px; HEIGHT: 52px; BACKGROUND-COLOR: #FFFFFF}


DIV.content {
    LEFT: 14px; MARGIN: 15px; POSITION: absolute; TOP: 60px
}
H1 {
    FONT-WEIGHT: bold; FONT-SIZE: 19px; MARGIN: 16px 0px 0px 25px; COLOR: #ffffff; FONT-FAMILY: Tahoma, Arial, Helvetica, sans-serif
}
H2 {
    FONT-WEIGHT: bold; FONT-SIZE: 15px; MARGIN: 10px 0px 0px 10px; COLOR: #336666; FONT-FAMILY: Arial, Helvetica, sans-serif
}
INPUT {
    FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif
}
INPUT.button {
    MARGIN-TOP: 10px; FONT-WEIGHT: bold; WIDTH: 80px; COLOR: #ffffff; BACKGROUND-COLOR: #669999
}
P {
    FONT-SIZE: 12px; MARGIN: 0px 0px 10px; COLOR: #001133; FONT-FAMILY: Arial, Helvetica, sans-serif
}
TD {
    FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #336666; FONT-FAMILY: Arial, Helvetica, sans-serif
}
TD.message {
    FONT-WEIGHT: normal; COLOR: #000000
}
-->
</STYLE>
<script language="javascript" src="./loginscript.js"></script>
<script>
    var url = "";
    if(url != ""){
        var link = document.location.href;
        var searchString = "?redirect=";
        var equalIndex = link.indexOf(searchString);
        var redirectUrl = "";
        if(equalIndex > 0) {
                equalIndex += searchString.length;
                redirectUrl += link.substring(equalIndex);
                //attach the redirect url only if the ext web auth url doesn't contain it
                searchString = "&redirect=";
                equalIndex = url.indexOf(searchString);
                if(equalIndex < 0){
                    url+= "&redirect=";
                    url+=redirectUrl;
                }
        }
        window.location.href = url;
    }

function getErrorMsgIfAny(){
 if(document.forms[0].err_flag.value == 1){
    document.writeln(' \
     <tr align="center"> <td colspan="2" style="color:#CC0000">Login Error.</td>\
     </tr><tr align="center"> <td width="350" class="message" colspan="2">The User Name and Password combination you have entered is invalid. Please try again.</td></tr>\
    <tr> <td class="caption" colspan="2"> </td></tr>');
 }else{
   document.writeln(' ');
 }
}
</script>
</head>
<body bgcolor="#ffffff" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<FORM method="post" ACTION="/login.html">
<INPUT TYPE="hidden" NAME="buttonClicked" SIZE="16" MAXLENGTH="15" VALUE="0">
<INPUT TYPE="hidden" NAME="err_flag" SIZE="16" MAXLENGTH="15" VALUE="0">
<INPUT TYPE="hidden" NAME="err_msg" SIZE="32" MAXLENGTH="31" VALUE="">
<INPUT TYPE="hidden" NAME="info_flag" SIZE="16" MAXLENGTH="15" VALUE="0">
<INPUT TYPE="hidden" NAME="info_msg" SIZE="32" MAXLENGTH="31" VALUE="">
<INPUT TYPE="hidden" NAME="redirect_url" SIZE="255" MAXLENGTH="255" VALUE="">
<table border="0" cellspacing=0 cellpading="0" width="100%">
   <tr>
     <td width="180" background="../../images/background_web41.jpg" align="middle" style="padding-bottom: 4px;" >

     <h1>Login</h1>
     </td>

     <td height="53" align="right" style="padding-bottom: 4px; padding-right: 20px;" background="../../images/background_web41.jpg"></td>

   </tr>
   <tr>
        <td align="left" width="400">
        <div class="content">
            <table border="0" cellspacing="10" cellpadding="0">
            <tr>
                <td>
                    <table border="0" cellspacing="10" cellpadding="0">
                        <tr>
                            <th align="left" width="400">
                                Universidad ORT Uruguay - Campus Pocitos
                            </th>
                        </tr>
                        <tr>
                            <td class="message" align="left" width="400">
                                Ingrese su N° de Estudiante y su Contraseña  
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
                <script>
                    getErrorMsgIfAny();
                </script>
            <tr>
                <td>
                    <table border="0" cellspacing="10" cellpadding="0">
                        <tr>
                            <td width="100" nowrap>User Name</td>
                            <td>
                                <INPUT type="TEXT" name="username" SIZE="25" MAXLENGTH="63" VALUE="168305">
                            </td>
                        </tr>
                        <tr>
                            <td nowrap>Password</td>
                            <td>
                                <INPUT type="Password" name="password" emweb_type=PASSWORD autocomplete="off" EMWEB_TYPE=PASSWORD onKeyPress="submitOnEnter(event);" SIZE="25" MAXLENGTH="63" VALUE="40937762666">
                            </td>
                        </tr>
                        <tr>
                            <td> </td>
                            <td>
                                <script>getHtmlForButton("Submit","Submit","button","submitAction()"); </script>
                            </td>
                        </tr>
                    </table>
                </td>
             </tr>

            </table>
        </div>
        </td>
        <td align="right" >
            <table border="0" cellspacing="10" cellpadding="0" >
                <tr>
                    <td align="right" style="padding-top: 25px; padding-right: 20px;"
                        bgcolor="#ffffff" >
                    <div ></div></td>
                </tr>
            </table>   
        </td>
   </tr>
</table>
</FORM>
</body>
<HEAD>
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
</HEAD>
</html>
y el codigo que yo ise es el siguiente

Código: Seleccionar todo

#include <IE.au3>
Opt("WinTitleMatchMode", 2)
$oIE = _IECreate ("https://wlcpocitos.ort.edu.uy/login.html?redirect=www.google.com/search?q=52&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a")
_IELoadWait ($oIE)


$o_form = _IEFormGetObjByName ($oIE, "post")
$o_login = _IEFormElementGetObjByName ($o_form, "username")

$o_password = _IEFormElementGetObjByName ($o_form, "password")
$o_signin = _IEFormElementGetObjByName ($o_form, "Submit")

$username = "168305"
$password = "40937762666"

_IEFormElementCheckBoxSelect ( $o_form, "remMe", "", 0)
_IEFormElementSetValue ($o_login, $username)
_IEFormElementSetValue ($o_password, $password)
_IEAction ($o_signin, "click")
WinSetState ( "Internet", "", @SW_MAXIMIZE )
;ShellExecute("www.ort.eud.uy")
pero lo unico que logro es agrir la pagina

Re: logeo IE

Publicado: 01 Sep 2011, 02:17
por Chefito
Bienvenido al foro.

Respecto a tu problema, decirte que te has equivocado de función. Esta línea está mal:

Código: Seleccionar todo

$o_form = _IEFormGetObjByName ($oIE, "post")
No devuelve ningún objeto a la variable $o_form. "post" no es el nombre (propiedad name) del formulario, es el método que utiliza para enviar sus datos. Este formulario no tiene nombre, por esta causa no puedes utilizar esta función.
Existe otra que te puede servir. Se trata de _IEFormGetCollection, la cual te devuelve una colección de todos los formularios que tiene una página. Le puedes indicar cual quieres con su segundo parámetro. En tu caso como solo hay un formulario sería:

Código: Seleccionar todo

$o_form = _IEFormGetCollection ($oIE, 0)
Si tienes algún otro problema dilo, pero antes busca en el buscador del foro (esquina superior derecha) que tenemos ya hechos y posteados muchos códigos de este tipo.

Saludos.

Re: logeo IE

Publicado: 01 Sep 2011, 23:59
por ary666
Gracias por la ayuda me sirvió de mucho. Lamento no haber podido contestar antes es que estaba con un proyecto y no le había prestado atención.
Ahora aunque todavía no he buscado la manera de hacerlo tal vez vos me podes dar una pista lo que necesito es que al finalizar el proceso que(por cierto anda re bien) podría abrir automáticamente otra página que yo desee en el mimo formulario

Re: logeo IE

Publicado: 02 Sep 2011, 00:14
por Chefito
Abrir otra página en el mismo formulario? Quedrás decir en el mismo IE (Internet Explorer) :smt003 . Eso se hace con la función _ienavigate. Buscala en la ayuda.

En esa udf tienes casi todas las funciones que puedes necesitar para trabajar con páginas web. Analízalas bien.

Saludos.

Re: logeo IE

Publicado: 02 Sep 2011, 00:30
por ary666
Muchas gracias lo are.