Don't wait for ColorPicker.exe to close (#5866)

This commit is contained in:
Ivan Stošić
2020-08-11 17:06:28 +02:00
committed by GitHub
parent 145347f7ae
commit 83de1686c0

View File

@@ -132,7 +132,7 @@ public:
{
if (m_enabled)
{
terminateProcess();
TerminateProcess(m_hProcess, 1);
}
m_enabled = false;
@@ -142,28 +142,6 @@ public:
{
return m_enabled;
}
static BOOL CALLBACK requestMainWindowClose(HWND nextWindow, LPARAM closePid)
{
DWORD windowPid;
GetWindowThreadProcessId(nextWindow, &windowPid);
if (windowPid == (DWORD)closePid)
::PostMessage(nextWindow, WM_CLOSE, 0, 0);
return true;
}
void terminateProcess()
{
DWORD processID = GetProcessId(m_hProcess);
EnumWindows(&requestMainWindowClose, processID);
const DWORD result = WaitForSingleObject(m_hProcess, MAX_WAIT_MILLISEC);
if (result == WAIT_TIMEOUT)
{
TerminateProcess(m_hProcess, 1);
}
}
};
extern "C" __declspec(dllexport) PowertoyModuleIface* __cdecl powertoy_create()