Bonjour,
Comme le titre l'indique j'aimerais récupérer l'instance de mon programme s'il est déjà lancé et lui passer un paramètre supplémentaire.
Pour le moment j'arrive à détecter si mon programme est déjà lancé avec "Mutex" et à récupérer le paramètre en question avec "AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0];" car mon application est une ClickOnce
J'ai associé un type de fichier à mon projet et donc lorsque je double clique sur ce fichier le programme se lance et ouvre la fenêtre principale et une fenêtre supplémentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 bool createdNew = true; using (Mutex mutex = new Mutex(true, "MyApp", out createdNew)) { string selectedFile = ""; if (createdNew) { if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null) { selectedFile = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; } Cursor.Current = Cursors.WaitCursor; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MyApp(selectedFile)); } else { Process current = Process.GetCurrentProcess(); foreach (Process process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null) { MyApp app = //récup de l'instance ?? selectedFile = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; app.openMessage(selectedFile); } else SetForegroundWindow(process.MainWindowHandle); break; } } } }
Si le programme est déjà lancé j'aimerais ouvrir juste cette fenêtre supplémentaire mais forcément avec des paramètres qui sont stocké dans ma fenêtre principale.
Est ce que vous avez une idée de comment je pourrais faire cela ? Voir des liens sur internet que je n'aurais pas vu (car pour l'instant je n'ai pas trouvé mon bonheur... )
En tout cas merci d'avance !
Partager