Eliminar por completo trayicon

Iniciado por Nihilus, 9 Julio 2012, 18:23 PM

0 Miembros y 2 Visitantes están viendo este tema.

Nihilus

Hola! me alegro mucho la tarde poder encontrar este foro! en cuento termine de consultarles seguire pegandole una vuelta a los topics, por ahi puedo responder alguno jeje

Mi consulta es la siguiente:

Quiero eliminar el trayicon de un programa (entiendace que lo quiero eliminar para que no aparezca nunca mas). generando un .reg

Mi problema esta en que, primero no se que es lo tiene que decir el archivo de registro, y no se donde encontrar o como el programa en el registro para ver si es que puedo deshabilitar el trayicon desde ahi.

El programa del cual hablo es el GlovePIE 0.45 (se utiliza para ejecutar scrips que modifican funciones del WiiMote para poder utilizarlo en el pc).

En si, lo que ando buscando es que al ejecutar dicho programa no haya posibilidad de que el usuario tenga acceso a ninguna interfas del programa ( que no vea nada del programa ).

Estoy trabajando en Win7Ultimate 32bits SP1.

Si se necesitara un dato mas en particular os lo dare.

Muchas Gracias!  :laugh:

Eleкtro

#1
1º - Ocultar el programa en el área de notificación:
Click derecho en el botón de inicio > propiedades > Área de notificación - Personalizar > (Aquí elijes es programa) Ocultar icono y notificaciones.

2º - Adicionalmente, Aplicar una política de grupo para deshabilitar cambios en el área de notificación (Para que nadie pueda mostrar el programa de nuevo en el tray):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoAutoTrayNotify"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoAutoTrayNotify"=-


EDITO: Si quieres rehabilitarlo:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoAutoTrayNotify"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoAutoTrayNotify"=-


EDITO: 3º - (Y si aún quieres más seguridad) Modifica los permisos de usuario de las claves anterioriores para que ningún listillo pueda deshacer los cambios (O no sepa hacerlo xD):

Lo puedes hacer con "subinacl" o "setacl", Primero tienes que descargarte uno de los dos programas, Aquí te dejo la manera de hacerlo con subinacl (Desde la consola de Windows):

Código (dos) [Seleccionar]
subinacl /subkeyreg "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /deny=%username%=F >nul
subinacl /subkeyreg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /deny=%username%=F >nul


Saludos








Nihilus

Muy bueno tu aporte! olvide mencionar que todo eso tiene que suceder a la hora de intalar el programa.

Osea... tengo todos los archivos para que el programa funcione 100% y lo que quiero hacer es crear un intalador MSI (esto lo hago con el InstallShield 2010) que, en los prosesos de intalacion de dicho programa se cree en el registro de windows (Win 7) una clave que diga que el "TrayIcon" no sea visualizado por el usuario.

Si es que se puede hacer esto directamente en el .exe del programa en cuestion tengo como herramienta el Resource Hacker, pero no se si con el se podra eliminar el trayicon en el exe mismo.

Saludos!


Eleкtro

#3
El trayicon no es un recurso que puedas eliminar con un editor de recursos... Es un código escrito en el código fuente del programa, Forma parte de la aplicación... Así que a menos que dispongas del Source, Y tengas nociones básicas de ese lenguaje para "capar" la parte del tray, olvídate.




El primer paso que te dije, Hay que hacerlo manualmente, Ya que esa modificación no se guardan en el registrro de Windows. No es posible automatizar esa tarea.
Desde el registro puedes ocultar todos los iconos, mostrarlos todos, denegar el acceso... Pero las modificaciones de lo que tu pides (Modificar un elemento de la lista desplegable del area de notificación) se guardan en otra parte. (En ningún lugar "editable").

Lo que podrías comprobar es si el programa dispone de alguna opcion configurable desde el registro para mostrar/ocultar el tray icon (Así reemplazarías este paso, por el 1er paso):

En la clave:
HKey_current_user\Software\EL PROGRAMA
Busca algún valor con nombre tipo "ShowTray", "Tray", etc...

EDITO: Para que no queden dudas: Si no existe dicho valor, No intentes crear el valor y esperar que funcione.

Saludos.









Nihilus

Muchas Gracias!

Tengo el codigo fuente del programa... lo que no se es si es editable o no ---

He podido encotrar la siguiente linea dentro del source...



¿Se puede con tu programa editar ese codigo para que no exista mas el TrayIcon?

Saludos!

Eleкtro

#5
Eso no es un source xD. Eso es el programa ya compilado.
http://es.wikipedia.org/wiki/C%C3%B3digo_fuente

No se si estás usando el exescript editor como programa de editor de recursos, Pero si lo estás haciendo, NO TIENE NADA QUE VER. El exescript es para editar scripts. Aunque tenga una pestañita que ponga "Resource view".

Pero viendo la imagen, Me has recordado un "truco" que suele funcionar:

1º - Abre el ejecutable del proyecto, En un editor hexadecimal.
HexWorkshop, Por ejemplo.

2º - Busca el string "jvtrayicon", en fin, todas las relacionadas con el tray (como en la imagen que has colocado). Y empieza a modificar el valor hexadecimal de cada una por "+1" hacia arriba.
Osea: A > B
         E > F
Poco a poco: Un solo cambio, guardas el cambio, Y pruebas el programa. Si se sigue viendo el tray, Repites el proceso, en el siguiente valor.

La intención de esta técnica es romper la función del tray icon, Cuando digo romper quiero decir dejarlo inutilizable.
También lo podrias hacer con OllyDBG pero mis conocimientos sobre ensamblador son nulos.


PD: Pero... Por lo que veo parece que el programa tiene funciones como "autohide tray icon" etc... Y eso quizás se guarde en algún sitio (En la clave que te dije, O en un archivo de configuración.).

Anda, Si te apetece, Sube aqui el proyecto y te monitorizo las claves de registro o los archivos (Si crea alguno el programa) para ver si con lo que sé es suficiente para poder automatizarlo...

Saludos.