2009-05-20 9 views
1

J'écris une application personnalisée basée sur xulrunner et je souhaite que certains fichiers soient déployés dans le profil utilisateur la première fois que l'application est exécutée.Comment exécuter du code pendant le "firstrun" d'une application Xulrunner

J'ai placé les fichiers dans le répertoire par défaut/profil de mon application, mais ils n'ont pas été copiés dans le profil de l'utilisateur lors de la première exécution de l'application.

Dois-je écrire du code supplémentaire ou cela devrait-il se faire automatiquement? La chose qui est copiée à coup sûr est les préférences par défaut de l'application.

Existe-t-il un moyen "standard" offert par Firefox ou certaines des nombreuses applications de mozilla? Tout lien vers une lecture sera utile. Tout indice est précieux.

Merci d'avance.

Répondre

1

Malheureusement le standard façon de faire du code de première exécution consiste à utiliser le système pref pour déterminer si vous avez ou n'avez pas encore fait quelque chose. Il y a quelques pièges cependant:

  • Assurez-vous que ce code ne s'exécute qu'une seule fois. Si votre code Firstrun est dans une fenêtre de superposition ou de navigateur principal, il peut être exécuté plusieurs fois (une fois par fenêtre)

  • Après avoir exécuté le code et défini le pref, assurez-vous de vider les préférences, car les préférences sont écrites à proximité et ne sera enregistré lorsque vous fermez.

    Components.classes [ '@ mozilla.org/preferences-service;1'] .getService (Components.interfaces.nsIPrefService) .savePrefFile (null);

+0

Il s'est avéré que parce que j'utilisais un "-profile ../../Data" paramètre avec un dossier prédéfini pour où le profil devrait être. Les fichiers de defaults/profile n'ont pas été copiés. J'ai supprimé plusieurs fois le contenu du dossier Profil prédéfini, mais rien ne s'est produit Après avoir supprimé le paramètre, cela a fonctionné. Cependant, j'ai toujours besoin de l'indice que vous avez fourni. Merci Anotherjesse –

1

Vous pouvez également utiliser le système de préférences de concert avec l'interrogation d'un numéro de version d'extension. Lorsque la version change, appelez votre fonction. Cela vous donnerait la possibilité d'appeler la fonction plus tard si vous le souhaitez, mais seulement lors d'un changement de version.

+0

Ah c'est très utile. merci beaucoup pour l'indice supplémentaire. –

Questions connexes