Мне нужно закрыть процесс, определяющий конкретный CloseReason, из-за того, что процесс, который мне нужен, чтобы убить проверку в закрытии формы, если CloseReasonis WindowsShutDown закрывает программу, в противном случае нет:C# закрыть процесс отправки сообщения с CloseReason
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason != CloseReason.WindowsShutDown)
{
e.Cancel = true;
Hide();
}
}
но если из другой программы я делаю это:
List<Process> pp = Process.GetProcessesByName("myProgram").ToList();
foreach (var p in pp)
{
p.CloseMainWindow();
p.WaitForExit();
}
но программа не закрыта ....
, как я могу это сделать?
Какова ценность 'e.CloseReason' при запуске кода, который вы отправили? – goric
Возможно, вы можете отправить сообщение окна WM_ENDSESSION. – usr
использовать 'SendMessage' для отправки' WM_CLOSE' с пользовательским 'lParam' и обрабатывать его –