Как определить, загружена ли оснастка services.msc в консоль mmc?

Мне нужно предложить пользователю закрыть оснастку services.msc при удалении программы. Как я могу это сделать?

3

Решение

Вам нужно написать собственное действие, чтобы сделать это. Ты можешь использовать Процесс проверить, загружен ли services.msc в mmc или нет.

  [CustomAction]
public static ActionResult CustomAction1(Session session)
{
foreach (Process getProcess in Process.GetProcesses())
{
if (getProcess.ProcessName.Contains("mmc"))
{
if (getProcess.MainWindowTitle == "Services")
{
session["SERVICES_MSC"] = "Running";
break;
}
}
}

return ActionResult.Success;
}

Вызывает действие Custom при удалении и останавливает удаление на основе SERVICES_MSC имущество.

<Binary Id="Check_Services" SourceFile="..\TestProject\bin\Release\TestProject.CA.dll" />
<CustomAction Id="CHECK_SERVICES" BinaryKey="Check_Services" DllEntry="CustomAction1" Return="check" />

<CustomAction Id="STOP_INSTALLATION" Error="Services.msc is running.Please close that Window before uninstall the setup." />

Внутри последовательности Install Execute вызовите пользовательские действия.

  <Custom Action="CHECK_SERVICES" After="InstallValidate">REMOVE ~= "ALL"</Custom>
<Custom Action="STOP_INSTALLATION" After="CHECK_SERVICES">(REMOVE ~= "ALL") AND SERVICES_MSC</Custom>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]