Ce que je l'ai fait est si vous lancez l'application de mise à jour à l'intérieur de votre propre, exécutez la avec Process.Start("\Path\To\Updater.exe");
Updater, puis immédiatement fermer l'application principale (avec this.Close();
ou Application.Quit();
. Il devrait fonctionner parfaitement.
pour tuer l'application principale de l'intérieur du updater, vous devrez utiliser p/Invoke et méthodes appel de système pour trouver et tuer l'application principale Il faut finir par quelque chose comme ça (non testé).
class CloseWindow
{
[DllImport("coredll.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("coredll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
public const int WM_CLOSE = 0x0010;
public static void Close(string windowName)
{
IntPtr hWnd = FindWindow(null, windowName);
SendMessage(hWnd, WM_CLOSE, null, null);
}
}
puis appelez-le avec CloseWindow.Close("My Application Title");
Merci, c'était exactement ce que je cherchais! – pdiddy