我有这个Windows移动应用程序。
我想发布一个updater.exe来更新我的移动应用。但是我需要在更新程序启动之前停止我的移动应用程序..我怎样才能实现这个目标?
答案 0 :(得分:3)
我所做的是如果您从自己的内部启动更新应用程序,使用Process.Start("\Path\To\Updater.exe");
执行更新程序,然后立即关闭主应用程序(使用this.Close();
或{{1}它应该可以正常工作。
要从更新程序内部终止主应用程序,您必须使用p / invoke和系统调用方法来查找和终止主应用程序。它最终应该是这样的(未经测试):
Application.Quit();
然后使用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);
}
}
调用它。