From 26043c64e60b22915f88a1661766a74f8f5634d0 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 8 Oct 2012 11:18:18 +0000 Subject: PluginUpdater: restart with the same profile that started the update git-svn-id: http://svn.miranda-ng.org/main/trunk@1813 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/PluginUpdater/src/Utils.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'plugins/PluginUpdater') diff --git a/plugins/PluginUpdater/src/Utils.cpp b/plugins/PluginUpdater/src/Utils.cpp index ad1a5fe774..da09a0846e 100644 --- a/plugins/PluginUpdater/src/Utils.cpp +++ b/plugins/PluginUpdater/src/Utils.cpp @@ -168,8 +168,16 @@ BOOL DownloadFile(LPCTSTR tszURL, LPCTSTR tszLocal) void __stdcall RestartMe(void*) { + TCHAR mirandaPath[MAX_PATH], cmdLine[100]; + PROCESS_INFORMATION pi; + STARTUPINFO si = {0}; + si.cb = sizeof(si); + GetModuleFileName(NULL, mirandaPath, SIZEOF(mirandaPath)); + TCHAR *profilename = Utils_ReplaceVarsT(_T("%miranda_profilename%")); + mir_sntprintf(cmdLine, SIZEOF(cmdLine), _T("\"%s\" /restart:%d /profile=%s"), mirandaPath, GetCurrentProcessId(), profilename); CallService("CloseAction", 0, 0); - CallService(MS_SYSTEM_RESTART, 0, 0); + CreateProcess(mirandaPath, cmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); + mir_free(profilename); } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3