necesito una mente creativa que me ayude

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

necesito una mente creativa que me ayude

Mensaje por iamchavo »

Alooha pequeños integrantes de autoit ,me a surgido un inconveniente.
me cree un programa que le veo exito ,por asi desirlo el programa usa el firefox y la magia del programa es un javascript que se escribe en el navegador, para efectuar la operacion.la cosa es que ese javascript es como la posima secreta de la coca cola , o el secreto del chef para que le salga la comida tan rica :P ,entonces necesito conseguir alguna forma para que las personas que usen el programa no logren ver el javascript,porque si ven que era tan simple van a decir (.- aaah era eso , entonces dejo de usar el programa y lo hago amano yo ).

Estaba pensando en minimizar la ventana de firefox y que en modo oculto ponga en el navegador ese javascript y a los 10 segundos le maximize la ventana.(todo esto con el mouse y teclado bloqueado).

Ppero talvez existan otras cosas mas simples y por mi bajo conocimiento en autoit no las sepa.

Espero su ayuda :)


Graaacias :D
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: necesito una mente creativa que me ayude

Mensaje por BasicOs »

Seguro que otro te puede decir algo más, pero te diría que todo está inventado en ese sentido y que puedes ser generoso si lo deseas. Lo que importa, según mi punto de vista, es venderte TU y no tu programa que ya lo sacará otro más adelante.

Hay mucho sobre código libre en el foro. Pero esa idea que piensas es del siglo XX y estamos en el XXI. Abre tus scripts...
Además siempre podrás seguir sacando cambios, modificaciones y otros escripts nuevos...

Si te podemos ayudar lo haremos, pero abre tu mente hacia la WEB y la web se abrirá a tí, sino diselo a Google como le va abriendose, y las discográficas o a MS no les va tan bien con su error de planteamiento o desenfoque...

Antes que nada diviertete gozando con lo que haces!!! :smt026 :smt026 :smt026 :smt031 :smt030 :smt041 :smt041 Si haces feliz con una buena acción a los demás tambien te responderan, al menos algunos, que son los verdaderos e importantes. A los otros se los llevará lejos, el tiempo .. :smt013 :smt027 ...

Salu2:)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: necesito una mente creativa que me ayude

Mensaje por Ximorro »

A todo estos ¿qué problema resuelve ese programa tan maravilloso? no te digo que nos digas cómo es el script, sino lo que hace.

Te recomiendo, si es tan maravilloso el programita, que lo registres, ponle un copyright y una licencia de uso que se ajuste a tus gustos. Después de eso no hace falta tanta protección informática, tendrás la legal.
También se lo puedes vender a M$ antes de que te lo roben ;-)

Por otro lado me gustaría indicarte que si la idea es tan maravillosa, igual consigas mayor satisfacción mostrándola al mundo y diciendo claramente "esta maravillosa idea es mía". Es complementario a lo anterior, la tienes protegida, es tuya, pero todo el mundo lo puede ver y cuando lo usa en sus páginas tiene que poner tu nombre. Si lo haces público y es tan bueno la gente lo usará, y tu nombre se expandirá por el universo. Si no lo haces público alguien encontrará una alternativa por su parte, la hará pública, y aunque sea más fea o ineficiente que la tuya será su nombre el que se expanda por el universo ;-)

Por lo que dices entiendo que tu script tarda 10segs en ejecutarse y por eso quieres impedir que el usuario haga algo durante ese tiempo. Pero la solución que propones no mola nada, piensa que paralizas al usuario durante 10 segs, le quitas el control para todo, no sólo el navegador, es como si el ordenador estuviera bloqueado y no mola. Mejor obliga a que tu página se abra en otra ventana, oculta esa ventana y trabaja en ella sin que el usuario la pueda tocar (está oculta). Y mientras haces eso, al menos muestra un mensaje diciendo que el programa está trabajando, si no parecerá que la pagina no se ha abierto...

Saludos...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

es para facebook , cuando creas un grupo o evento tenes que clickear uno por uno a todos tus amigos ,y si tenes 500 es un monton de tiempo perdido , teniendo en cuenta que ahi muchisima gente que crea grupos y eventos le veo exito.la cosa es que esto que qiero hacer es poniendo un javascript que los selecciona a todos en 1 segundo ,pero puse 10 ya que automatizandolo hize que aprete ctrl + L y vaya escribiendo el script y luego aprete enter. y listo todos seleccionados.
Entonces por eso era el tema de querer ocultarlo ya que de lo contrario la gente no se gastaria el trabajo de abrir mi programa ,porque para eso copia y pega el script y listo. :smt022
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: necesito una mente creativa que me ayude

Mensaje por Jonny »

Hola

Desde la suposición, pues no uso Firefox...
Pero, me temo que en este aspecto es igual que el Ie. Si tiene una opción para ver el código de la página, poco vas a poder hacer. Incluso, diría, que aún oculta... algún cerebrito (en caso de gustarle muchomuchomucho) lo que hace este programa, conseguiría el código.
podríamos probar con snifers, y cosas similares...

Yo coincido con basicos. Si te dedicas al desarrollo de portales, software o lo que sea, está bien que intentes proteger lo que hagas, pero en este caso, no lo veo tan necesario, pues páginas que hacen cosas muy buenas no se molestan tanto en ocultar sus códigos fuentes, pues en páginas web, es casi imposible a menos que (aquí te doy una pista) lo hagas con lenguajes del lado servidor.
Oséa, que si quieres guardar realmente bajo llave tu código ve pensando en montar un servidor y programarlo todo con php, asp etc, así nadie lo verá.
Pero repito, que otras páginas con códigos que les habrá supuesto seguramente un buen trabajo e incluso con copyrights de por medio, no se preocupan tanto por ello...
También estoy de acuerdo, en que la mejor protección, es la legal Xd.

¡Felices fiestas!

Salu2!
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

muchas grax por las respuestas xD ,para simplificar todo el problema le muestro el javascript

javascript:elms=document.getElementById('friends').getElementsByTagName('li');for(var fid in elms){if(typeof elms[fid] === 'object'){fs.click(elms[fid]);}}

lo que quiero hacer es que minimize la ventana de firefox y aprete Ctrl + L ( para poner una nueva url) y escriba ese javascript y una vez escrito le de a ENTER.
ahi es mucho mas simple xD jaja.

de todas manera ahi alguna forma de que no sea necesario tener que escribir eso en el navegador, osea que lea el codigo fueten y vaya buscando los elementos ('friends') , ('li') ,etc

si todo esto se puede hacer si usar el addon MozRepl mejor , porque nose si la gente va a tener ganas de descargar 2 programas xD. queria hacerlo bien simple :)

muchas grax :D
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: necesito una mente creativa que me ayude

Mensaje por Ximorro »

Pues hombre, una manera de ocultar el código (aunque ahora no haga tanta falta, chico, no sé para qué tanto secreto, yo no lo voy a usar pero gracias por compartir) es hacer el programa totalmente en AutoIT.
Yo en web no he trabajado con AutoIt pero no pinta tan difícil, básicamente es lo mismo que haces en el javascript pero desde AutoIT: te descargas la página, vas buscando los tags "friends", los "li", y ejecutas el enlace que tendrá asociado, que es lo que hace al pulsar sobre él).

En ese caso no hace falta minimizar nada, pues el proceso lo hace AutoIt y no se ve en la línea de url del navegador.

Supongo que totalmente fuera del navegador es más difícil, porque el programa tendría que loguearse y tal, supongo que es mejor interactuando a través del navegador. Como digo no tengo mucha experiencia en esto pero si pones un programa medio funcional seguro que lo acabamos. Además por aquí hay gente que sí controla en esos temas así que adelante.

Y no te preocupes, que aunque se haga el programa ayudando entre todos la idea es tuya, eso no te lo quita nadie.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

muchas grax :)
el problema ahora es que tengo que empezar a aprender bien autoit jaja, que me recomiendas que lea en la ayuda que viene con el autoit , para poder descargar la pagina y que busque los tags ?

pero esto de la ayuda serviria para internet explorer , el motivo por el cual lo hago en firefox es que en internet explorer esta parte de facebook los amigos estan divididos de a 20 en paginas ,en cambio en firefox estan todos en 1 sola pagina, osea que si uso ese script en ie solo me va agarrar los de esa pagina sola (osea 20) y si lo uso en firefox agarra a todos los amigos ya sean 20 ,40,etc
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: necesito una mente creativa que me ayude

Mensaje por Chefito »

Haber, como ya te dije si te quieres meter con firefox vas a tener que utilizar la librería udf ff.au3, con la consecuencia de obligar al usuario a tener que tener el firefox y encima instalar el addon que necesita.
iamchavo escribió:pero esto de la ayuda serviria para internet explorer , el motivo por el cual lo hago en firefox es que en internet explorer esta parte de facebook los amigos estan divididos de a 20 en paginas
Puede que tengas que intentar atacar la página web del ie donde se cargan esos 20 amigos y hacer que se cargen todos. Supongo que se pueda hacer, y puede que esa solución sea más facil de implementar.
Yo lo probaría, pero como bien sabes no tengo facebook para intentarlo. Si me das alguna dirección donde salgan más de 20 amigos lo intentaremos entre varios.

Y otra cosa. Como veo que te estas metiendo mucho en este tema, te vuelvo a recomendar el consejo que te dió en su día nuestro compañero piranga8 de meterte a saco con la api de facebook. Con esto podrás hacer verdaderas maravillas. Te recuerdo la dirección: http://wiki.developers.facebook.com/.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

la verdad que todo este tema me encanta ,pero nunca tengo el tiempo suficiente para aprenderlo bien ,deberia de empezar de 0 haber si logro agarrarle la mano, porque verdaderamente me gusta .

con respecto a la cuenta te paso una de un amigo

name: [email protected]
pass: sotomura3

cuando estes adentro entra a este link que es un grupo de ejemplo y ahi esta la parte donde tengo que usar el javascript.

http://www.facebook.com/group.php?gid=1 ... 9571655587

javascript:elms=document.getElementById('friends').getElementsByTagName('li');for(var fid in elms){if(typeof elms[fid] === 'object'){fs.click(elms[fid]);}}

coloca el javascript en el navegador asi ves como funciona
tambien si haces click en la primera imagen y apretas TAB y EnTER los selecciona,pero eso ya es muchas perdida de tiempo jaja
=======================================================00
y queria preguntar algo , como hago para hacer que un programa siga andando solo si la ventana de firefox esta maximizada a la vista ,no que este primero maximizado por ejemplo un bloc de notas, internet explorer y despues la ventana de firefox .sino que en primer lugar tenga que estar si o si manximizada la de firefox antes que esas dos del ejemplo. de lo contrario que aparesca un msgbox que diga ,no esta maximizado firefox.por ejemplo.
=======================================================00

espero que puedan ayudarme saludoos :)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: necesito una mente creativa que me ayude

Mensaje por Ximorro »

Una cosa, una cosa, ¿pinchando una imagen y pulsando TAB y ENTER se hace? pues hombre, en AutoIT más que pérdida de tiempo eso seguramente es pero que mucho más fácil que buscar los enlaces de todos los amigos. Sólo tienes que hacer una búsqueda, la de la imagen, y lo de pulsar TAB y ENTER con AutoIT es trivial.

Como dice Chefito, probablemente en Explorer habrá alguna opción de "mostrar todos" para ver la lista completa, o algo así. Curiosa la diferencia entre navegadores, suele haberlas pero esta es curiosa.
De todas maneras si lo haces con AutoIT yo intentaría que no tuviera que ir con un navegador concreto, además de evitar sorpresas al script no obligas al usuario a usar algo concreto. Mira por donde yo por ejemplo uso Firefox, pero no todo el mundo lo tiene.
Lo mejor será usar la librería IE.au3, o si te ves valiente más a pelo con el objeto COM Shell.Explore. La alternativa es distribuir el add-on para Firefox con tu programa, y decir al usuario que se va a instalar si no lo tiene, y que elija...

Respecto a la otra cuestión, no es problema que el script se esté ejecutando a la vez que otros programas, sea el navegador o cualquier otra cosa, y también da lo mismo si esos otros programas están maximizados o no, o cuál está en primer plano. Estás acostumbrado a tener varios programas ejecutándose a la vez en Windows, para eso es multitarea, y los programas de AutoIT no son especiales en esto (¡menos mal!).

Lo que tiene que hacer el script es entrar en un bucle repetitivo donde estés esperando alguna acción o evento (como el maximizado de Firefox, por ejemplo).

Mira, te pongo un ejemplo, abajo lo explico:

Código: Seleccionar todo

$Clase = "MozillaUIWindowClass"
$ClaseBusq = "[CLASS:" & $Clase & "]"

;Esperamos a que esté abierta
WinWait($ClaseBusq)
$hVent=WinGetHandle($ClaseBusq)
MsgBox(0, "Cazada", "Ventana Encontrada")

;Ya está abierta, ahora esperamos en un bucle a que esté maximizada
While NOT BitAND(WinGetState($hVent), 32)
	Sleep(20)
WEnd
MsgBox(0, "Cazada", "Ventana MAXIMIZADA")
Este programa espera hasta que haya una ventana de navegador Firefox (no necesariamente activa) y cuando la encuentra espera a que se maximice. Nuestro script no tiene que estar "activo", se está ejecutando en segundo plano.

Para buscar la ventana buscamos su clase, para Firefox es MozillaUIWindowClass, si alguien no lo tiene y quiere usar por ejemplo el notepad, pues que ponga $Clase = "Notepad". Por cierto, estas cosas las he averiguado con la herramienta Au3Info que viene con AutoIt.

Si quieres usar una ventana Firefox en concreto tendrás que usar otro modo de identificar la ventana, como el texto del título de la misma.

Además de lo que te decía del bucle repetitivo, que también vemos luego, AutoIt tiene algunos comandos que "esperan a que ocurran cosas". Por ejemplo WinWait espera a que la ventana especificada exista, si ya existe finaliza inmediatamente. Pero mientras no exista ahí estará esperando, él solito, no tenemos que hacer nada.

Hay otros comandos parecidos, como WinWaitActive, (espera que esté activa), WinWaitNotActive (espera a que NO esté activa), WinWaitClose (espera a que NO exista). Por cierto, todas estas funciones tienen un parámetro de time-out, es decir, puedes decir que por ejemplo se esperen como mucho 30 segundos, para que no se quede esperando para siempre.

Para no estar siempre buscando con el método del título o la clase, en cuanto la encuentro me guardo su manejador de ventana de Windows (con WinGetHandle), eso hará futuros accesos mucho más rápido, pues en vez de decirle "búscame una ventana con este título o clase" le decimos "coge directamente esta ventana".

Después viene un bucle que espera la maximización.
Es un bucle While, esto ejecuta lo que tiene dentro mientras se cumpla la condición. Así que decimos "mientras no esté maximizado te esperas".
Eso en AutoIT se ve con WinGetState, que según el numerito que devuelve te dice si está maximizada, minimizada, visible, etc. Como realmente no es un número para cada caso sino que activa bits, hay que mirarlo con BitAND, tal como se puede ver en el ejemplo en la ayuda.

El Sleep es para que nuestro programa realmente "espere", si no lo ponemos estará ejecutándose tan rápidamente, mirando el WinGetState tantas veces por segundo, que colapsará la CPU. Con una simple espera de 20 milisegundos entre cada comprobación, a pesar de ser mucho (50 veces por segundo está bien ¿no?) el consumo de CPU me baja a 0%, es decir, insignificante.

El bucle se puede hacer más genérico, aunque menos compacto. Una idea es hacer un bucle infinito, dentro del bucle comprobamos la condición y si ésta se cumple abortamos el bucle. Esta manera permite comprobar condiciones mucho más complejas (por ejemplo que requieran varias líneas de código), y muchas condiciones simultáneamente. En nuestro caso quedaría asi:

Código: Seleccionar todo

While True
	If BitAND(WinGetState($hVent), 32) Then
		MsgBox(0, "Cazada", "Ventana MAXIMIZADA")
		ExitLoop
	EndIf
	Sleep(20)
WEnd
Al hacer While True, como lógicamente True por definición siempre es cierto, el While se ejecuta continuamente. Luego comprobamos la condición con un IF, y si ésta se cumple abortamos el bucle infinito con ExitLoop (así que no era tan infinito, si eso os había asustado :smt002 )

Espero que sirva de ayuda el mini-tutorial, a ver si te anima a hacer más cositas en AutoiT. Sobre lo que decías de mirar documentación, si no te asusta el inglés lógicamente la mejor fuente es la propia ayuda del lenguaje. ¡Suerte!
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: necesito una mente creativa que me ayude

Mensaje por Chefito »

Mmmmmm......no puedo entrar en la cuenta. Por lo visto detecta que estoy entrando desde otro equipo no habitual (supongo que en un principio dejará alguna cookie en el ordenador) y me pide confirmación con la fecha de nacimiento.....y por supuesto no la se :smt004 .

Y por cierto, he mirado el javascript, y sin ejecutarlo se ve lo que hace :smt003 . No es tan dificil el secreto :smt005 .
Eso que hace el javascript seguramente lo puede hacer el autoit con sus funciones :smt003 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Automatización envio invitaciones amigos facebook

Mensaje por Chefito »

Esto sería un pequeño ejemplo de automatización en el envio de inviataciones a todos tus amigos del facebook a traves de las funciones de IE que tiene autoit. No es la mejor manera de hacerlo pero bueno. Recomiendo hacerlo con su api...aunque la he estado mirando por encima y he visto que era un poco liosa. Por esta causa ni lo he intentado, ya que entre otras cosas esta api no me interesa mucho :smt016 .
El script se puede mejorar poniendo tratamiento de errores por si acaso falla alguna carga de página o que se yo. Eso lo dejo para el que le interese.
Por supuesto teneis que poner vuestro correo y vuestra password para que funcione.
El script lo primero que hace es meterse al facebook y luego va señalando todos los amigos página por página. Al final envia las invitaciones.
Si quereis ver lo que va haciendo, poner visible el _IECreate ($oIE=_IECreate("http://www.facebook.com/login.php")).

Código: Seleccionar todo

;Script ejemplo para automatización del envio de invitaciones a todos tus amigos del facebook realizado por chefito ;)
#include <IE.au3>
TrayTip("Envio de invitaciones en Facebook","Se está procediendo a enviar invitaciones a todos tus amigos...",5,1)
$oIE=_IECreate("http://www.facebook.com/login.php",0,0)
$oEmail=_IEGetObjById($oIE,"email")
If @error=0 Then $oEmail.value="tu cuenta de correo"	;aquí va el correo del usuario.
$opass=_IEGetObjById($oIE,"pass")
$opass.value="tu clave"	;aquí va la password del usuario.
$oForm=_IEFormGetObjByName($oIE,"login_form")
_IEFormSubmit($oForm)
_IENavigate($oIE,"http://www.facebook.com/groups/edit.php?members&gid=199571655587")
Local $numpagina=1,$salir
Sleep(100)
While 1
	_IENavigate($oIE,"javascript:elms=document.getElementById('friends').getElementsByTagName('li');for(var fid in elms){if(typeof elms[fid] === 'object'){fs.click(elms[fid]);}}",0)
	Sleep(100)
	$salir=1
	$numpagina+=1
	$olinks=_IELinkGetCollection($oIE)
	$iNumLinks = @extended
	For $oLink In $oLinks
		If $oLink.innertext=$numpagina Then 
			$oLink.click
			$salir=0
		EndIf
	Next
	If $salir Then 
		ExitLoop
	EndIf

WEnd
$EnviarInvitaciones=_IEGetObjById($oie,"send")
$EnviarInvitaciones.click
_IEQuit($oIE)
TrayTip("Envio de invitaciones en Facebook","Se enviaron todas las invitaciones a tus amigos con éxito",5,1)
Sleep(5000)
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

muchas grax chefito ,era lo que necesitaba :) , lo probe y funciona perfect pero solo que me selecciona a los de la primera pagina nada mas y se traba ahi,no avanza hacia la siguiente pagina. ¿que podra ser ?

saludos señor :)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: necesito una mente creativa que me ayude

Mensaje por Chefito »

Mmmmm.....si se te traba en la 1º página no funciona perfectamente :smt016 . No se, a mi me va bien. Lo he probado varias veces y me va bien.
Mira a ver el 2º sleep y si eso metele algo más de tiempo.
Dime en el sitio que se te traba y ya veremos que se puede hacer al respecto.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: necesito una mente creativa que me ayude

Mensaje por Ximorro »

¡Muy instructivo el ejemplo! Como no uso autoit con web no conozco mucho esta udf, pero veo cosas muy interesantes en el ejemplo, como la manera de rellenar los campos de un formulario y mandarlo, lo de recoger links (_IELinkGetCollection)... ¡Muy interesante!

Además, iamchavo, usa directamente tu javascript, ¿ves cómo al final te ha beneficiado ponerlo?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: necesito una mente creativa que me ayude

Mensaje por iamchavo »

la verdad que si ,al final sirvio compartirlo :), muchas grax por toda su colaboracion ,si tengo alguna duda mas nos estaremos viendo devuelta por aca jaja.

saludos a todos :D
Responder