Как убить процесс в Windows Mobile? - PullRequest
0 голосов
/ 02 ноября 2009

В приложении Windows Forms я завершаю процесс следующим образом:

    Process[] ps = Process.GetProcessesByName("DataWedge");
    foreach (Process p in ps)
        p.Kill();

Как это сделать в операционной системе Windows Mobile ?

(Этот образец не работает на Windows Mobile.)

Ответы [ 3 ]

2 голосов
/ 26 июня 2014

Так как вышеупомянутая статья больше не существует, я использовал Wayback Machine, чтобы получить article для использования кода. Ниже описано, как использовать код из статьи для перечисления процессов и уничтожения того, что вам нужно:

List<ProcEntry> processes = new List<ProcEntry>();
ProcessEnumerator.Enumerate(ref processes);

foreach (ProcEntry proc in processes)
{
    if (proc.ExeName == "DataWedge.exe")
    {
        ProcessEnumerator.KillProcess(proc.ID);
    }
}
1 голос
/ 02 ноября 2009

Вам необходимо перечислить процессы, запущенные на устройстве, чтобы получить его идентификатор процесса. Получив идентификатор процесса, вы можете просто сделать:

Process process Process.GetProcessById(processId);
process.Kill();

Вот статья , которая занимается перечислением процессов, а также включает пример уничтожения.

0 голосов
/ 28 декабря 2018

В этом коде есть ошибка, из-за которой он всегда возвращает пустой список.
Сначала добавьте эту константу:

private const uint TH32CS_SNAPNOHEAPS = 0x40000000;

Тогда назовите это так:

IntPtr snapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS | TH32CS_SNAPNOHEAPS, 0 );
...