Как мне убить мое мобильное приложение? - PullRequest
1 голос
/ 19 августа 2009

У меня есть приложение для Windows Mobile.

Я бы хотел запустить файл Updater.exe, который обновит мое мобильное приложение. Но мне нужно остановить мобильное приложение перед запуском процесса обновления ... как мне этого добиться?

1 Ответ

3 голосов
/ 19 августа 2009

Что я сделал, если вы запускаете приложение обновления изнутри, запустите программу обновления с помощью Process.Start("\Path\To\Updater.exe");, а затем немедленно закройте основное приложение (с помощью this.Close(); или Application.Quit();. Оно должно работать только хорошо.

Чтобы убить основное приложение из средства обновления, вам придется использовать методы p / invoke и системного вызова, чтобы найти и убить основное приложение. Должно получиться что-то вроде этого (не проверено):

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

, затем назовите его с CloseWindow.Close("My Application Title");.

...