Я пытаюсь определить, жив ли процесс (на данный момент я проверил, я знаю, что он может быть закрыт сразу после проверки), вызвав WaitForSingleObject()
с помощью дескриптора get from Process.MainWindowHandle
который прекрасно работает с IsIconic()
но вернуть WAIT_FAILED
и GetLastError()
ERROR_INVALID_HANDLE
WaitForSingleObject return ERROR_INVALID_HANDLE
UInt32 r = WaitForSingleObject(handle, 0);
if(r == WAIT_OBJECT_0)
{
MessageBox.Show("still running!");
}
if(r == WAIT_FAILED)
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
Возможный дубликат [Вызов WaitForSingleObject из C#] (http://stackoverflow.com/questions/33718217/calling-waitforsingleobject-from-c-sharp) – MethodMan
Вы не можете ждать по ручке окна. Проверьте документы на странице https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032.aspx для типов ручек, на которые можно ждать. – dxiv
В системе указано, что ваш дескриптор недействителен. Ваш дескриптор недействителен. –