elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ocultar icono del area de notificacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ocultar icono del area de notificacion  (Leído 9,341 veces)
llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Ocultar icono del area de notificacion
« en: 22 Septiembre 2016, 16:31 pm »

Hola a todos !! quisiera estar seguro de algo estimados, de que manera puedo ocultar por completo un icono del area de notificacion?? Haciendo hooking, inyectando dll y todo esos metodos, llegare a ocultar el icono que yo quiero ???? Necesito hacer esto utilizando cualquier metodo posible. He probado ya varios programas y ninguno me funciona.

Agradeceria bastante que me ayuden con esto ya que estoy en unos aprietos.
Muchas gracias de ante mano.


En línea

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #1 en: 22 Septiembre 2016, 17:59 pm »

He conseguido ocultar TODOS los iconos del area de notificacion con regedit pero lo que quiero es ocultar un icono en especifico   :-\ y eso no tengo ni la menor idea de como hacerlo.
Iluminenme porfavor !!!!!!!  :(  :(  :(

PSDT: El icono es un programa que yo lo ejecuto al iniciar windows que nose como pero tengo que ocultarlo si o si, claro que tiene que seguir ejecutandose el programa.


« Última modificación: 22 Septiembre 2016, 18:01 pm por llAudioslavell » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #2 en: 23 Septiembre 2016, 01:59 am »

¿es un icono con tetas o algo así o que? XD

Lo típico sería dar con el botón derecho al reloj de la barra de tareas. Y haces clic en 'Personalizar iconos de notificación'  Busca el que no quieres que se vea y cambias a 'Ocultar icono y notificación'. Pero esto no lo quita realmente, solo lo oculta, per si le das para extender los iconos de notificación, se verá igualmente.

Desde consola o modificando algo del registro no se me ocurre como. Tan solo modificando el propio programa.

Para modificarlo puedes usar Resource Hacker.

Haz una copia del EXE del programa y después abres el EXE del programa con Resource Hacker. RH mostrará un árbol de carpetas y debería  haber una carpetita llamada Icon Group que contiene iconos. Los puedes eliminar o bien sustituirlo por iconos nulos sin imagen. Yo los eliminaría directamente, selecciona un icono o grupo de iconos, clic con el botón derecho y selecciona 'Delete Resource'. Deberías borrar el que se ve en el área de notificación.

Luego guardas y al hacerlo RH creará una copia automática del EXE original y el modificado. Si ejecutas el EXE (el modificado) ya no debería mostrar ningún icono de notificación.

No te preocupes si  el icono del  EXE cambia. Si el programa usa un icono para todo el área de notificación, el EXE, la ventana, etc. Al borrarlo Windows le pone uno general pero no mostrará ninguno en el área de notificación.


va olvídalo he probado lo de borrar el icono y no funciona. Debería pero no.

Quizás con otro tipo de modificación, accediendo al código binario.






« Última modificación: 23 Septiembre 2016, 02:10 am por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #3 en: 23 Septiembre 2016, 17:45 pm »

Una solución programática podría ser identificar el botoncito que quieres eliminar (si, esos iconos del área de notificación son controles de tipo Button) y seguídamente llamar a la función Win32 ShowWindow, CloseWindow o DestroyWindow o tal vez DestroyIcon, usando la parametización adecuada para ocultar y/o cerrar la ventana.

El control que he marcado en la imagen de abajo, es un control de tipo Toolbar, y el nombre de clase de la ventana de ese control es ToolbarWindow32.


El árbol de nombres de clases empezando por la ventana padre (la barra de tareas) es la siguiente:
  • Shell_TrayWnd
  •    TrayNotifyWnd
  •        SysPager
  •            ToolbarWindow32

El problema, es que los botoncitos/iconos de adentro parecen inaccesibles hasta donde probé, no se pueden enumerar con la función Win32 EnumChildWindows ni tampoco se le puede hacer un Spy con las herramientas específicas para el análisis de un árbol de controles y jerarquías de ventanas, ni siquiera el framework de Microsoft UI Automation es capaz de identificar esos botoncitos/iconos dentro del área roja, la única forma que encontré para identificar esos botoncitos/iconos fue utilizando la herramienta Visual UI Automation de la SDK de Windows, pero esos controles ni siquiera exponen un handle de ventana ni ningún otro tipo de identificador que pudiera servirnos para automatizar la tarea.

Si examinamos los mensajes de controles disponibles para un control Win32 de tipo Toolbar, no parece haber nada que nos permita eliminar un botón específico:
...o al menos, en un principio a mi me parece que no, pero voy a hecharle un ojo detenidamente a ver si logro encontrar algún mensaje que nos sirva.

EDITO: En teoría le podemos enviar el mensaje TB_BUTTONCOUNT al control para obtener la cantidad de botones, y de esta manera luego podemos hacer un búcle para enviarle el mensaje TB_GETBUTTON con el índice de cada botón para obtener informacion de cada botón, y así identificar el botón que se quiere ocultar o eliminar.
El problema es que en mi Windows 10 no funciona, a pesar de haber utilizado las estructuras definidas por Microsoft: http://referencesource.microsoft.com/#UIAutomationClientsideProviders/MS/Internal/AutomationProxies/CommonXSendMessage.cs,d6764b5a08c7e1e8,references se me refresca el escritorio al enviar el mensaje TB_GETBUTTON incluso pasándole un valor nulo al parámetro lParam de dicho mensaje, no hay manera de que devuelva la información de un botón, jeje, seguiré investigando a ver...

Saludos!
« Última modificación: 23 Septiembre 2016, 19:47 pm por Eleкtro » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #4 en: 24 Septiembre 2016, 13:33 pm »

Una solución programática podría ser identificar el botoncito que quieres eliminar (si, esos iconos del área de notificación son controles de tipo Button) y seguídamente llamar a la función Win32 ShowWindow, CloseWindow o DestroyWindow o tal vez DestroyIcon, usando la parametización adecuada para ocultar y/o cerrar la ventana.

El control que he marcado en la imagen de abajo, es un control de tipo Toolbar, y el nombre de clase de la ventana de ese control es ToolbarWindow32.


El árbol de nombres de clases empezando por la ventana padre (la barra de tareas) es la siguiente:
  • Shell_TrayWnd
  •    TrayNotifyWnd
  •        SysPager
  •            ToolbarWindow32

El problema, es que los botoncitos/iconos de adentro parecen inaccesibles hasta donde probé, no se pueden enumerar con la función Win32 EnumChildWindows ni tampoco se le puede hacer un Spy con las herramientas específicas para el análisis de un árbol de controles y jerarquías de ventanas, ni siquiera el framework de Microsoft UI Automation es capaz de identificar esos botoncitos/iconos dentro del área roja, la única forma que encontré para identificar esos botoncitos/iconos fue utilizando la herramienta Visual UI Automation de la SDK de Windows, pero esos controles ni siquiera exponen un handle de ventana ni ningún otro tipo de identificador que pudiera servirnos para automatizar la tarea.

Si examinamos los mensajes de controles disponibles para un control Win32 de tipo Toolbar, no parece haber nada que nos permita eliminar un botón específico:
...o al menos, en un principio a mi me parece que no, pero voy a hecharle un ojo detenidamente a ver si logro encontrar algún mensaje que nos sirva.

EDITO: En teoría le podemos enviar el mensaje TB_BUTTONCOUNT al control para obtener la cantidad de botones, y de esta manera luego podemos hacer un búcle para enviarle el mensaje TB_GETBUTTON con el índice de cada botón para obtener informacion de cada botón, y así identificar el botón que se quiere ocultar o eliminar.
El problema es que en mi Windows 10 no funciona, a pesar de haber utilizado las estructuras definidas por Microsoft: http://referencesource.microsoft.com/#UIAutomationClientsideProviders/MS/Internal/AutomationProxies/CommonXSendMessage.cs,d6764b5a08c7e1e8,references se me refresca el escritorio al enviar el mensaje TB_GETBUTTON incluso pasándole un valor nulo al parámetro lParam de dicho mensaje, no hay manera de que devuelva la información de un botón, jeje, seguiré investigando a ver...

Saludos!

Como dije modificando el código fuente del programa (que yo he llamado código binario en la anterior respuesta) con un simple editor Hexadecimal.  Solo hay que saber que tocar  :silbar:


Acabo de recordar que yo tenía algo de eso mediante programación. Había que usar el handle de la aplicación y enviar un mensaje. A ver si lo encuentro....
« Última modificación: 24 Septiembre 2016, 13:53 pm por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #5 en: 24 Septiembre 2016, 15:07 pm »

Como dije modificando el código fuente del programa (que yo he llamado código binario en la anterior respuesta) con un simple editor Hexadecimal.  Solo hay que saber que tocar  :silbar:

Efectivamente, mediante un desamblador+depurador como IDA u OllyDbg se podría localizar la instrucción que invoka al icono de notificación y luego eliminarla/bypassearla (o si despues de localizarla se prefiere aplicar el parche a las direcciones implicadas mediante un editor hexadecimal, allá cada uno), eso sería una solución alternativa, sin embargo requiere conocimientos de ingenieria inversa que el usuario no parece tener... (y yo tampoco los tengo a un nivel avanzado)

Si estuviesemos hablando de una aplicación .NET entonces sería bastante sencillo, se podría acceder directamente al código fuente representado en código de lenguaje para modificarlo a nuestro gusto y listo, para ello se pueden usar decompiladores como .NET Reflector de Redgate.

Saludos!
« Última modificación: 24 Septiembre 2016, 16:10 pm por Eleкtro » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #6 en: 24 Septiembre 2016, 15:30 pm »

ya lo encontré   :laugh:

Realmente es muy simple, busqué entre mis snippets modificaciones de ventana, en los cuales les envío un mensaje  a una ventana para cambiar los menús la barra añadir cosas, obtener informción, etc.

Y finalmente es de lo más simple. Simplemente ocultando la ventana con ShowWindow. Más bien eliminando el modo 'ventana'


Código
  1.   <DllImport("user32.dll")> _
  2.    Shared Function ShowWindow(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
  3.    End Function


Obtienes el handle mendiante Process, con NET por ejemplo:

Código
  1.     Dim NommbreAppa As String = "Notepad"
  2.        Dim HwndProcess As IntPtr = IntPtr.Zero
  3.        For Each Proceso In Process.GetProcesses()
  4.            If Proceso.ProcessName = NommbreAppa.ToLower Then
  5.                HwndProcess = Proceso.MainWindowHandle
  6.            End If
  7.        Next


y luego le cambias el estado a oculto:

Código
  1. ShowWindow(HwndProcess, 0)

hay que poner 0, para ocultarlo 1 para minimizado y 2 para normal.

Sin embargo una vez oculto (bueno sin ventana) Process.GetProcesses(), no encuentra el proceso. Lo digo por si luego se quiere cambiar el estado a Visible.
Entonces hay que usar otro código para obtener el handle de un proceso sin ventana. Hay algunos por ahí.


pero.... no se si el truquillo funcionaría con todo tipo de procesos, si al hacer clic en el icono es posible maximizar la aplicación o mostrarlo en ventana, en principio si que debería funcionar.

Si la aplicación no está en modo ventana entonces Process.getProcesses no encontrará el handle. Es necesario que esté en modo ventana.,


...Estoy buscando uno que tenía que desactivaba el icono pero no lo encuentro  :(

El método era similar. Me cachis a ver si lo encuentro
« Última modificación: 24 Septiembre 2016, 15:46 pm por okik » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #7 en: 24 Septiembre 2016, 16:13 pm »

Vamos a ver @okik, él lo que quiere es ocultar el icono del area de notificación, no la ventana principal del proceso, son dos cosas distintas, una ventana Win32 expone un controlador de ventana, pero el botón del área de notificación no.

Aparte, lo de llamar a la función ShowWindow ya lo comenté:
Una solución programática podría ser identificar el botoncito que quieres eliminar (si, esos iconos del área de notificación son controles de tipo Button) y seguídamente llamar a la función Win32 ShowWindow, CloseWindow o DestroyWindow o tal vez DestroyIcon, usando la parametización adecuada para ocultar y/o cerrar la ventana.
...fue lo primero que escribí a modo hipótesis, puesto que esa metodología no funcionará sin un identificador disponible.

Saludos!
« Última modificación: 24 Septiembre 2016, 16:19 pm por Eleкtro » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #8 en: 29 Septiembre 2016, 13:24 pm »

No es mi intención discutir solo aclarar

A ver, si quiere ocultar el icono de notificación por lógica debe ser porque no quiere que otra persona pueda ver que se está ejecutando dicho programa ¿no? pues la idea es que oculte la aplicación o muestre a su antojo según quiera que se vea o no el icono de notificación.

No con todas las apliciaciones funciona lo de ocultar la ventana. Solo con aquellas que se inician en modo venta y tienen la opción de minimizar en el icono de notificación.

Sin embargo, creo que si que es posible ocultar sólo el icono de notificación usando:

Código:
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

pero es necesario obtener el ID del icono, que eso ya no se como


nota: creo que yo estaba reeditando mi respuesta cuando tu pusiste la tuya luego no ha sido mi intención pisarte tu respuesta  :-\
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ocultar icono del area de notificacion
« Respuesta #9 en: 29 Septiembre 2016, 18:34 pm »

si quiere ocultar el icono de notificación por lógica debe ser porque no quiere que otra persona pueda ver que se está ejecutando dicho programa ¿no?

Eso es una mera suposición.

De todas formas @okik sinceramente no tiene mucho sentido que sigamos debatiendo este asunto cuando para empezar el usuario que formuló la pregunta no ha vuelto a dar señales de vida (a pesar de haberse conectado recientemente), en mi opinión es mejor que no hagamos más el tonto ofreciendo ayuda en este post investigando algo que implica esfuerzo y escasea de documentación... puesto que probablemente el esfuerzo nunca se verá agradecida ni para ti ni tampoco para mi :-\, al menos eso es lo que haré yo, ignorar este tema.

Saludos!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar icono de área de notificación
GNU/Linux
Gambinoh 4 4,200 Último mensaje 18 Abril 2011, 02:07 am
por Gambinoh
Minimizar al area de notificacion
Programación Visual Basic
Velku 1 4,705 Último mensaje 17 Agosto 2011, 02:43 am
por Elemental Code
Como quitar iconos de la area de notificación
Windows
Puntoinfinito 5 7,021 Último mensaje 9 Marzo 2012, 17:30 pm
por Eleкtro
Como leer info del área de notificación
Programación Visual Basic
Fran1946 8 5,534 Último mensaje 17 Enero 2014, 14:43 pm
por Fran1946
Ocultar micrófono notificación android
Android
Eiyou 0 2,287 Último mensaje 21 Febrero 2021, 01:11 am
por Eiyou
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines