Visual Basic - automatizar tarea

Life is soft - evento anual de software empresarial
   
Vista:

automatizar tarea

Publicado por omgomg (10 intervenciones) el 18/07/2008 02:52:19
La verdad estudie programacion en visual, C , php (ninguno a conciencia aun) y me ineteresaria automatizar varias tareas que realizo diariamente en el pc.

Me gustaria saber como podria manejar el sistema oprativo y los demas programas. supongo que emulando pulsaciones del teclado se podria pero no estoy seguro, algo asi como alt+tab, dos veces al tab, pulsar la tecla A 5 veces...

seria utilizando alguna api de windows , no se si podria desarrollar alguna aplicacion q se kedara en segundo plano trabajando sobre otras aplicaciones a base de pulsaciones de teclas o el propio visual basic ya me vale sin necesidad de apis de win... alguna idea ? supongo q mucho habra querido automatizar cosas asi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:automatizar tarea

Publicado por omgomg (10 intervenciones) el 18/07/2008 04:21:14
por si sirve de ejemplo, lo unico que vi parecido a lo que intento y creo q no se explicar es cuando instalas un win xp ue y despues de pedir la lista de app extras que se van a instalar, se corre un codigo (.bat ???) que va escribiendo y haciendo next en los programas que se van instalando. no es de cada instalador de cada aplicacion porque ya comprobe si ejecutando yo mismo estas aplicaciones se automatizaba esta tarea y la respuesta es no. en fin no vi nada parecido a lo que pido. xD ni se que tipos de palabras buscar para llegar a esta info.

un saludo y gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por omgomg (10 intervenciones) el 18/07/2008 21:13:53
me contesto yo mismo, el comando se llama sendkeys, y no lo conocia xDDD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por igor (633 intervenciones) el 18/07/2008 23:59:03
Me alegro que hayas encontrado sendkeys. Aunque seguro que se quedara pequeño a medida que quieras automatizar las tareas.

Como bien decías, la respuesta está en las API, ya que windows se diseñó pensando en que cada aplicación no tubiera acceso al resto de aplicaciones para evitar problemas de memoria y manipulación indevida.

Si necesitas ayuda con la API puedes preguntarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por omgomg (10 intervenciones) el 19/07/2008 01:04:30
ya se me quedo pekeño, me ha abierto un mundo que no conocia pero me faltan funciones del tipo "dime el titulo de la ventana q esta activa " (por su puesto esta ventana seria de una aplicacion que no es la mia)

me gustaria por ejemplo que me ponga como activa la ventana con titulo msn messenger, por ejemplo.

seria algo asi:

ventana.activa = ventana.title("msn messenger")

para luego trabajar con sendkeys.send

las apis podrian darme estas posibilidades ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por omgomg (10 intervenciones) el 19/07/2008 02:37:24
yo mismo me contesto, apis de windows, getwindowtext(identificador, buffer, longitudmaxima)

aunke realmente no me sale, consigo guardar en una variable el manejador de la ventana pero a la hora de que la funcion getwindowtext trabaje no lo consigo, retorna 0, y no entiendo el porque :S

identificador = FindWindow(vbNullString, "Windows Live Messenger")
GetWindowText(identificador, nombreventana, 100)

eti1.Text = nombreventana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por igor (633 intervenciones) el 19/07/2008 10:54:50
Con esto podrás buscar todas las las aplicaciones.

Dim CodVentana As Long
Dim CodProceso As Long

CodVentana = GetDesktopWindow()
CodVentana = GetWindow(CodVentana, GW_CHILD)
Do
If IsWindowVisible(CodVentana) Then
GetWindowText CodVentana, Titulo, 255
If Titulo = "Program Manager" Then Titulo = "Escritorio"
End If
CodVentana = GetWindow(CodVentana, GW_HWNDNEXT)
Loop While CodVentana <> 0

Con GetWindow podemos buscar ventanas, pero la jerarquía dentro de windows no es fácil de entender.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:automatizar tarea

Publicado por omgomg (10 intervenciones) el 20/07/2008 01:00:49
encontrado, apis de windows que al fin y al cabo no son tan dificiles de declarar para usarlas, aparte cada exe tiene sus parametros al ejecutarse desde el shellexecute (creo que me ekivoke con vb 2008...estudie con el 2005 pero bueno creo q este me hara la vida mas facil cuando le pille el truco a cada cambio, ademas, la cosa va de que al final tendras q actualizarte si no quieres morir no ?..

bueno igor me dirijo a ti porque eres el unico q contestaste, a ver si me exas una manita y me pasas alguna url con las apis que mas se utilizan para estas cosas.

por cierto, el sendkeys.send y sendkeys.sendwait me estan comiendo la cabeza porke no escriben tal y como les pido, a veces repiten caracter (ejemplo de perro seria ppppeerrooooo ) justo antes tengo una linea q pide ejecutar el msnmsgr.exe con la espera activada a 6000ms (a la aplicacion le da tiempo ejecutarse y sobra tiempo) y al mandar las teclas se me repiten muchas de ellas.

como podria meter una cadena a una caja de texto q no es mia, sin utilizar tab tab tab cadena .??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar