C # Tylko część żądania ReadProcessMemory lub WriteProcessMemory została zakończona podczas Process.Kill ()

Badałem ten problem dość szeroko i nie mogę znaleźć odpowiedzi.

Wiem, żeOnly part of a ReadProcessMemory or WriteProcessMemory request was completed wyjątek jest generowany, gdy proces 32-bitowy próbuje uzyskać dostęp do procesu 64-bitowego i ten sam dla 64-bitowego modyfikowania procesu 32-bitowego.

Rozwiązaniem tego problemu jest zmiana Target Target na „Any CPU”. Próbowałem tego i niestety nie rozwiązuje to mojego problemu.

Następny blok kodu jest tym, co wciąż rzuca wyjątek. Program uruchamiający ten kod jest używany do otwierania aplikacji na komputerach zdalnych i przechowuje listę wszystkich procesów, które sam program otworzył, dzięki czemu nie muszę przechodzić przez wszystkie procesy.

Process processToRemove = null;
lock (_runningProcesses)
{
    foreach (Process p in _runningProcesses)
    {
        foreach (ProcessModule module in p.Modules)
        {
            string[] strs = text.Split('\\');

            if (module.ModuleName.Equals(strs[strs.Length - 1]))
            {
                processToRemove = p;
                break;
            }
        }
        if (processToRemove != null)
        {
            break;
        }
    }
    if (processToRemove != null)
    {
        processToRemove.Kill();
        _runningProcesses.Remove(processToRemove);
    }
}

Te procesy mogą i najprawdopodobniej będą 32-bitowe i 64-bitowe.

Czy jest coś, co robię, czego nie powinienem robić, czy jest po prostu lepszy sposób na zrobienie tego wszystkiego?

questionAnswers(3)

yourAnswerToTheQuestion