Pregunta

Estoy recibiendo informes contradictorios de varios lugares. La revisión de Engadget dice InputManager plug-ins siendo ignorados por completo (y causando un comportamiento extraño si la aplicación se carga en el modo de 32 bits), pero esta lista de correo hilo dice que van a trabajar si la compatibilidad de 32/64-bit es correcta.

Así que tengo dos preguntas:

  • Cómo podemos llegar a utilizar InputManagers en Snow Leopard?
  • En caso afirmativo, ¿funcionará del mismo modo que en Leopard. Y si no, lo que es bueno una solución (porque 1Password está aparentemente trabajando en una solución)?
¿Fue útil?

Solución

Si usted realmente necesita para inyectar código en aplicaciones para lograr lo que estamos tratando de hacer, usar mach_inject .

Y por favor, , abra una incidencia ganchos que solicitan para que pueda implementar su software de una manera más segura en el futuro.

Otros consejos

http://developer.apple.com/releasenotes/Cocoa/AppKit .html # NSInputManager

  

La carga automática de haces situados en InputManagers carpetas es ahora oficialmente no compatible. Las condiciones para válido haz gerente de entrada se tensa aún más. Esta funcionalidad es probable que esté deshabilitado en una versión futura.

     
      
  1. La instalación válida se limita ahora a la   / Única carpeta Biblioteca / InputManagers.   Bultos en otros lugares son   silencio ignorado.

  2.   
  3. Todos los archivos en el paquete y / Biblioteca carpeta / InputManagers propio   debe ser propiedad del usuario root y   grupo de administración. No hay archivos dentro de la   paquete puede tener un grupo u otro de escritura   permisos.

  4.   
  5. procesos que se ejecutan con el privilegio de la raíz (getuid () == 0 o geteuid ()   == 0) no se puede cargar cualquier gestor de entrada de haz.

  6.   
  7. procesos que se ejecutan con el privilegio de grupo de rueda no pueden cargar cualquier paquete   gerente de entrada.

  8.   
  9. El proceso debe estar en la sesión de espacio de trabajo activo en el momento de   la carga de los paquetes.

  10.   
  11. El proceso no debe ser contaminado por el cambio de usuario o ID de grupo (comprobado por   issetugid ()).

  12.   
  13. No hay procesos de 64 bits puede cargar cualquier gestores de entrada paquete.

  14.   

Parece que Chax (un plugin para InputManager iChat) ha cambiado ahora a ser un lanzador de aplicaciones para iChat: ejecutar Chax.app y carga iChat con cortes adicionales de interfaz de usuario

.

Buscar rápidamente en las cadenas en el pequeño lanzador Chax.app/Contents/MacOS/Chax binario, parece como si estuviera eligiendo una técnica de intercepción de la biblioteca más fácil que el mach_inject ya mencionada: en lugar de eso acaba de establecer la DYLD_INSERT_LIBRARIES variable de entorno antes de lanzar su aplicación de destino (como LD_PRELOAD en Linux).

Por supuesto, esto no hace que mis InputManagers favoritos, MultiClutch y flote, trabajar de nuevo en Snow Leopard - eran más útiles porque han trabajado con todas las aplicaciones Cocoa. Aún no sabe cuál sería la mejor solución para estas aplicaciones.

No se ha descargado la beta de 1Password 3 para tratar de ver lo que estaban haciendo, porque parecía que usted tiene que firmar un acuerdo de confidencialidad virtual como el primero.

1Password 3.0 funciona alrededor de la necesidad de un InputManager por montándose sobre del navegador plug-in API lugar Safari. El artículo vinculado también proporciona una comparación muy pragmático de varias alternativas de código de inyección a InputManagers.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top