2009-08-19 8 views
1

J'ai cette application Windows Mobile.Comment puis-je tuer mon application mobile?

Je voudrais lancer un updater.exe qui mettra à jour mon application mobile. Mais je dois arrêter mon application mobile avant le lancement du processus de mise à jour. Comment puis-je y parvenir?

Répondre

3

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");

+0

Merci, c'était exactement ce que je cherchais! – pdiddy

Questions connexes