Browse Source

Setup: Moved uninstallation prompt dialog existence check to the GUI

pull/3235/head
Amrsatrio 2 years ago
parent
commit
0589a251c1
  1. 32
      ep_gui/GUI.c
  2. 7
      ep_setup/ep_setup.c

32
ep_gui/GUI.c

@ -2184,19 +2184,27 @@ static BOOL GUI_Build(HDC hDC, HWND hwnd, POINT pt)
} }
else if (!strncmp(line + 1, "uninstall", 6)) else if (!strncmp(line + 1, "uninstall", 6))
{ {
wchar_t uninstallLink[MAX_PATH]; HWND hwndExistingMb = FindWindowExW(NULL, NULL, L"#32770", _T(PRODUCT_NAME));
ZeroMemory(uninstallLink, sizeof(uninstallLink)); if (hwndExistingMb)
SHGetFolderPathW(NULL, SPECIAL_FOLDER, NULL, SHGFP_TYPE_CURRENT, uninstallLink); {
wcscat_s(uninstallLink, MAX_PATH, _T(APP_RELATIVE_PATH) L"\\" _T(SETUP_UTILITY_NAME)); SwitchToThisWindow(hwndExistingMb, TRUE);
}
else
{
wchar_t uninstallLink[MAX_PATH];
ZeroMemory(uninstallLink, sizeof(uninstallLink));
SHGetFolderPathW(NULL, SPECIAL_FOLDER, NULL, SHGFP_TYPE_CURRENT, uninstallLink);
wcscat_s(uninstallLink, MAX_PATH, _T(APP_RELATIVE_PATH) L"\\" _T(SETUP_UTILITY_NAME));
SHELLEXECUTEINFOW sei; SHELLEXECUTEINFOW sei;
ZeroMemory(&sei, sizeof(SHELLEXECUTEINFOW)); ZeroMemory(&sei, sizeof(SHELLEXECUTEINFOW));
sei.cbSize = sizeof(sei); sei.cbSize = sizeof(sei);
sei.hwnd = hwnd; sei.hwnd = hwnd;
sei.lpFile = uninstallLink; sei.lpFile = uninstallLink;
sei.nShow = SW_NORMAL; sei.nShow = SW_NORMAL;
sei.lpParameters = L"/uninstall"; sei.lpParameters = L"/uninstall";
ShellExecuteExW(&sei); ShellExecuteExW(&sei);
}
} }
else if (!strncmp(line + 1, "update_weather", 14)) else if (!strncmp(line + 1, "update_weather", 14))
{ {

7
ep_setup/ep_setup.c

@ -517,13 +517,6 @@ int WINAPI wWinMain(
bIsUpdate = (argc >= 1 && !_wcsicmp(wargv[0], L"/update_silent")); bIsUpdate = (argc >= 1 && !_wcsicmp(wargv[0], L"/update_silent"));
if (!bInstall && (!_wcsicmp(wargv[0], L"/uninstall") || bForcePromptForUninstall)) if (!bInstall && (!_wcsicmp(wargv[0], L"/uninstall") || bForcePromptForUninstall))
{ {
HWND hwndExistingMb = FindWindowExW(NULL, NULL, L"#32770", _T(PRODUCT_NAME));
if (hwndExistingMb)
{
SwitchToThisWindow(hwndExistingMb, TRUE);
exit(0);
}
wchar_t mbText[256]; wchar_t mbText[256];
mbText[0] = 0; mbText[0] = 0;
LoadStringW(hInstance, IDS_SETUP_UNINSTALL_PROMPT, mbText, ARRAYSIZE(mbText)); LoadStringW(hInstance, IDS_SETUP_UNINSTALL_PROMPT, mbText, ARRAYSIZE(mbText));

Loading…
Cancel
Save