Función para que si está abierta una página determinada, escriba el usuario y contraseña?

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

Davpeli
Posts: 3
Joined: 13 Feb 2017, 08:33

Función para que si está abierta una página determinada, escriba el usuario y contraseña?

13 Feb 2017, 09:03

Hola,

Quiero saber si hay alguna función que si está abierta y activa una página determinada, escriba el usuario y la contraseña.

Para más detalles, quiero hacer un script que si está abierta y activa una página introduzca el user y el pass, si está abierta otra página inserte ese user y pass. Vamos, que dependiendo de la página web que esté abierta y activa introduzca el user y la contraseña correspondiente.


Muchas gracias.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

13 Feb 2017, 09:45

Hola,
Siendo que los navegadores guardan el usuario y contraseña, ¿cual sería su utilidad exactamente?.
Si quieres que funcione en cualquier navegador, puedes asignar la función a una tecla. Tal vez algo como esto:

Code: Select all

Datos := {		  "Titulo Ventana 1"		:		["Usuario1", "Contraseña1"]
						, "Titulo Ventana 2"		:		["Usuario2", "Contraseña2"]
						, "Bloc de notas"			:		["UsuarioX", "ContraseñaX"]		}

F1::
WinGetTitle, ATitulo, A
for Titulo, Dato in Datos {
	if (InStr(ATitulo, Titulo)) {
		SendRaw % Dato[1]
		Sleep 250
		SendInput {TAB}
		Sleep 250
		SendRaw % Dato[2]
		break
	}
}
return
Para el ejemplo, intenta abrir el bloc de notas y presiona F1.
Davpeli
Posts: 3
Joined: 13 Feb 2017, 08:33

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

14 Feb 2017, 08:09

Hola,

Ya sé que los navegadores guardan las contraseñas, pero no en todas las páginas se insertan bien, yo quiero simplemente que cuando esté en x página y pulse una tecla o una serie de teclas, inserte el user y pass, y si estoy en otra página inserte el user correspondiente a esa página. O sea, con una tecla o serie de teclas me sirve para todas las páginas, es muchísimo más cómodo.

pd: puedes ponérmelo con alguna página de ejemplo? Bueno, mejor 2 páginas, porque veo que sólo me has puesto para una página, y no sé cómo hacer el cript para 2 páginas o más.

Muchas gracias.
Flipeador wrote:Hola,
Siendo que los navegadores guardan el usuario y contraseña, ¿cual sería su utilidad exactamente?.
Si quieres que funcione en cualquier navegador, puedes asignar la función a una tecla. Tal vez algo como esto:

Code: Select all

Datos := {		  "Titulo Ventana 1"		:		["Usuario1", "Contraseña1"]
						, "Titulo Ventana 2"		:		["Usuario2", "Contraseña2"]
						, "Bloc de notas"			:		["UsuarioX", "ContraseñaX"]		}

F1::
WinGetTitle, ATitulo, A
for Titulo, Dato in Datos {
	if (InStr(ATitulo, Titulo)) {
		SendRaw % Dato[1]
		Sleep 250
		SendInput {TAB}
		Sleep 250
		SendRaw % Dato[2]
		break
	}
}
return
Para el ejemplo, intenta abrir el bloc de notas y presiona F1.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

14 Feb 2017, 09:40

Ya sé que los navegadores guardan las contraseñas [...]
Nunca dije lo contrario, solo me preguntaba la razón, ya que yo nunca tuve esos problemas.
veo que sólo me has puesto para una página
No te lo he puesto para ninguna página, fue solo un ejemplo. Donde dice 'título de la ventana' debes poner el título que se muestra en la pestaña de tu navegador (o parte de él), luego modificas donde dice usuario y contraseña que está en el lado derecho.
Para más páginas solo debes repetir , "Titulo Ventana 2" : ["Usuario2", "Contraseña2"].
Para entender mi ejemplo, deberías leer esto: Objects.
puedes ponérmelo con alguna página de ejemplo?
Página: Deviantart

Code: Select all

Datos := {		  "Titulo Ventana 1"		:		["Usuario1", "Contraseña1"]
						, "Deviantart"				:		["Usuario2", "Contraseña2"]
						, "Bloc de notas"			:		["UsuarioX", "ContraseñaX"]		}

F1::
WinGetTitle, ATitulo, A
for Titulo, Dato in Datos {
	if (InStr(ATitulo, Titulo)) {
		SendRaw % Dato[1]
		Sleep 250
		SendInput {TAB}
		Sleep 250
		SendRaw % Dato[2]
		break
	}
}
return
Espera a que cargue y presiona F1.
Davpeli
Posts: 3
Joined: 13 Feb 2017, 08:33

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

14 Feb 2017, 19:35

Hola,

Muchas gracias, me ha servido pero con un matíz, sólo para algunas páginas necesito que antes de introducir el usuario, haga uno o dos TAB porque sino no se posiciona automáticamente en la casilla del user. Hay alguna forma de que haga eso en esa o esas páginas en concreto? Me da igual si tengo que rellenar 20 líneas para cada página haciéndola una a una, tampoco son tantas páginas, unas 15-20.

Flipeador wrote:
Ya sé que los navegadores guardan las contraseñas [...]
Nunca dije lo contrario, solo me preguntaba la razón, ya que yo nunca tuve esos problemas.
veo que sólo me has puesto para una página
No te lo he puesto para ninguna página, fue solo un ejemplo. Donde dice 'título de la ventana' debes poner el título que se muestra en la pestaña de tu navegador (o parte de él), luego modificas donde dice usuario y contraseña que está en el lado derecho.
Para más páginas solo debes repetir , "Titulo Ventana 2" : ["Usuario2", "Contraseña2"].
Para entender mi ejemplo, deberías leer esto: Objects.
puedes ponérmelo con alguna página de ejemplo?
Página: Deviantart

Code: Select all

Datos := {		  "Titulo Ventana 1"		:		["Usuario1", "Contraseña1"]
						, "Deviantart"				:		["Usuario2", "Contraseña2"]
						, "Bloc de notas"			:		["UsuarioX", "ContraseñaX"]		}

F1::
WinGetTitle, ATitulo, A
for Titulo, Dato in Datos {
	if (InStr(ATitulo, Titulo)) {
		SendRaw % Dato[1]
		Sleep 250
		SendInput {TAB}
		Sleep 250
		SendRaw % Dato[2]
		break
	}
}
return
Espera a que cargue y presiona F1.
User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

14 Feb 2017, 20:58

Ok, quitemos el objeto entonces.
Fíjate la parte comentada, para agregar más páginas repites lo mismo.
Este ejemplo que te pongo es solo para la página Deviantart. Modifica agregando más sitios y utilizando el comando SendInput para hacer lo que quieres.

Code: Select all

F1::
;recupera el título de la entana activa
WinGetTitle, ATitulo, A


; --------------------------------------------------------------------------------------------------------------------------------------------------
;esto es para la página Deviantart.
;para agregar más páginas, repetir todo esto --->
if (InStr(ATitulo, "Deviantart")) { ;Deviantart es parte del título de la ventana.
	SendRaw Usuario ;envia el texto Usuario.
	Sleep 250 ;espera 250 milisegundos.
	SendInput {TAB} ;esto envía un TAB, usar {TAB 2} para precionar 2 veces la tecla TAB.
	
	;más de lo mismo.
	Sleep 250
	SendRaw Contraseña
} ; <---
; --------------------------------------------------------------------------------------------------------------------------------------------------


; --------------------------------------------------------------------------------------------------------------------------------------------------
	; AGREGA MÁS PÁGINAS REPITIENDO EL CÓDIGO ANTERIOR
; --------------------------------------------------------------------------------------------------------------------------------------------------
return
Hay alguna forma de que haga eso en esa o esas páginas en concreto?
Esa es la forma. fíjate los comandos utilizados y lee la documentación para entenderlo.
Pornografo

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

03 Dec 2018, 16:14

Hola Davpeli,

He llegado algo tarde con esta respuesta sin embargo puede que le funcione a alguien mas, en fin. Yo subo videos porno en XXX utilizando múltiples cuentas y conectándome desde diferentes países mediante un proxy. Obviamente memorizar los datos de login de todas las cuentas es un problema, para solucionarlo me escribí un código en AHK que te compartiré a continuación. Debes tener en cuenta que está escrito para el navegador Google Chrome que está ajustado en la mitad izquierda de mi pantalla por que en la mitad derecha utilizo otro programa y que mi pantalla tiene una resolución de 1366x768, menciono esto por si deseas probar el código tal y cual estás escrito. De igual forma si utilizas el navegador Chrome solo deberás editar las coordenadas de los clicks, el usuario, la contraseña y la url de login para adaptarlos a tus necesidades.

Con este script al presionar la combinación de teclas {CONTROL} {SHIFT}{p} entra a la pagina de login y se logea con los datos de usuario1 y con la combinación de teclas {CONTROL} {SHIFT}{q} lo hace con los datos de usuario2. Dicho esto creo que es bastante obvio lo que se debe hacer para añadir mas usuarios.

Code: Select all

#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Window
SendMode Input
#SingleInstance Force
SetTitleMatchMode 2
#WinActivateForce
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1

+^p::
WinActivate, ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe  ; Activa la ventana de GoogleChrome si esta abierto el navegador.
Sleep, 600
Send, {F6}  ; Atajo de teclado de Chrome para seleccionar la barra de direcciones.
Sleep, 333 
SendRaw, https://www.XXX.com/account  ; Envía texto con la url de la página de login.
Sleep, 333
Send, {Enter}  ; Teclea enter para ir a la url enviada.
Sleep, 15000 ; Espera 15 segundos mientras se carga la página. EN MI CASO 15 Seg. por que tarda conectar mediante el proxy.
Click, 88, 286 Left, 1 ; Hace click en la coordenada donde se localiza el campo "USUARIO"
Sleep, 200
SendRaw, [email protected]  ; Envía texto con el nombre de usuario.
Sleep, 600
Click, 88, 356 Left, 1 ; Hace click en la coordenada donde se localiza el campo "CONTRASEÑA"
Sleep, 200
SendRaw, contraseña1  ; Envía texto con la contraseña.
Sleep, 600
Click, 202, 442 Left, 1 ; Hace click en la coordenada donde se localiza el botón "INICIAR SESIÓN"
Return

+^q::
WinActivate, ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe  ; Activa la ventana de GoogleChrome si esta abierto el navegador.
Sleep, 600
Send, {F6}  ; Atajo de teclado de Chrome para seleccionar la barra de direcciones.
Sleep, 333 
SendRaw, https://www.XXX.com/account  ; Envía texto con la url de la página de login.
Sleep, 333
Send, {Enter}  ; Teclea enter para ir a la url enviada.
Sleep, 15000 ; Espera 15 segundos mientras se carga la página.
Click, 88, 286 Left, 1 ; Hace click en la coordenada donde se localiza el campo "USUARIO"
Sleep, 200
SendRaw, [email protected]  ; Envía texto con el nombre de usuario.
Sleep, 600
Click, 88, 356 Left, 1 ; Hace click en la coordenada donde se localiza el campo "CONTRASEÑA"
Sleep, 200
SendRaw, contraseña2  ; Envía texto con la contraseña.
Sleep, 600
Click, 202, 442 Left, 1 ; Hace click en la coordenada donde se localiza el botón "INICIAR SESIÓN"
Return

Escape::ExitApp ; Si tecleas Escape cierra el script.
Saludos ... espero sea de ayuda.
alfema
Posts: 32
Joined: 04 Sep 2015, 11:04

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

16 Dec 2018, 13:22

Se me ocurre otra posible solución:

Teclear pwd por ejemplo en el campo usuario y que en función del sitio web ponga una contraseña u otra, por ejemplo:

Code: Select all

::pwd::
SetTitleMatchMode, 2	; No es necesario poner el título completo, solo parte

WinGetTitle, vTituloVentana

If (vTituloVentana = "Google")
	{
	SendInput {Raw]usuario{Tab}
	SendInput {Raw}contraseña
	}
Else If (vTituloVentana = "Hotmail")
	{
	SendInput {Raw]usuario{Tab}
	SendInput {Raw}contraseña
	}
Else If (vTituloVentana = "Yahoo")
	{
	SendInput {Raw]usuario{Tab}
	SendInput {Raw}contraseña
	}

Return
devnullsp
Posts: 73
Joined: 21 Nov 2017, 09:00

Re: Función para que si está abierta una página determinada, escriba el usuario y contraseña?

05 Feb 2019, 17:03

Si es IE se puede hacer muy facil con webscraping....

Con el Chrome también pero hay que tirar de bajarse algún software más....

Un Saludo,

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 22 guests