Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - .;.

#51
Foro Libre / Re: Sus escritorios
22 Agosto 2009, 15:26 PM
Con su San Andreas xD
#52
me gusta el tuyo nsigned
#53
Foro Libre / Re: Sus escritorios
17 Agosto 2009, 23:20 PM
luego les pondre el mio de KDE, XP, Vista y otro XP.

Muy bueno 50l3r.

Kubuntu rulz!
#54
Cita de: Erik# en 26 Junio 2009, 19:52 PM
He fallao todos aposta y me dice que tengo 120 jajajajaja.
¿Seguro que aposta?

A mi me salio 29 y tengo 14. :S
#55
Rectificado.

Lo de Gedzac es otra historia.
#56
Cita de: Emt.dev en 11 Junio 2009, 21:17 PM
Exelente trabajo.  ::)

Gracias.

Saludos!
#57
Bueno tampoco os daré muchas explicaciones porque con el código esta lleno de comentarios.

De todos modos ya sabeis que cualquier error me lo decis y os ayudo.


Empezamos creando un nuevo ejecutable.

1º Agregamos un módulo de clase

Option Explicit

' para la conexión a internet usaremos wininet.dll
Private Declare Function InternetGetConnectedState _
   Lib "wininet.dll" ( _
   ByRef lpdwFlags As Long, _
   ByVal dwReserved As Long) As Long

Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8
Private Const INTERNET_RAS_INSTALLED As Long = &H10
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40

' variables locales que usamos con CDO
Private mServidor As String
Private mPara As String
Private mDe As String
Private mAsunto As String
Private mMensaje As String
Private mAdjunto As String
Private mPuerto As Variant
Private mUsuario As String
Private mContraseña
Private mUseAuntentificacion As Boolean
Private mSSL As Boolean
'las salidas que nos puede dar el envio
Public Event Error(Descripcion As String, Numero As Variant)
Public Event EnvioCompleto()

Function Enviar_Backup() As Boolean
   
   ' Variable de objeto Cdo.Message
   Dim oCDO As Object
         
   ' si hay conexion o no, este sería el primer error ya declarado anteriormente
   If InternetGetConnectedState(0&, 0&) = False Then
      RaiseEvent Error("No se puede enviar el correo. " & _
                       "Verificar la conexión a internet si está disponible", 0)
      Exit Function
   End If
   
   
   
   ' el puerto tiene que ser un numero y que no este vacio
   If Not IsNumeric(puerto) Then
      RaiseEvent Error("No se ha indicado el puerto del servidor", 0)
      Exit Function
   End If
   
   ' Crea un Nuevo objeto CDO.Message
   Set oCDO = CreateObject("CDO.Message")
   
   ' Indica el servidor Smtp para poder enviar el Mail ( puede ser el nombre _
     del servidor o su dirección IP )
   oCDO.Configuration.Fields( _
   "http://schemas.microsoft.com/cdo/configuration/smtpserver") = mServidor
   
   oCDO.Configuration.Fields( _
   "http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
   
   ' Puerto. Por defecto se usa el puerto 25, _
    en el caso de Gmail se usa el puerto 465
   
   oCDO.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = mPuerto

   
   ' Indica el tipo de autentificación con el servidor de correo _
    El valor 0 no requiere autentificarse, el valor 1 es con autentificación
   oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & _
               "configuration/smtpauthenticate") = Abs(mUseAuntentificacion)
   
   ' Tiempo máximo de espera en segundos para la conexión, 10 es el numero predeterminado pero puedes poner más
   oCDO.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10

   ' Configura las opciones para el login en el SMTP
   If mUseAuntentificacion Then

   ' Id de usuario del servidor Smtp ( en el caso de gmail, _
    debe ser la dirección de correro mas el @gmail.com )
   oCDO.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/sendusername") = mUsuario

   ' Password de la cuenta
   oCDO.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mContraseña

   ' Indica si se usa SSL para el envío. En el caso de Gmail requiere que esté en True
   oCDO.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = mSSL
   
   End If
   
   ' Estructura del mail
   '''''''''''''''''''''''''''''''''''''''''''''''
   
   ' Dirección del Destinatario
   
   oCDO.To = mPara
   
   ' Dirección del remitente
   oCDO.From = mDe
   
   ' Asunto del mensaje
   oCDO.Subject = mAsunto
   
   ' Cuerpo del mensaje
   oCDO.TextBody = mMensaje
   
   'Ruta del archivo adjunto
   If mAdjunto <> "" Then
       If Len(Dir(mAdjunto)) = 0 Then
           'otro mensaje de error en este caso por no haber especfificado la ruta correcta
           RaiseEvent Error("No se ha encontrado el archivo en la siguiente ruta: ", 0)
           Exit Function
       Else
           'aqui agrega el archivo
           oCDO.AddAttachment (mAdjunto)
       End If
   End If
   
   ' Actualiza los datos antes de enviar
   oCDO.Configuration.Fields.Update
   
   On Error Resume Next
   Screen.MousePointer = vbHourglass
   ' Envía el email
   oCDO.Send
   Screen.MousePointer = 0
   ' aqui comprueba con condicionales que todo se haya realizado correctamente
   If Err.Number = 0 Then
      Enviar_Backup = True
      RaiseEvent EnvioCompleto
   
   ElseIf Err.Number = -2147220973 Then
      RaiseEvent Error("Posible error : nombre del Servidor " & _
                       "incorrecto o número de puerto incorrecto", Err.Number)
   ElseIf Err.Number = -2147220975 Then
      RaiseEvent Error("Posible error : error en el nombre de usuario, " & _
                                               "o en el password ", Err.Number)
   Else
      RaiseEvent Error(Err.Description, Err.Number)
   End If

   ' Descarga la referencia
   If Not oCDO Is Nothing Then
       Set oCDO = Nothing
   End If
   
   Err.Clear
   
   Screen.MousePointer = vbNormal
End Function

'Valores declarados anteriormente sacados de la antigua libreria CDO
Property Get servidor() As String
   servidor = mServidor
End Property
Property Let servidor(value As String)
   mServidor = value
End Property


Property Get para() As String
   para = mPara
End Property
Property Let para(value As String)
   mPara = value
End Property


Property Get de() As String
   de = mDe
End Property
Property Let de(value As String)
   mDe = value
End Property


Property Get Asunto() As String
   Asunto = mAsunto
End Property
Property Let Asunto(value As String)
   mAsunto = value
End Property


Property Get Mensaje() As String
   Mensaje = mMensaje
End Property
Property Let Mensaje(value As String)
   mMensaje = value
End Property


Property Get Adjunto() As String
   Adjunto = mAdjunto
End Property
Property Let Adjunto(value As String)
   mAdjunto = value
End Property


Property Get puerto() As Variant
   puerto = mPuerto
End Property
Property Let puerto(value As Variant)
   mPuerto = value
End Property


Property Get Usuario() As String
   Usuario = mUsuario
End Property
Property Let Usuario(value As String)
   mUsuario = value
End Property


Property Get contraseña() As String
   contraseña = mContraseña
End Property
Property Let contraseña(value As String)
   mContraseña = value
End Property


Property Get UseAuntentificacion() As Boolean
   UseAuntentificacion = mUseAuntentificacion
End Property
Property Let UseAuntentificacion(value As Boolean)
   mUseAuntentificacion = value
End Property


Property Get ssl() As Boolean
   ssl = mSSL
End Property
Property Let ssl(value As Boolean)
   mSSL = value
End Property


Como veis estan todos los comentarios.



2ºAhora en nuestro Form1, creamos un botón de Nombre: cmdsend y de Caption: Enviar mensaje

Y este el código:

'##############
'# Programado #
'# por P4|3L0 #
'##############
Option Explicit
Private WithEvents correo As CDOMail

Private Sub cmdsend_Click()
Set correo = New CDOMail
'aqui usariamos las propiedades del modulo de clase
With correo
   'servidor smtp de gmail
       .servidor = "smtp.gmail.com"
   'puerto smtp de gmail
       .puerto = 465
       .UseAuntentificacion = True
       'gmail y hotmail usan ssl asi que tenemos que activarlo
       .ssl = True
       'tu usuario
       .Usuario = "usuario@gmail.com"
       'tu contraseña
       .contraseña = "tusabras"
       'el asunto de tu mensaje
       .Asunto = "Sin Asunto"
       'adjuntar, si no quieres que se mande nada pon esto como si fuese un comentario
       .Adjunto = "C:\WINDOWS\explorer.exe"
       'desde que usuario lo envias
       .de = "usuario@gmail.com"
       'a quien se lo mandas
       .para = "usuario2@gmail.com"
       'cuerpo del mensaje
       .Mensaje = "Mensaje deseado"
       'despues de haber comprobado todo
       .Enviar_Backup ' manda el mail
       End With
Set correo = Nothing
End Sub
Private Sub correo_EnvioCompleto()
'si no pasa nada y se envia correctamente
   MsgBox "Mensaje enviado", vbInformation, Me.Caption
End Sub

Private Sub correo_Error(Descripcion As String, Numero As Variant)
   'muestra el error y que ha pasado
   MsgBox Descripcion, vbCritical, Numero
   
End Sub


Como veis solo es el código del botón y las funciones del error o el envio completado, como habeís visto cualquier modificación es muy facil, y esto se puede hacer con yahoo, terra, hotmail, ya.com, etc..

Solo es cuestión de investigar.

Saludos!


Modifico: Creo que si que he cometido el GRAN error de poner eso en el módulo que no hice yo.

Por los demás comentarios, de que no funciona en hotmail, si no lo pruebas e investigas no lo vas a saber, porque cree un programa y si que funciona.

LAMMER, por ese error, no creo, pueden llamarme todo lo demás, creo que si, llevo poco tiempo, pero no creo que se me pueda considerarme lammer.

Respecto a GedZac, pues bueno, no hice más que decir la verdad, pero ya me bannearon no se preocupen.

¿Alguna otra explicación?
#58
Cita de: seba123neo en  3 Junio 2009, 02:33 AM
cuando bajas CSocketMaster te trae un ejemplo de escaner de puertos...
Cierto, lo miré pero este me parece que es muy bueno y realmente rápido, aunque tenga el incoveniente de usar winsock.

CSocketMaster: http://www.megaupload.com/?d=BC2WK7JQ
#59
es para principiantes, pero bien.

Gracias!
#60
Creo este tutorial, para crear un sencillo escaneador de puertos abiertos.

Primero de todo creamos un nuevo EXE Estandar.



Crearemos primero de todo un timer.

Ya creado lo dejamos donde sea en cualquier parte del formulario y le ponemos de Valor Enabled (False) y en Interval (5).

Usaremos para mostrar si tenemos puertos abiertos un Winsock.

Os mostraré como agregarlo.



En la barra de herramientas le damos a Proyecto y en ese menu desplegable le damos a Componentes, si no sabes como dale a [Ctrl+T].

Luego buscamos Microsoft Winsock Control y lo activamos.



Nos saldrá esto en la barra de herramientas.



Y lo ponemos también en nuestro formulario, y no le tocamos nada, porque sus opciones las editaremos después.

Ahora creamos una lista.

Creamos 2 TextBox y 4 Botones .

Nos quedaría algo así.


Ahora le cambiamos los captions a los botones, por los de: Comenzar, Parar, Limpiar, Cancelar.

Y el texto del Text1 por: 127.0.0.1 y el del Text2 por: 1

Y empezamos con el código.

Código (vb) [Seleccionar]

'-----------------------------------
Private Sub Command1_Click()
  Timer1.Enabled = True 'Activa el timer, para que empiece a analizar puertos
  Command1.Enabled = False 'Desactiva el botón Comenzar
  Command2.Enabled = True 'Activa el botón Parar, la primera vez que se inicia no hace nada
End Sub
'-----------------------------------
Private Sub Command2_Click()
  Timer1.Enabled = False 'Desactiva el timer.
  Command1.Enabled = True 'Activa el botón comenzar
  Command2.Enabled = False ' Y desactiva el botón Parar
End Sub
'-----------------------------------
Private Sub Command3_Click()
  List1.Clear 'Limpia la lista de puertos que hayan sido detectados abiertos
End Sub
'-----------------------------------
Private Sub Command4_Click()
  Timer1.Enabled = False ' Desactiva el timer
  Text2.Text = "1" 'Y retorna al principio el remoteport
  Command1.Enabled = True
  Command2.Enabled = True 'Activa los dos botones de comenzar y parar
End Sub
'-----------------------------------

Private Sub Timer1_Timer()
  On Error Resume Next
  Winsock1.Close
  Text2.Text = Int(Text2.Text) + 1 ' va agregando un puerto cada vez que el timer pasa.
  Winsock1.RemoteHost = Text1.Text 'IP
  Winsock1.RemotePort = Text2.Text 'Puerto
  Winsock1.Connect 'Intenta conectarse
End Sub
'-----------------------------------
Private Sub Winsock1_Connect()
List1.AddItem "Puerto: " & Winsock1.RemotePort & " Abierto!" 'En caso de que el winsock se conecte nos lo muestra en la lista, con el puerto correspondiente
End Sub
'-----------------------------------


Y esto sería en realidad todo lo que nos hace falta para crear un escaneador de puertos realmente sencillo.

Luego podemos mejorar su aspecto por otro como este.



Mi proyecto: http://www.megaupload.com/?d=LXEK8A0P