Files
ft/Client/Packages/io.github.hatayama.uloopmcp/Editor/Utils/ProcessStartHelper.cs

28 lines
956 B
C#

using System.ComponentModel;
using System.Diagnostics;
namespace io.github.hatayama.uLoopMCP
{
public static class ProcessStartHelper
{
// NativeErrorCode 2 (ERROR_FILE_NOT_FOUND) and 3 (ERROR_PATH_NOT_FOUND) on Windows
// map to ENOENT on POSIX; other Win32Exception causes (e.g. permission denied) should
// propagate so callers fail fast instead of silently treating them as "not installed".
private const int ERROR_FILE_NOT_FOUND = 2;
private const int ERROR_PATH_NOT_FOUND = 3;
public static Process TryStart(ProcessStartInfo startInfo)
{
try
{
return Process.Start(startInfo);
}
catch (Win32Exception ex) when (ex.NativeErrorCode == ERROR_FILE_NOT_FOUND
|| ex.NativeErrorCode == ERROR_PATH_NOT_FOUND)
{
return null;
}
}
}
}