Domanda

sto ricevendo notizie contrastanti dai vari posti. La recensione di Engadget dice InputManager plug-in di essere completamente ignorati (e causando strano comportamento se l'applicazione viene caricata in modalità a 32 bit), ma questa mailing list discussione dice che funzionano se la compatibilità 32/64-bit è giusto.

Così ho due domande:

  • si arriva a usare InputManagers in Snow Leopard?
  • Se sì, funzionerà allo stesso modo come in Leopard. E se no, ciò che è buono una soluzione (perché 1Password è apparentemente lavorando ad un fix)?
È stato utile?

Soluzione

Se avete veramente bisogno di iniettare il codice nelle applicazioni per compiere ciò che si sta cercando di fare, usare mach_inject .

E per favore un bug ganci che richiedono in modo da poter implementare il software in un modo più sicuro in futuro.

Altri suggerimenti

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

  

Il caricamento automatico dei fasci si trovano nelle cartelle InputManagers è ora ufficialmente supportato. Le condizioni per valide gestore di input fascio viene ulteriormente serrati. Questa funzionalità è probabile essere disabilitato in una versione futura.

     
      
  1. L'installazione valida è ora limitato al   / Solo cartella Libreria / InputManagers.   Fasci in altre posizioni sono   silenziosamente ignorato.

  2.   
  3. Tutti i file nella cartella e fagotto / Library / InputManagers sé   deve essere di proprietà dell'utente root e   gruppo admin. Nessun file all'interno della   bundle può avere gruppo o altra scrittura   permessi.

  4.   
  5. i processi in esecuzione con i privilegi di root (getuid () == 0 o geteuid ()   == 0) non può caricare qualsiasi gestore di input fascio.

  6.   
  7. processi eseguiti con privilegio gruppo ruota non può caricare qualsiasi fascio   direttore di ingresso.

  8.   
  9. Il processo deve essere nella sessione di lavoro attiva al momento della   caricamento dei fasci.

  10.   
  11. Il processo non deve essere contaminato cambiando utente o gruppo id (controllato da   issetugid ()).

  12.   
  13. Senza processi a 64 bit possono caricare tutti i gestori di ingresso fascio.

  14.   

Si presenta come Chax (un plugin InputManager per iChat) ha commutato ora ad essere un app launcher per iChat: si esegue Chax.app e carica iChat con hack UI aggiuntivi

.

guardare velocemente le corde del piccolo lanciatore Chax.app/Contents/MacOS/Chax binario, sembra come se stesse scegliendo una tecnica di intercettazione biblioteca più facile che il mach_inject già citato: invece è sufficiente impostare la DYLD_INSERT_LIBRARIES variabile d'ambiente prima di lanciare la vostra applicazione di destinazione (come LD_PRELOAD in Linux).

Naturalmente, questo non rende i miei preferiti, InputManagers MultiClutch e Afloat, lavorare di nuovo in Snow Leopard - erano più utili perché hanno lavorato con tutte le applicazioni Cocoa. Ancora non è sicuro di quello che la migliore soluzione sarebbe per queste applicazioni.

Non ho scaricare il 1Password 3 beta per provare e vedere quello che stavano facendo, perché sembrava si deve firmare un NDA virtuale prima.

1Password 3.0 opere in tutto la necessità di un InputManager da Portare in dono del browser plug-in API invece Safari. L'articolo collegato prevede anche un confronto molto pragmatico di varie alternative di code-iniezione a InputManagers.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top