Actualmente existen diversas formas de que te recuerden el cumpleaños de tus amig@s, familiares, compañeros de trabajo, etc, ya sea atrevés de tu correo electrónico, el facebook, u otro programa utilizado.
Pero es muy satisfactorio cuando tenemos la posibilidad de nosotros mismos de diseñar el programa para poder personalizarlo a nuestro gusto.
En esta ocasión les comparto un sencillo programa que realicé en visual basic 6.0 que sirve para recordarnos cuando alguien esté de beneplacitos. Lo bonito del programa es que al ejecutarse no es visible en pantalla, solo al momento de que coincida la fecha actual con la fecha de cumpleaños de la persona que se encuentre guardada en un archivo de texto que usa el programa, y se mostrará al estilo de la antigua ventana de notificación del desaparecido messenger, ahora Skype, y emitirá un sonido caracteristico.
La imagen muestra un ejemplo del programa cuando se muestra al coincidir la fecha.
Para que el programa se ejecute diariamente, deben agregarlo a las tareas programadas de windows y configurar dicha tarea para que se ejecute a determinada hora del día o cuando se inicie sesión en windows.
El código del programa que ejecuta la comparación de fechas es el siguiente:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_ASYNC = &H1 ' reproducción asíncrona
Dim hoy As Date
Dim hora As Date
Dim sHoy As String
Dim sFecha As String
Dim sHora As String
Dim sString As String
Dim contador As Integer
Private Sub cargar()
'Esto es lo que muestra el formulario como el msn
Call SlideForm(frmReminder, MOSTRAR, 200, 5)
Call Redondear_Formulario(Me, 33)
snd = sndPlaySound(App.Path & "\reminder.wav", SND_ASYNC)
End Sub
Private Sub Form_Load()
hoy = Format(Now, "dd/mm")
sHoy = Left(hoy, 5)
Open App.Path & "\lista.txt" For Input As #1
While Not EOF(1) 'haga hasta leer la última línea
Input #1, sFecha, aString 'variables de cada línea
If sHoy = sFecha Then 'si coinciden las fechas
cadena = cadena & vbCrLf & aString
Me.lblMensaje = "Hoy cumple:"
Me.lblNombre = cadena
contador = contador + 1
If contador <> 0 Then
Call cargar 'Muestre la ventanita
End If
End If
Wend
Close #1
End Sub
Private Sub imgCerrar_Click()
Call SlideForm(frmReminder, ocultar, 200, 85)
End Sub
El código que permite que se muestre la ventana al estilo de notificación y con los bordes redondeados es un poco extenso, por tal razón no lo mostraré aca pero les dejo un link para que puedan descargarlo, estudiarlo y realizarles las modificaciones que ustedes prefieran.
El programa viene anexo con un archivo de texto en el cual deben colocar la fecha de cumpleaños de la persona, asi como su nombre.
Si la persona cumple el 23 de abril y se llama Shakira Meberack, deben colocar una cone l siguiente formato:
23/04,Shakira Mebarack
Descargar programa reminder
No olviden comentar. Hasta la proxima.
Truquitos para programar en visual basic versión 6.0 y .net. Además brindaremos códigos para programación de microcontroladores pic.
Gane dinero viendo publicidad

lunes, 19 de mayo de 2014
Apagar y reiniciar equipos conectados en red desde visual basic 6.0
En esta ocasión les comparto un código que sirve para cuando tenemos varios equipos conectados en la red y somos administradores de la misma y deseamos poder apagar o reiniciar uno o varios equipos desde alguno de ellos.
El programa es muy sencillo, solo hay que tener en cuenta la sentencia que sirve para apagar o reiniciar un equipo desde visual basic 6.0.
Para apagar o reiniciar un equipo, se utiliza la siguiente sentencia:
Shell "shutdown -s -t -m -c
donde -s es el comando para apagar el equipo, -r es para reiniciarlo
-t es para configurar el tiempo que debe transcurrir antes que se apague el equipo.
-m es el parámetro donde se establece el nombre del equipo en el cual se va a ejecutar la acción.
-c es para escribir un mensaje que se le quiera enviar al equipo.
Por lo tanto, el código para ejecutar dichas acciones sobre 10 equipos es el siguiente:
Option Explicit
Public Accion As String, x As String
Private Sub cmdApagar_Click()
If txtMensaje.Text = Empty Then
MsgBox "Debes escribir un mensaje", vbInformation, "Control de equipos"
txtMensaje.SetFocus
Exit Sub
End If
If chkEquipo(0).Value = 1 Then
If txtTiempo(0).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(0).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown " & Accion & " -t " & txtTiempo(0).Text & " -m \\" & chkEquipo(0).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(1).Value = 1 Then
If txtTiempo(1).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(1).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(1).Text & " -m \\" & chkEquipo(1).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(2).Value = 1 Then
If txtTiempo(2).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(2).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(2).Text & " -m \\" & chkEquipo(2).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(3).Value = 1 Then
If txtTiempo(3).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(3).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(3).Text & " -m \\" & chkEquipo(3).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(4).Value = 1 Then
If txtTiempo(4).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(4).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(4).Text & " -m \\" & chkEquipo(4).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(5).Value = 1 Then
If txtTiempo(5).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(5).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(5).Text & " -m \\" & chkEquipo(5).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(6).Value = 1 Then
If txtTiempo(6).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(6).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(6).Text & " -m \\" & chkEquipo(6).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(7).Value = 1 Then
If txtTiempo(7).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(7).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(7).Text & " -m \\" & chkEquipo(7).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(8).Value = 1 Then
If txtTiempo(8).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(8).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(8).Text & " -m \\" & chkEquipo(8).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(9).Value = 1 Then
If txtTiempo(9).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(9).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(9).Text & " -m \\" & chkEquipo(9).Caption & " -c " & txtMensaje.Text
End If
End If
End Sub
Private Sub cmdCancelar_Click(Index As Integer)
'Cancela el apagado del equipo
Shell "shutdown -a -m \\" & chkEquipo(Index).Caption
End Sub
Si deseas obtener los archivos del programa puedes descargarlo desde este link:
Descargar programa
El programa es muy sencillo, solo hay que tener en cuenta la sentencia que sirve para apagar o reiniciar un equipo desde visual basic 6.0.
Para apagar o reiniciar un equipo, se utiliza la siguiente sentencia:
Shell "shutdown -s -t -m -c
donde -s es el comando para apagar el equipo, -r es para reiniciarlo
-t es para configurar el tiempo que debe transcurrir antes que se apague el equipo.
-m es el parámetro donde se establece el nombre del equipo en el cual se va a ejecutar la acción.
-c es para escribir un mensaje que se le quiera enviar al equipo.
Por lo tanto, el código para ejecutar dichas acciones sobre 10 equipos es el siguiente:
Option Explicit
Public Accion As String, x As String
Private Sub cmdApagar_Click()
If txtMensaje.Text = Empty Then
MsgBox "Debes escribir un mensaje", vbInformation, "Control de equipos"
txtMensaje.SetFocus
Exit Sub
End If
If chkEquipo(0).Value = 1 Then
If txtTiempo(0).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(0).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown " & Accion & " -t " & txtTiempo(0).Text & " -m \\" & chkEquipo(0).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(1).Value = 1 Then
If txtTiempo(1).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(1).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(1).Text & " -m \\" & chkEquipo(1).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(2).Value = 1 Then
If txtTiempo(2).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(2).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(2).Text & " -m \\" & chkEquipo(2).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(3).Value = 1 Then
If txtTiempo(3).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(3).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(3).Text & " -m \\" & chkEquipo(3).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(4).Value = 1 Then
If txtTiempo(4).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(4).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(4).Text & " -m \\" & chkEquipo(4).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(5).Value = 1 Then
If txtTiempo(5).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(5).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(5).Text & " -m \\" & chkEquipo(5).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(6).Value = 1 Then
If txtTiempo(6).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(6).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(6).Text & " -m \\" & chkEquipo(6).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(7).Value = 1 Then
If txtTiempo(7).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(7).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(7).Text & " -m \\" & chkEquipo(7).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(8).Value = 1 Then
If txtTiempo(8).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(8).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(8).Text & " -m \\" & chkEquipo(8).Caption & " -c " & txtMensaje.Text
End If
End If
If chkEquipo(9).Value = 1 Then
If txtTiempo(9).Text <> Empty And txtMensaje.Text <> Empty Then
If optApagar(9).Value = True Then Accion = "-s" Else Accion = "-r"
Shell "shutdown -s -t " & txtTiempo(9).Text & " -m \\" & chkEquipo(9).Caption & " -c " & txtMensaje.Text
End If
End If
End Sub
Private Sub cmdCancelar_Click(Index As Integer)
'Cancela el apagado del equipo
Shell "shutdown -a -m \\" & chkEquipo(Index).Caption
End Sub
Si deseas obtener los archivos del programa puedes descargarlo desde este link:
Descargar programa
Comprimir archivos con winrar automaticamente desde visual basic 6.0
Muchas veces por razones laborales o de otra indóle necesitamos comprimir un archivo o carpeta de manera regular, de manera periódica, ya sea diaria o semanalmente con el programa winrar con el fin de crear un backup o respaldo de la carpeta de archivos con que se trabajó el día anterior..
Existe una forma de automatizar el proceso con un archivo .bat que llama a una función del programa winrar, lo que haremos a través de este código es automatizar el proceso de la comprensión, ya que con solo hacer clic en el botón el programa selecciona la carpeta configurada en el código, la guarda y le asigna el nombre que deseemos. (Todo esto se configura dentro del código).
El código con sus respectivos comentarios es el siguiente:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Sub InitCommonControls Lib "comctl32" ()
Dim Dia, Mes, Anio As Integer
Dim Fecha_Hoy, Fecha_Ayer As Date
Dim Fecha, DiaSemana As String
'Parametros para elegir el método de compresión
'-m0 Almacenamiento Agrega ficheros al archivo sin compresión
'-m1 El más rápido El método más rápido (el que menos comprime)
'-m2 Rápido Método rápido de compresión
'-m3 Normal Método normal de compresión (predeterminado)
'-m4 Bueno Buen método de compresión (más compresión)
'-m5 El mejor El mejor método de compresión (el que más comprime, pero también el más lento)
'---------------------------------------------------------------------------------------------
'Código que se ejecuta cuando se presiona el botón
Private Sub cmdComprimir2014_Click()
If Dir(App.Path & "\archivo2014.bat") = "" Then 'Si no existe el archivo .bat lo creamos
Open "archivo2010.bat" For Append As #1
Print #1, "cd C:\Archivos de programa\WinRar"
Print #1, "winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014" 'Aca se coloca la ruta de la carpeta a comprimpir
Close #1
End If
Call Comprimir2014 'Llamo al procedimiento que comprime la carpeta
End Sub
Sub Comprimir2014()
Dim Ret As Long
Ret = ShellExecute(Me.hwnd, "Open", "archivo2014.bat", "", "", 1)
End Sub
Private Sub Form_Initialize()
'Estilo Xp
InitCommonControls
End Sub
Private Sub Form_Load()
Fecha_Hoy = Date 'Fecha actual
Select Case Weekday(Date, vbMonday)
Case 1
DiaSemana = "lunes"
Case 2
DiaSemana = "martes"
Case 3
DiaSemana = "miercoles"
Case 4
DiaSemana = "jueves"
Case 5
DiaSemana = "viernes"
Case 6
DiaSemana = "sabado"
Case 7
DiaSemana = "domingo"
End Select
Fecha_Ayer = Date - 1 'Fecha de día anterior (ayer)
If DiaSemana = "lunes" Then Fecha_Ayer = Date - 3
Dia = Day(Fecha_Ayer)
If Len(Dia) = 1 Then Dia = "0" & Dia
Mes = Month(Fecha_Ayer)
If Len(Mes) = 1 Then Mes = "0" & Mes
Anio = Year(Fecha_Ayer)
Fecha = Dia & Mes & Anio 'Concateno el día,mes y año
End Sub
La línea que se encarga de realizar el proceso de comprensión es la siguiente:
"winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014"
Si revisamos la ayuda del programa WinRar observamos que el comando 'winrar a' sirve para añadir archivos a una carpeta a ser comprimida.
el parámetro -m2 ('-m2 Rápido Método rápido de compresión), podemos escoger entre -m0 hasta -m5 tal cual como se muestra en los comentarios del código.
Luego se coloca la ruta donde se va a guardar el archivo comprimido. En este ejemplo el nombre del archivo lo guardo con la fecha del día anterior, por ejemplo, si estoy ejecutando el archivo hoy martes 10 de mayo de 2014, lo más probable es que deba comprimir el archivo del día anterior, asi que el nombre del archivo creado quedará con el nombre "09052014" y se guardará en la ruta "C:\".
El último parámetros es la ruta del archivo que se va a comprimir.
Espero que haya sido de utilidad y no duden en comentar susis inquietudes.
Existe una forma de automatizar el proceso con un archivo .bat que llama a una función del programa winrar, lo que haremos a través de este código es automatizar el proceso de la comprensión, ya que con solo hacer clic en el botón el programa selecciona la carpeta configurada en el código, la guarda y le asigna el nombre que deseemos. (Todo esto se configura dentro del código).
El código con sus respectivos comentarios es el siguiente:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Sub InitCommonControls Lib "comctl32" ()
Dim Dia, Mes, Anio As Integer
Dim Fecha_Hoy, Fecha_Ayer As Date
Dim Fecha, DiaSemana As String
'Parametros para elegir el método de compresión
'-m0 Almacenamiento Agrega ficheros al archivo sin compresión
'-m1 El más rápido El método más rápido (el que menos comprime)
'-m2 Rápido Método rápido de compresión
'-m3 Normal Método normal de compresión (predeterminado)
'-m4 Bueno Buen método de compresión (más compresión)
'-m5 El mejor El mejor método de compresión (el que más comprime, pero también el más lento)
'---------------------------------------------------------------------------------------------
'Código que se ejecuta cuando se presiona el botón
Private Sub cmdComprimir2014_Click()
If Dir(App.Path & "\archivo2014.bat") = "" Then 'Si no existe el archivo .bat lo creamos
Open "archivo2010.bat" For Append As #1
Print #1, "cd C:\Archivos de programa\WinRar"
Print #1, "winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014" 'Aca se coloca la ruta de la carpeta a comprimpir
Close #1
End If
Call Comprimir2014 'Llamo al procedimiento que comprime la carpeta
End Sub
Sub Comprimir2014()
Dim Ret As Long
Ret = ShellExecute(Me.hwnd, "Open", "archivo2014.bat", "", "", 1)
End Sub
Private Sub Form_Initialize()
'Estilo Xp
InitCommonControls
End Sub
Private Sub Form_Load()
Fecha_Hoy = Date 'Fecha actual
Select Case Weekday(Date, vbMonday)
Case 1
DiaSemana = "lunes"
Case 2
DiaSemana = "martes"
Case 3
DiaSemana = "miercoles"
Case 4
DiaSemana = "jueves"
Case 5
DiaSemana = "viernes"
Case 6
DiaSemana = "sabado"
Case 7
DiaSemana = "domingo"
End Select
Fecha_Ayer = Date - 1 'Fecha de día anterior (ayer)
If DiaSemana = "lunes" Then Fecha_Ayer = Date - 3
Dia = Day(Fecha_Ayer)
If Len(Dia) = 1 Then Dia = "0" & Dia
Mes = Month(Fecha_Ayer)
If Len(Mes) = 1 Then Mes = "0" & Mes
Anio = Year(Fecha_Ayer)
Fecha = Dia & Mes & Anio 'Concateno el día,mes y año
End Sub
La línea que se encarga de realizar el proceso de comprensión es la siguiente:
"winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014"
Si revisamos la ayuda del programa WinRar observamos que el comando 'winrar a' sirve para añadir archivos a una carpeta a ser comprimida.
el parámetro -m2 ('-m2 Rápido Método rápido de compresión), podemos escoger entre -m0 hasta -m5 tal cual como se muestra en los comentarios del código.
Luego se coloca la ruta donde se va a guardar el archivo comprimido. En este ejemplo el nombre del archivo lo guardo con la fecha del día anterior, por ejemplo, si estoy ejecutando el archivo hoy martes 10 de mayo de 2014, lo más probable es que deba comprimir el archivo del día anterior, asi que el nombre del archivo creado quedará con el nombre "09052014" y se guardará en la ruta "C:\".
El último parámetros es la ruta del archivo que se va a comprimir.
Espero que haya sido de utilidad y no duden en comentar susis inquietudes.
domingo, 18 de mayo de 2014
Capturar nombre del sistema operativo, nombre del equipo y de usuario en Windows.
Para detectar el nombre del sistema operativo que está utilizando el usuario se utiliza la función: My.Computer.Info.OSFullName
Si deseamos conocer la versión del sistema operativo: My.Computer.Info.OSVersion
El nombre del equipo se halla de la siguiente manera: System.Windows.Forms.SystemInformation.ComputerName
Y por último, el nombre de usuario se obtiene con la función: System.Windows.Forms.SystemInformation.UserName
Asi por ejemplo, podemos escribir el seguiente código para obtener y mostrar dichso datos del sistema windows donde se encuentre instalado nuestro programa:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtSo.Text = My.Computer.Info.OSFullName
txtVersion.Text = My.Computer.Info.OSVersion
txtEquipo.Text = System.Windows.Forms.SystemInformation.ComputerName
txtUsuario.Text = System.Windows.Forms.SystemInformation.UserName
End Sub
End Class
De manera que al ejecutarse se muestre de la siguiente manera:
El código anterior puede ser util cuando desarrollemos un software y necesitemos protegerlo o monitorear su uso a través de internet, por lo cual es muy util capturar las variables anteriormente mostradas.
Si deseamos conocer la versión del sistema operativo: My.Computer.Info.OSVersion
El nombre del equipo se halla de la siguiente manera: System.Windows.Forms.SystemInformation.ComputerName
Y por último, el nombre de usuario se obtiene con la función: System.Windows.Forms.SystemInformation.UserName
Asi por ejemplo, podemos escribir el seguiente código para obtener y mostrar dichso datos del sistema windows donde se encuentre instalado nuestro programa:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtSo.Text = My.Computer.Info.OSFullName
txtVersion.Text = My.Computer.Info.OSVersion
txtEquipo.Text = System.Windows.Forms.SystemInformation.ComputerName
txtUsuario.Text = System.Windows.Forms.SystemInformation.UserName
End Sub
End Class
De manera que al ejecutarse se muestre de la siguiente manera:
Manipular el dom de pagina web con control WebBrowser en visual basic.net II parte
Bueno amigos aca les traigo la segunda parte del artículo sobre el uso del control WebBrowser para manejar los elementos html de una página web.
En la primera parte comentaba cómo pasar valores desde nuestra aplicación hacia la página web.
En esta ocasión haremos lo contrario, es decir, obtener el valor de algun elemento de la página.
La página de ejemplo que usaremos en esta ocasión será la de la famosa loteria colombiana de sistema de balotas "el baloto",cuya página web es www.baloto.com
La página web al cargar muestra en un rectangulo, los números ganadores ( seis ) las cuales muestro en color rojo en la siguiente imagen.Asi que lo que haremos es mostrar por medio de un msgbox cada uno de los números ganadores mostrados en la página.
Para ello abrimos un nuevo proyecto en visual basic .net, y al igual que el proyecto pasado agregamos un control webBrowser y un control button.
El webBrowser yo lo renombré como "web".
En la primera parte comentaba cómo pasar valores desde nuestra aplicación hacia la página web.
En esta ocasión haremos lo contrario, es decir, obtener el valor de algun elemento de la página.
La página de ejemplo que usaremos en esta ocasión será la de la famosa loteria colombiana de sistema de balotas "el baloto",cuya página web es www.baloto.com
La página web al cargar muestra en un rectangulo, los números ganadores ( seis ) las cuales muestro en color rojo en la siguiente imagen.Asi que lo que haremos es mostrar por medio de un msgbox cada uno de los números ganadores mostrados en la página.
Para ello abrimos un nuevo proyecto en visual basic .net, y al igual que el proyecto pasado agregamos un control webBrowser y un control button.
El webBrowser yo lo renombré como "web".
Vamos a configurar para que se cargue la página de gmail al cargar
nuestro formulario, o sea en el evento form_load, igual lo podiamos
hacer desde otro evento, al presionar un botón, etc.
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
web.Navigate("www.baloto.com")
End Sub
Al hacer clic en el boton, el programa mostrará cada uno de los números reflejados en la página, para la página del ejemplo consultada a la fecha de hoy martes 11 de junio, los números eran el: 1,13,14,18,33 y 43.
Obviamente a ustedes les puede mostrar unos números distintos dependiendo de la fecha en que hagan la consulta a la página.
Agregamos el siguiente código en el evento clic del boton:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(web.Document.GetElementById("balota-tester").InnerText)
MsgBox(web.Document.GetElementById("t-balota-dos").InnerText)
MsgBox(web.Document.GetElementById("t-balota-tres").InnerText)
MsgBox(web.Document.GetElementById("t-balota-cuatro").InnerText)
MsgBox(web.Document.GetElementById("t-balota-cinco").InnerText)
MsgBox(web.Document.GetElementById("t-balota-seis").InnerText)
End Sub
MsgBox(web.Document.GetElementById("balota-tester").InnerText)
MsgBox(web.Document.GetElementById("t-balota-dos").InnerText)
MsgBox(web.Document.GetElementById("t-balota-tres").InnerText)
MsgBox(web.Document.GetElementById("t-balota-cuatro").InnerText)
MsgBox(web.Document.GetElementById("t-balota-cinco").InnerText)
MsgBox(web.Document.GetElementById("t-balota-seis").InnerText)
End Sub
El programa en ejecución lo muestro a continuación:
Recordemos que debemos conocer el nombre del id de cada elemento del cual deseamos obtener el valor.
Recuerden que el objetivo de esto es aprender a leer valores de una página web y pasarlos a nuestra aplicación, ya sea para mostrarlos en un label, textbox o cualquier control que queramos.
Les insto a que prueben con otras páginas web y obtengan algunos datos para mostrarlos en un control label. Espero haya sido de utilidad esta entrada y .... hasta la proxima.
Cómo captuar un pantallazo del propio formulario en visual basic 6.0
Este código que coloco a continuación sirve para obtener una instantánea o captura de pantalla del formulario actual o si se modifica un poco, ocultando el formulario, permite obtener una imagen de la ventana activa.
'Api para generar un evento de tecla
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
'recibe la ruta donde crear la imagen
Private Sub Capturar_Pantalla(path As String)
'Captura la pantalla activa
Call keybd_event(44, 1, 0, 0)
DoEvents
'Guardamos la imagen en disco
SavePicture Clipboard.GetData, path
End Sub
Private Sub Command1_Click()
'Aca colocamos donde deseamos guardar la imagen. En este ejemplo se guarda en la misma carpata donde está guardado el proyecto.
Dim path As String
path = App.path & "\imagen" & ".jpeg"
Capturar_Pantalla (path)
End Sub
'Api para generar un evento de tecla
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
'recibe la ruta donde crear la imagen
Private Sub Capturar_Pantalla(path As String)
'Captura la pantalla activa
Call keybd_event(44, 1, 0, 0)
DoEvents
'Guardamos la imagen en disco
SavePicture Clipboard.GetData, path
End Sub
Private Sub Command1_Click()
'Aca colocamos donde deseamos guardar la imagen. En este ejemplo se guarda en la misma carpata donde está guardado el proyecto.
Dim path As String
path = App.path & "\imagen" & ".jpeg"
Capturar_Pantalla (path)
End Sub
Mezclador de audio en visual basic 6.0
Ejemplo de un sencillo mezclador de audio de mp3 de dos canales que
funciona con el control mediaplayer.
Puedes descargar el proyecto completo desde aca:
Descargar mezclador de audio
Hice uso de controles de terceros, o sea que no son de microsoft, por lo tanto si tienes errores al cargarlos, debes registrarlos de la siguiente manera:
Entras a la ventana de ejecutar (presionando la tecla Windows + R ) y escribes lo siguiente
REGSVR32 c:\windows\system\msdxm.ocx.
REGSVR32 c:\windows\system\KewlButtonz.ocx
Los controles están anexos en el proyecto en la carpeta Ocx.
Puedes descargar el proyecto completo desde aca:
Descargar mezclador de audio
Hice uso de controles de terceros, o sea que no son de microsoft, por lo tanto si tienes errores al cargarlos, debes registrarlos de la siguiente manera:
Entras a la ventana de ejecutar (presionando la tecla Windows + R ) y escribes lo siguiente
REGSVR32 c:\windows\system\msdxm.ocx.
REGSVR32 c:\windows\system\KewlButtonz.ocx
Los controles están anexos en el proyecto en la carpeta Ocx.
Crear un juego de memorama en visual basic 6.0
Crear un memorama en visual basic 6.0
Este es un juego de memorama desarrollado en visual basic 6.0.
Es de 24 casillas con figuras relacionadas a las señales de transito.
El código completo se encuentra aca
Este es un juego de memorama desarrollado en visual basic 6.0.
Es de 24 casillas con figuras relacionadas a las señales de transito.
El código completo se encuentra aca
Cómo insertar sonido en visual basic .net y visual 6.0?
Muchas veces deseamos que se reproduzca un archivo de audio al cliquear un botón o al realizar determinada acción, para ello visual basic .net nos provee de una sencilla línea de código para llevarlo a cabo:
My.Computer.Audio.Play(Application.StartupPath & "/nombredearchivo.wav")
Donde "nombredearchivo.wav" debe ser reemplazado por el nombre de nuestro archivo de audio.
Para hacerlo en visual basic 6.0 se hace lo siguiente:
'Declaraciones
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_ASYNC = &H1 ' reproducción asíncrona
private sub boton_click()
snd = sndPlaySound(App.Path & "\nombredearchivo.wav", SND_ASYNC)
end sub
My.Computer.Audio.Play(Application.StartupPath & "/nombredearchivo.wav")
Donde "nombredearchivo.wav" debe ser reemplazado por el nombre de nuestro archivo de audio.
Para hacerlo en visual basic 6.0 se hace lo siguiente:
'Declaraciones
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_ASYNC = &H1 ' reproducción asíncrona
private sub boton_click()
snd = sndPlaySound(App.Path & "\nombredearchivo.wav", SND_ASYNC)
end sub
Buscar en una base de datos en Visual Basic 6.0
Declaración de variables
Public RSAfiliados As New ADODB.Recordset
Yo usé un flexgrid que llamé flex.
Private Sub BuscarCedula_Click()
'codigo para buscar un registro
Dim ced As String, cednum As Double
ced = InputBox("Digite el número de la cédula", titulo)
If ced = Empty Then
Exit Sub
End If
'almacena la cédula digitada
cad = "select * from AFILIADOS where cedula = " & ced
If RSAfiliados.State = 1 Then
RSAfiliados.Close
End If
RSAfiliados.Open cad, CNDatos, adOpenStatic, adLockReadOnly
If RSAfiliados.EOF Then 'si no existe la cédula
MsgBox "No se encontraron afliados con ese número de cédula", vbOKOnly, titulo
Else
Call llenarcampos
End If
End Sub
Private Sub llenarcampos()
Dim i As Integer, j As Integer
vdatos = RSAfiliados.GetRows(RSAfiliados.RecordCount)
With flex
flex.Clear
.FormatString = "|^No|<NOMBRES|<APELLIDOS|^CEDULA|<DIRECCION|^TELEFONO|<BARRIO|"
'ajusta el ancho de las columnas
.ColWidth(0) = 0
.ColWidth(1) = 300
.ColWidth(2) = 1500
.ColWidth(3) = 2000
.ColWidth(4) = 1000
.ColWidth(5) = 2000
.ColWidth(7) = 1760
'rellena el color de fondo de cada fila por medio
For i = 0 To flex.Cols - 1
flex.Col = i
For j = 1 To flex.Rows Step 2
flex.Row = j
flex.CellBackColor = &HE0E0E0
Next j
Next i
'coloca los datos en el grid
For i = 1 To UBound(vdatos, 2) + 1
flex.Row = i
For j = 0 To 7
flex.Col = j + 1
flex.Text = vdatos(j, i - 1)
Next j
Next i
End With
End Sub
Public RSAfiliados As New ADODB.Recordset
Yo usé un flexgrid que llamé flex.
Private Sub BuscarCedula_Click()
'codigo para buscar un registro
Dim ced As String, cednum As Double
ced = InputBox("Digite el número de la cédula", titulo)
If ced = Empty Then
Exit Sub
End If
'almacena la cédula digitada
cad = "select * from AFILIADOS where cedula = " & ced
If RSAfiliados.State = 1 Then
RSAfiliados.Close
End If
RSAfiliados.Open cad, CNDatos, adOpenStatic, adLockReadOnly
If RSAfiliados.EOF Then 'si no existe la cédula
MsgBox "No se encontraron afliados con ese número de cédula", vbOKOnly, titulo
Else
Call llenarcampos
End If
End Sub
Private Sub llenarcampos()
Dim i As Integer, j As Integer
vdatos = RSAfiliados.GetRows(RSAfiliados.RecordCount)
With flex
flex.Clear
.FormatString = "|^No|<NOMBRES|<APELLIDOS|^CEDULA|<DIRECCION|^TELEFONO|<BARRIO|"
'ajusta el ancho de las columnas
.ColWidth(0) = 0
.ColWidth(1) = 300
.ColWidth(2) = 1500
.ColWidth(3) = 2000
.ColWidth(4) = 1000
.ColWidth(5) = 2000
.ColWidth(7) = 1760
'rellena el color de fondo de cada fila por medio
For i = 0 To flex.Cols - 1
flex.Col = i
For j = 1 To flex.Rows Step 2
flex.Row = j
flex.CellBackColor = &HE0E0E0
Next j
Next i
'coloca los datos en el grid
For i = 1 To UBound(vdatos, 2) + 1
flex.Row = i
For j = 0 To 7
flex.Col = j + 1
flex.Text = vdatos(j, i - 1)
Next j
Next i
End With
End Sub
Bienvenidos a mi Blog.
En este espacio encontraras las respuestas a tus dudas sobre código en el lenguaje visual basic 6.0, visual basic .net y programación para microcontroladores pic.
Suscribirse a:
Entradas (Atom)