Skip navigation.

exploreopera

| Help

Sign up | Help

A little bit of me

$_POST['Welcolme' . ' to . ' $SkoryBlog] . . . enjoy it :)

STICKY POST

Hello there

Welcome everyone, aquí van a encontrar un poko de las cosas a las que me dedico y que me gusta hacer. Yo soy Iván (Sk0rpy0) de Chihuahua, México, egresado de la carrera de sistemas y actualmente cursando la maestría. Me considero una persona alivianada, geek y que le gusta compartir lo poco que puedo saber con los demás ... En fin pasenla shido y espero que algo de lo que les ponga aquí les pueda servir :yes:

tracker

Dislexia víal

, ,

Para que vean porque es bueno ir a la shcool >.< .... digo ... a la school :lol:

Solicitud de Ayuda, via NetSend con Messenger Service

, , , ...

Que onda, el siguiente programa lo hice a necesidad de que en ocasiones tenia que estar físicamente al tanto de un equipo que se encuentra en producción y por consiguiente no podía realizar otras actividades, para solucionar las fallas que se presentarán la brevedad. Entonces se me ocurrió hacer una miniaplicación que mandará un mensaje a los encargados de sistemas cuando necesitarán ayuda con dicho equipo.

Para lograrlo me basé en el conocido NetSend y en Messenger Service. Acá les dejo el código con algunas explicaciones ... e igual si tienen dudas pues se las podemos resolver.

1. Primero abrimos VB6 y creamos un nuevo proyecto tipo ejecutable, damos doble click sobre nuestro Form1 y pegaremos las siguientes líneas de código justo arriba de nuestro evento load de la forma:

'===================================================
' By Sk0rpy0 (skorpyo.rules@gmail.com)
' Blogger, Geek & More (http://my.opera.com/Skorpyo)
'===================================================
Option Explicit

Const ERROR_SUCCESS = 0
Const ERROR_MORE_DATA = 234
Const SV_TYPE_SERVER = &H2
Const SIZE_SI_101 = 24

Private Type SERVER_INFO_101
  dwPlatformId As Long
  lpszServerName As Long
  dwVersionMajor As Long
  dwVersionMinor As Long
  dwType As Long
  lpszComment As Long
End Type

Private Declare Function NetServerEnum Lib "netapi32.dll" (ByVal servername As String, _
  ByVal level As Long, buffer As Long, ByVal prefmaxlen As Long, entriesread As Long, _
  totalentries As Long, ByVal servertype As Long, ByVal domain As String, resumehandle As Long) As Long

Private Declare Function NetApiBufferFree Lib "netapi32.dll" (BufPtr As Any) As Long
Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function lstrcpyW Lib "kernel32" (ByVal lpszDest As String, ByVal lpszSrc As Long) As Long

Private Const NERR_Success As Long = 0&
Private Const NERR_BASE = 2100
Private Const NERR_NameNotFound = NERR_BASE + 173
Private Const NERR_NetworkError = NERR_BASE + 36
Private Const ERROR_ACCESS_DENIED = 5
Private Const ERROR_INVALID_PARAMETER = 87
Private Const ERROR_NOT_SUPPORTED = 50

Private Declare Function NetMessageBufferSend Lib "netapi32.dll" (servername As Any, _
  msgname As Byte, fromname As Any, buf As Byte, ByVal buflen As Long) As Long

Dim Machine As String


Explicación:
Lo que hacemos en sí es importar todo lo necesario para que funcione la API de NetSend, y creamos una variable para guardar el nombre de la máquina que realiza la solicitud.



Una vez hecho lo anterior, en el evento Load de nuestra aplicación utilizaremos las siguientes líneas:

Private Sub Form_Load()
  Dim nRet As Long
  Dim sTo() As Byte
  Dim sMsg() As Byte

GetMachineName 'Procedimiento para obtener el nombre de la máquina

Dim i As Integer
Dim IP As String
For i = 1 To 3
    If i = 1 Then IP = "10.10.10.10"
    If i = 2 Then IP = "10.10.10.11"
    If i = 3 Then IP = "10.10.10.12"
sTo = IP & Chr(0)

  sMsg = "Se ha presentado una falla en el equipo de: " & Machine & "." + vbCrLf _
  + "Por favor acuda a la brevedad para antender la solicitud." & Chr(0) 'txtMsg & Chr(0)
  nRet = NetMessageBufferSend(ByVal 0, sTo(0), ByVal 0, sMsg(0), UBound(sMsg))

Next
  
Select Case nRet
  Case NERR_Success: MsgBox Machine + ": Su solicitud de ayuda ha sido envíada al Departamento de Sistemas." + vbCrLf _
  + "En un momento una persona acudirá a asistirlo.", vbInformation, "Solicitud Enviada"
  Case NERR_NameNotFound: MsgBox "No se pudo mandar la solicitud de ayuda, intentelo más tarde", vbCritical, "Solicitud Ayuda"
  Case NERR_NetworkError: MsgBox "Se encontró una falla en la red, vuelva a intentarlo mas tarde", vbCritical, "Fallo en el envío de solicitud"
  Case ERROR_ACCESS_DENIED: MsgBox "Acceso Denegado a ésta función, posiblemente tenga deshabilitado el servicio", vbCritical, "Acceso Denegado"
  Case ERROR_INVALID_PARAMETER: MsgBox "Parámetro Inválido", vbCritical, "Error"
  Case ERROR_NOT_SUPPORTED: MsgBox "El envío de mensajes no esta soportado por su equipo", vbCritical, "Error"
  Case Else: MsgBox "Se ha encontrado un error inesperado", vbCritical, "Error"
End Select
  Unload Me
End Sub


Explicación:
* Despues de declarar las variables, vamos al procedimiento para obtener el nombre del equipo.
* A continuación realizo un ciclo para mandar el mensaje a los 3 encargados de sistemas que somos aquí (lo pueden adaptar a sus necesidades).
* Cada vuelta del ciclo mandamos el mismo mensaje cambiando el destinatario en la variable "IP"
* Creamos un Select Case para determinar que mensaje regresa la API de Net Send y especificando las acciones necesarias para cada uno.
* Por último descargamos la forma actual, con lo que se termina la aplicación.



Bien ahora solo queda ejemplificar la función para obtener el nombre de la máquina que la tenemos a continuación:

Sub GetMachineName()
  Dim Obj, object As Object
  Dim strComputer As String
    
    strComputer = "."
    Set Obj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2").ExecQuery("Select * FROM Win32_OperatingSystem")
  For Each object In Obj
    Machine = object.Description
  Next
  
If Machine = "" Then Machine = InputBox("Introduzca su nombre o área de trabajo. Ésta información será enviada los encargados de sistemas" + vbCrLf _
+ "para agilizar la atención de su solicitud.", "Solicitud de Ayuda")

End Sub

Explicación:
* Creamos dos variables tipo Object y una tipo string que guardará la descripción del equipo
* Asignamos las propiedades del sistema Obj
* Guardamos la propiedad Description a nuestra variable Machine y con esto tenemos el dato listo.


NOTA: Estoy obteniendo la Descripción del Equipo y NO el nombre de la máquina (ComputerName); ésto a razones empresariales. Si desean obtener específicamente el nombre en sí, pueden utilizar Environ(5) que nos trae el nombre de la máquina:

Dim Tarray() As String
Dim LongName As String
    LongName = Environ(5)
    Tarray() = Split(LongName, "=", -1, vbTextCompare)
    Machine = Tarray(1) 'Trim(Mid(LongName, 14, (Len(LongName) - 13)))



Una vez hecho todo lo anterior generamos nuestro .exe y al ejecutarlo presentará el siguiente mensaje a los encargados de sistemas:



Y este a quien solicitó la ayuda.



Bien, hasta aquí llegamos con este programa, si les sirve ps k bien estimados :smile:


P.S. Como se requiere que este habilitado el servicio de Mensajería (Messenger Service), aquí les dejo las siguientes líneas para que lo activen sin tener que entrar a administrar MiPC. Abrimos notepad y pegamos:

@echo off
sc config messenger start= auto > nul
sc start messenger > nul
if errorlevel 0 (
echo El Servicio de Mensajeria esta habilitado
)


Guardamos como EnableMsnSrv.bat o .cmd y le damos doble click en los equipo que queremos que tengan esta comunicación. Slds.

Este si es un compa de vdd xD

,

Si analizamos esta imagen a profundidad veremos que es muy cierta la diferencia entre un simple amigo y un amigo de vdd ... apoco no Omaru P: jajaja

Enjuto Mojamuto - El peor día de mi vida

, ,

Ya tenia rato queriendo poner este video y se me pasaba el tiempo, así que ahora que estoy con mi chela al lado checando mis feeds puedo hacerlo con toda trankilidad xD .. este video es de un g33k - friki llamado enjuto mojamuto y ps habla del peor día que ha tenido en su vida ... ta friki el chapter pero shido n_n

SpeedTest - Que tan rápidos somos tecleando

, , ,

Anteriormente me había encontrado con un sitio para jugar compentencias online de velocidad de typig, y aunque las oraciones eran en inglés me pareció bastante entretenido. Ahora les dejo un sitio que mide las palabras que puedes escribir por minuto con opciones de hacer la prueba en distintos idiomas.




Aquí mis resultados después del primer intento:

Un chistorín geek

, , ,

Aquí les dejo la siguiente imagen de una mini pelea entre windows y linux ... Solo tómenlo con humor xD y no más que eso ...



Vía: PuntoGeek

Mejorar nuestros conocimientos sobre seguridad en internet

, , ,



Que onda, pues aquí les dejo el siguiente link donde podremos mejorar nuestros conocimientos acerca de la seguridad en internet. La finalidad es pasar 16 niveles cada uno con cierto grado de dificultad. Es bastante entretenido y pues pueden darse una vuelta para medir sus habilidades. El linh de la página es: http://isatcis.com/


Ultamatix: el renacimiento de Automatix

, ,

Es posible que hayan oído hablar alguna vez de Automatix, un software que automatizaba la instalación de algunas aplicaciones populares que no venían instaladas por defecto en Ubuntu por cuestiones de licencias u otras, como las fuentes de Windows, códecs para ver determinados formatos de vídeo o escuchar algunos formatos de música y alguna que otra librería o programa.

Hace tiempo que Automatix dejó de actualizarse, en parte por las críticas de miembros del equipo de desarrollo de Ubuntu y miembros de la comunidad, pero si lo echan de menos ahora ha surgido Ultamatix.

Ultamatix es un clon de Automatix que facilita la instalación de las 101 aplicaciones más demandadas, que incluye entre otros: códecs multimedia, fuentes de Microsoft, Adobe Acrobat Reader, Skype, Google Earth, software para ripear DVDs, Google Picasa, Adobe Flash player 9, el plugin de MPlayer para Firefox, el JRE y el JDK de Java, …

Porque era tan criticado Automatix???

1. Automatix es como Synaptic, solo que con software privativo por excelencia. Con poner un repositorio bastaria. Es innecesario.
2. El programa tenia varios bugs que te rompian la instalacion o tu usuario. Por ejemplo, escribia como root el archivo que modifica Sesiones (Sistema -> Preferencias -> Sesiones) ocasionando un bonito error al inicio e impidiendo usar el programa Sesiones.
3. Se cargo mas de un entorno grafico con su instalador de drivers.

Fuente: Mundogeek

Conocer consumo ancho de banda red local

, , ,

Si deseamos saber el consumo de ancho de banda que existe en nuestra red podemos utilizar la siguiente aplicación que solo requiere unos ajustes para proporcionarnos información por cada equipo de la red y ofreciendonos también la opción de ver gráficas con los altibajos del tráfico de red.

La aplicación (funcional tanto para Windows como Linux) se llama BandWithd y pueden ver más info aquí:
http://sourceforge.net/projects/bandwidthd