Bonjour, je suis en train de faire une application qui aura pour but d'utiliser des applications externes(exe) du genre MS Word,Excel, Calculatrice etc. De ce fait, j'ai réussi à ouvrir les applications mais lorsque les fenêtres de ces applications sont fermées je ne peux pas ramener la fenetre. Du coup, j'ai essayé de reproduire un truc avec un bout de code en le mettant dans une classe et l'appeler plus tard.
Le but de cette classe sera : Lorsque l'application est réduite, un bouton se crée automatiquement dans un FlowPanel et lorsqu'on clique sur le bouton la fenêtre réapparaît.
Voici ce que j'ai essayé mais rien n’apparaît lorsque je compile:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Test
{
    class ResizeApp
    {
        public static IntPtr wdwIntPtr;
 
        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string className, string windowTitle);
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool ShowWindow(IntPtr hWnd, ShowWindowEnum flags);
 
        [DllImport("user32.dll")]
        private static extern int SetForegroundWindow(IntPtr hwnd);
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowPlacement(IntPtr hWnd, ref Windowplacement lpwndpl);
 
        private enum ShowWindowEnum
        {
            Hide = 0,
            ShowNormal = 1, ShowMinimized = 2, ShowMaximized = 3,
            Maximize = 3, ShowNormalNoActivate = 4, Show = 5,
            Minimize = 6, ShowMinNoActivate = 7, ShowNoActivate = 8,
            Restore = 9, ShowDefault = 10, ForceMinimized = 11
        };
 
        private struct Windowplacement
        {
            public int length;
            public int flags;
            public int showCmd;
            public System.Drawing.Point ptMinPosition;
            public System.Drawing.Point ptMaxPosition;
            public System.Drawing.Rectangle rcNormalPosition;
        }
 
        public ResizeApp()
        {
 
 
        }
 
        public static void BringWindowToFront(string processName, FlowLayoutPanel PIC_Barre,Timer tim)
        {
 
 try
            {          
            wdwIntPtr = FindWindow(null, processName);
 
            //get the hWnd of the process
            Windowplacement placement = new Windowplacement();
            GetWindowPlacement(wdwIntPtr, ref placement);
 
            // Check if window is minimized
            if (placement.showCmd == 2)
            {
                Button btn = new Button();
                btn.Width = 20;
                btn.Height = 20;
                PIC_Barre.Controls.Add(btn);
                btn.Click += button1_Click;
 
 
                //the window is hidden so we restore it
 
            }
 
            //set user's focus to the window
            SetForegroundWindow(wdwIntPtr);
  }
            catch
 {
 
 }
 
 
        }
        private static void button1_Click(object sender, EventArgs e)
        { ShowWindow(wdwIntPtr, ShowWindowEnum.Restore); }
 
    }
}
Merci.