Visual Basic.NET - Programa en ejecucion constante

 
Vista:

Programa en ejecucion constante

Publicado por Edgar (6 intervenciones) el 05/05/2010 14:24:13
Hola!

Tengo un problema, quiero hacer un programita muy sencillo, que simplemente me avise con un msgbox cuando voy a escribir y tengo presionada la tecla de mayúsculas.
No hace falta que tenga interfaz grafica, simplemente un icono que lo lance y se quede el mismo iconito en la barra junto a la hora del sistema como otros muchos programas.
Si alguien me puede orientar lo agradezco mucho.

Pd. trabajo con VB.NET 2005

Gracias
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:Programa en ejecucion constante

Publicado por A.F.G.S (47 intervenciones) el 06/05/2010 12:38:22
Hola, te he echo una pequeña "demo" para que veas como va. Luego lo adaptas a tu solucion.

Primero al Form le añadimos un NotifyIcon y en la propiedad Icon del susodicho le pones un icono, si no, no lo veras en la bandeja del sistema.

ESTE ES EL CODIGO COMPLETO:
-----------------------------------------------------------------------

Public Class Form1

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short

Private Const SC_MINIMIZE = &HF020&

' Se sobreescribe el manejador de mensajes de la forma para detectar cuando se minimiza, si no quieres declarar la constante SC_MINIMIZE al verificar los mensajes, puedes replazarla por el valor directo
Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
If CLng(m.WParam.ToInt32) = SC_MINIMIZE Then
NotifyIcon1.Visible = True
ShowInTaskbar = False
End If
End Sub

'Ahora creamos la funcion que detecta la pulsacion de teclas a nivel de windows
' y le especificamos que avise cuando la tecla Bloq. May. este activada.

Private Sub CapturarTeclas()
Dim intAscii As Long
Dim Retorno As Long
Dim respuesta As DialogResult

For intAscii = 8 To 255
Retorno = GetAsyncKeyState(intAscii)
If Retorno = -32767 Then
If My.Computer.Keyboard.CapsLock Then
respuesta = MessageBox.Show("Tecla Bloqueo Mayusculas esta activada", _
"Advertencia", _
MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, _
MessageBoxDefaultButton.Button2)
If respuesta = Windows.Forms.DialogResult.OK Then
MsgBox("Desactiva la Tecla Bloqueo Mayusculas")
End If
End If
End If
System.Windows.Forms.Application.DoEvents()
Next
End Sub

'En la carga de Form principal llamamos a la funcion de detecion de teclas y
' especificamos que directamente se vaya a la bandeja del sistema.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Do
Call CapturarTeclas()
Loop
Me.WindowState = FormWindowState.Minimized
ShowInTaskbar = False
End Sub

' Estra funcion hace visible de nuevo el Form,

Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick

ShowInTaskbar = True
WindowState = FormWindowState.Normal
NotifyIcon1.Visible = False
End Sub

End Class
----------------------------------------------------------------------------------------

Si no entiendes algo pregunta y si te sirve el codigo, porfavor contesta diciendo que te sirve, porque hay gente que pregunta utiliza las respuestas y ni siquiera da las gracias. Ademas otros usuarios sabran si la respuesta es valida y si pueden usarla o no.

Un saludo, Antonio F. Gutierrez
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:Programa en ejecucion constante

Publicado por Edgar (6 intervenciones) el 06/05/2010 13:19:26
Muchas gracias, voy a ponerla en practica lo antes posible y te digo si meha valido, Gracias!
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:Programa en ejecucion constante

Publicado por Edgar (6 intervenciones) el 11/05/2010 11:29:00
Genial! Me ha venido de perlas, el codigo funciona perfectamente, además lo he modificado un poco para que en vez de sacar un msgbox haga una señal sonora con console.beep.

Muchas gracias :D
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:Programa en ejecucion constante

Publicado por A.F.G.S. (47 intervenciones) el 11/05/2010 18:00:32
Me alegro de que te haya servido.

Un Saludo, Antonio F. Gutierrez
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