我試圖通過調用WaitForSingleObject()
來確定一個進程是否還活着(此刻我確實檢查過,我知道它可以在我執行檢查後關閉),並且從Process.MainWindowHandle
其工作原理只是IsIconic()
不錯,但它返回WAIT_FAILED
和GetLastError()
一個ERROR_INVALID_HANDLE
WaitForSingleObject返回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());
}
[從C#中調用WaitForSingleObject]可能重複(http://stackoverflow.com/questions/33718217/calling-waitforsingleobject-from-c-sharp) – MethodMan
您不能等待窗口的句柄。請查看https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032.aspx上的文檔,瞭解可以等待的句柄類型。 – dxiv
系統說您的句柄無效。你的句柄無效。 –