jump to navigation

Interceptar la función WM_QUERYENDSESSION Mayo 1, 2008

Posted by erik in : VisualBasic , add a comment

Este codigo sirve para interceptar la funcion WM_QUERYENDSESSION que se produce en el sistema, este codigo es util para virus, y etc…

Primero lo que tendriamos de hacer es crear un modulo BAS:

Código:

Option Explicit
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _
    ByVal lpPrevWndFunc As Long, _
    ByVal Hwnd As Long, _
    ByVal MSG As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
    ByVal Hwnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = -4
Public Const WM_QUERYENDSESSION = &H11
Global Const WM_CANCELMODE = &H1F
Global lpPrevWndProc As Long
Public Sub Hook(Hwnd_Form As Long)
    lpPrevWndProc = SetWindowLong(Hwnd_Form, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub Unhook(Hwnd_Form As Long)
    Dim ret As Long
    ret = SetWindowLong(Hwnd_Form, GWL_WNDPROC, lpPrevWndProc)
End Sub
Function WindowProc(ByVal Hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal wParam As Long, _
                    ByVal lParam As Long) As Long
    If uMsg = WM_QUERYENDSESSION Then
        WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, WM_CANCELMODE, wParam, wParam)
            MsgBox "WM_QUERYENDSESSION Interceptado", vbInformation, "WM_QUERYENDSESSION"
            Exit Function
    End If
    WindowProc = CallWindowProc(lpPrevWndProc, Hwnd, uMsg, wParam, lParam)
End Function

Luego creamos el formulario:

Código:

Option Explicit
Private Sub Form_Load()
    Hook Me.Hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Unhook Me.Hwnd
End Sub

[2ª Parte] MSN Programs Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Bueno aqui el segundo codigo de utilización, como siempre hacemos el proceso de las variables, y cuando lo tengamos hecho, necesitaremos:

- 2 Commands

Al command1, le añadimos el codigo de Conectar msn:

Código:

msn.Autosignin

y ahora en el Command2, le añadiremos el codigo de desconectar msn:

Código:

msn.Signout

Como veis, muy sencillo.

En el proximo pondre para saber el estado de conexión del msn con actualizador cada 1 seg.

MSN Programs Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Bueno, os voy a enseñar a crear algun que otro programa aqui con Visual Basic 6.0, sencillamente y facil, ire añadiendo, antes de nada, añadimos esto al codigo;

Código:

Public WithEvents msn As MessengerAPI.Messenger

Luego en el form_load añadimos esto:

Código:

Set msn = New Messenger

Como veis ya hemos dejado claro que el programa va a estar orientado a msn, pero aun nos falta 1 toque mas para poder utilizar codigos de mensajeria instantanea MSN.

Vamos a Project, luego a References, y activas Messenger API Type Library.
Ahora ya podemos empezar a generar programas Wink.

Primer Programa: Contactos MSN

Aqui os voy a enseñar a hacer un miniprograma enseñandote todos tus contactos, y los que estan online.

Necesitaremos:

- 2 ListBox
- 2 Command
En el primer Command añadiremos el codigo para que se vean todos los contactos que tienes, añadimos este code:

Código:

' Esto sera el primer ListBox y pondremos todos los contactos, foromsn.com
Dim msncontact As IMessengerContact
Dim msncontacts As IMessengerContacts
Set msncontacts = msn.MyContacts
For Each msncontact In msncontacts
List1.AddItem (msncontact.SigninName)
Next

Bueno, ya hemos colocado uno, ahora colocaremos el que se vean los contactos online; Command2:

Código:

On Error Resume Next
contactosenlinea List2, MISTATUS_ONLINE
If List1.ListCount = 0 Then
List2.AddItem "No hay contactos En Linea"
End If

Y ya esta, es muy facil, cualquier error me avisais por el post o mp Wink.
El proximo codigo sera, Conectar y Desconectar MSN.

Añadir texto sin sobreescribir Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Código:

Option Explicit

Private Sub Form_Load()
Open "C:\archivo.txt" For Append As #1
    Print #1, "palabra\notexto ..."
Close #1
End Sub

Este codigo es muy sencillo lo unico que hace es introducir frases, oraciones etc.. en un archivo sin sobreescribir lo que ya tenia.

Winsock Control [Localhostname] Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Antes de mirar tu localhostname, necesitas ir a proyect >> Components y activar Microsoft Winsock Controls, una vez activados, a?ades un winsock al form, y 1 textbox.

Luego en el Form_Load a?ade este c?digo:

Código:

Dim lhn As String
lhn = Winsock1.LocalHostName
Text1.Text = Trim$(lhn)

Una vez a?adido, lo compilas y huala, te dice tu Localhostname.

Es muy sencillo, pronto a?adire m?s cosas sobre Winsock Controls

Trim$ Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Necesitamos
2 TextBox, que uno se llame text1 y el otro ruta.
1 CommandButton y listo.

Código: [Seleccionar]

Private sub Command1_click()
open trim$(ruta) for binary as #1
dim espaciotxt as string
expaciotxt = space(lof(1))
get #1,espaciotxt
close #1
text1.text = espaciotxt
End Sub

Private sub Form_Load()
text1.Multiline = true
End sub

El sistema trim$ que pongo es para que el valor de la ruta sea el valor del ruta.text
Es muy sencillo.

Buscar archivos Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Bueno, es lo que os voy a enseñar actualmente.
Esto es para buscar un archivo en C:,Mis documentos y lo que querais, donde pone &, haces esto: & carpeta &, y sigues con el codigo

Necesitaremos 1 textbox y 1 Commandbutton

Este codigo se pone en el commandbutton, y listo.

Código:

Private Sub Command1_Click()
Dim resultado As String
Dim archivo As String
archivo = "" & "\archivo_a_buscar.exe"
resultado = Dir(archivo)
If Len(resultado) = 1 Then
Text1.Text = "El archivo que se buscaba se ha encontrado"
Else
Text1.Text = "El archivo que se buscaba no se ha encontrado"
End If
End Sub

Codigo hecho por mi Smiley!
Si quereis saber algo, me avisais Smiley.

FSO - Copiar carpetas Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Lo que hariamos en referencia es activar FSO y luego para copiar una carpeta añadiriamos este código:

Código:

Dim fso As FileSystemObject     
Set FSO = New FileSystemObject
' En rutacopiar añadiriamos la ruta de la carpeta que queremos copiar
' y en rutaPegar la ruta donde se pegara la carpeta
FSO.CopyFolder rutaCopiar, rutaPegar
End Sub

Muy sencillo, buena suerte.

Crear un navegador en VB.NET Abril 30, 2008

Posted by erik in : VisualBasic , add a comment

Vamos a aprender a crear un navegador en visual basic.net haber que tal se os da.

Le damos a crear, y creamos una aplicacion de consola, y ahora vamos a herramientas.
Seleccionas el objeto “Panel” y haces un cuadrado en el formulario que es donde ira el webbrowser, te deveria quedar algo así:

Despues añadimos el webbrowser en el panel, un textbox y 1 Commandbutton, es muy simple, en el commandbutton le ponemos este codigo:

Código:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim texto As String
        texto = TextBox1.Text
        WebBrowser1.Navigate(Trim$(texto))
    End Sub

Si os dais cuenta utilizo mucho la utilizacion trim$(), ya explicare para que sirve.

Y huala, escribis la pagina web en el textbox le dais al button1 y listo, os habre la que quereis.

- Webbrowser1.Go home : Pagina principal
- WebBrowser1.St op : Cancelar la busqueda o actualizacion
- Webbrowser1.Go back : Ir atras
- WebBrowser1.Go Forward : Ir adelante
- WebBrowser1.Go search : Ir al buscador
- WebBrowser1.Re fresh : Actualizar

Si quereis saber para que sirven porque no lo sabeis me avisais.
Ya teneis vuestro navegador.NET Wink