par , 21/12/2016 à 11h01 (683 Affichages)
Ce que tu souhaites faire débute ici :
https://www.codeproject.com/articles...ociation-class
1- Dans un premier temps tu créés un installeur pour ton application car cette dernière devra toujours être exécuté depuis le même chemin (%program files%) comme tout autre programme qui sont associés à une extension sur ton système d'exploitation Windows.
2- Tu penses à placer dans le chemin de ton application un fichier icône (.ico) qui sera utilisé lors de l'association
3- Dans ton projet tu peux mettre dans les options une case à cocher : associer mon programme à l'extension ".dev" (par exemple) :
1 2 3 4 5 6 7 8 9
| //On associe l'extension .Dev à ton projet basé sur cette librairie : http://www.codeproject.com/Articles/43675/C-FileAssociation-Class
{
AF_FileAssociator assoc = new AF_FileAssociator(".Dev");
if (assoc.Exists == false) {
// Il faut bien veiller à ce que l'exécutable de ton projet possède toujours le même chemin : prévoir un installeur !!!!
assoc.Create("Dev", "Association example", new ProgramIcon("C:\\Program Files (x86)\\TonProgram\\TonProgram.ico"), new ExecApplication("C:\\Program Files (x86)\\TonProgram\\TonProgram.exe"), new OpenWithList(new string[] { "Dev" }));
}
} |
4- Toujours dans ton projet, tu penses à mettre dans ta procédure Sub Main (point d'entrée de ton application) le code qui sera appelé lorsque l'utilisateur double cliquera sur un fichier portant l'extension ".Dev" :
1 2 3 4 5 6 7 8 9 10 11
| string[] args = Environment.GetCommandLineArgs();
if ((args != null)) {
if (args.Count > 1) {
//Ici le programme est exécuté en double cliquant sur un fichier portant l'extension .Dev
if (File.Exists(args(1))) {
//Ici tu traites ton fichier .....
}
} else if (args.Count == 1) {
//Ici le programme est exécuté directement.
}
} |
Bon codage.
++