Gane dinero viendo publicidad

Gane dinero viendo publicidad

viernes, 25 de julio de 2014

Control de tiempo para Pc

Programa realizado en visual basic 6.0 que permite en un tiempo determinado por el usuario:

  • Apagar el equipo
  • Reiniciar el equipo
  • Cerrar sesión de usuario
  • Apagar el monitor
  • Bloquear el equipo
  • Ejecutar una aplicación en un tiempo determinado.
 Probado en windows Xp.




Descargar control de tiempo para Pc's

Mezclador de audio en mp3 (VB 6.0)

En esta ocasión les comparto el código de un sencillo mezclador de audio de 2 canales realizado en visual basic con el control mediaplayer.
 

lunes, 19 de mayo de 2014

Recordatorio de cumpleaños con ventana al estilo skype..

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.



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

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.

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.

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".

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
 
 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.