2009-08-19 8 views
2

J'ai une application programmée en C# 3.5 sous Windows. Cette application est également compatible Mono donc il est également utilisé sur Mac OS et Linux.Mono: Définir un programme à lancer au démarrage pour un système d'exploitation alternatif.

Il existe une option "Lancer au démarrage" dans mon application. Pour l'instant, il est grisé lorsque le système d'exploitation n'est pas Windows car j'utilise le registre.

Mais je cherche un moyen d'effectuer la même opération pour les autres systèmes d'exploitation. Et cela devrait être faisable avec Mono. J'ai besoin de cela au moins pour les MacOS (versions les plus récentes) et les systèmes Linux (surtout Ubuntu s'il diffère d'une distribution à l'autre).

Edit: il est une « application utilisateur » avec l'interface utilisateur ...

Répondre

6

Malheureusement, chaque système d'exploitation a un autre moyen de mettre cela en place. Sur Mac + Unix/Linux, vous allez presque vouloir que ce soit une option au niveau de l'utilisateur.

Pour Mac, vous pouvez vérifier les options System Startup (pour les applications non-gui) ou les ajouter manuellement aux éléments de démarrage de l'utilisateur.

Pour Linux, vous rencontrerez d'autres problèmes, car les distributions differnet gèrent cela différemment. Pour le démarrage du système, vous voulez souvent ajouter un script de démarrage à /etc/rc.d/rc.local (non-gui, démarrage du système, mais cela peut varier en fonction des distributions). Si c'est une application utilisateur, pour Linux, je laisserais cela à l'utilisateur, et retirerais complètement l'option, car elle est généralement gérée au niveau de l'utilisateur, et les moyens varient en fonction de l'environnement de bureau.

+4

freedesktop.org spécifie des emplacements de démarrage de session graphiques spécifiques à l'utilisateur et à l'échelle du système pour les environnements de bureau conformes. Xfce les honore; Gnome et KDE font probablement aussi bien. L'emplacement par défaut spécifique à l'utilisateur est '~/.config/autostart /'; Je crois que le système à l'échelle est '/ etc/xdg/autostart /'. Les fichiers '.desktop' de ces répertoires sont démarrés automatiquement par le gestionnaire de session. C'est le meilleur pari sur Linux, et le supporter est une chose raisonnable. –

+0

Oui, et c'est probablement la meilleure option. Certaines distributions vont malheureusement à l'encontre de cette norme, mais heureusement, elles gagnent en popularité et deviennent de plus en plus courantes. –

+0

Il semble que c'est assez compliqué de le faire par code, donc la meilleure idée semble de laisser l'utilisateur le faire manuellement. –

2

Pour linux:

Si vous voulez que votre application démarre comme un deamon au démarrage du système, vous aurez besoin de se pencher sur initscripts, qui diffèrent entre les différentes distributions.

Si vous voulez que votre application démarre lorsque l'utilisateur se connecte à son bureau, cela dépend de l'environnement de bureau de l'utilisateur. Par exemple pour kde4 vous pouvez mettre un lien vers votre application dans ~/.kde4/Autostart.

Questions connexes