Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Boltig
0 / 0 / 1
Регистрация: 02.12.2015
Сообщений: 20
1

Win 8.1 VS Win 10, Terminate Job Object - не закрывает процессы

12.08.2016, 18:28. Просмотров 186. Ответов 0

Здравствуйте, заметил разницу в работе кода на разных ОС (вин 8.1 и вин 10)

Приведенный ниже код на восьмерке работает как нужно, тоесть закрывает все процессы запущенные одним объектом, на десятке же закрывает только "notepad.exe".
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
static class NativeJob
    {
        [DllImport("kernel32")]
        public static extern IntPtr CreateJobObject(IntPtr sa, string name);
 
        [DllImport("kernel32", SetLastError = true)]
        public static extern bool AssignProcessToJobObject(IntPtr hjob, IntPtr hprocess);
 
        [DllImport("kernel32")]
        public static extern bool CloseHandle(IntPtr h);
 
        [DllImport("kernel32")]
        public static extern bool TerminateJobObject(IntPtr hjob, uint code);
    }
 
 
public class Job : IDisposable
    {
        private IntPtr _hJob;
//Other fields....
 
        public Job() //ctor
        {
            this._hJob = NativeJob.CreateJobObject(IntPtr.Zero, "Some Name");
        }
 
 
        public void AddProcessToJob(Process proc)
        {
            Debug.Assert(proc != null);
            AddProcessToJob(proc.Handle);
            _processes.Add(proc);
        }
 
 
        protected void AddProcessToJob(IntPtr hProcess)
        {
            if (!NativeJob.AssignProcessToJobObject(_hJob, hProcess))
               {
                  throw new InvalidOperationException("Failed to add process to job");
               }
        }
 
 
         public void Kill()
        {
            NativeJob.TerminateJobObject(_hJob, 0);
            Dispose();
        }
 
//Other methods...
    }
 
class Program
    {
        static void Main(string[] args)
        {
                Job job = new Job();
                job.AddProcessToJob(Process.Start("notepad.exe"));
                job.AddProcessToJob(Process.Start("calc.exe"));
                job.AddProcessToJob(Process.Start("chrome.exe"));
                Console.WriteLine("Press Enter to close the job...");
                Console.ReadLine();
 
                job.Kill(); //На Win 8.1 закрывает все запущенные процессы, на Win 10 только "notepad.exe"
        }
    }


В чем разница и как поправить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2016, 18:28
Ответы с готовыми решениями:

Как написать программу под Win XP на Win 8?
Какую версию с# качать? И, если можно, дайте ссылку Заранее спасибо!

Компиляция. Win 7, Win 10
Ребят, такая проблема. Приложения, C#, откомпелированные в win 7, криво...

После обновления Win 8.1 до Win 10, можно ли поставить старую Win 8.1 на другой ПК ?
Имеется лицензия Windows 8.1. которую обновил до Windows 10, можно ли теперь...

Процессы в Win XP и Win 2K
Как скрыть программу в Win XP и Win 2K???

Закрываются процессы на win 7 x64
Доброе время суток. Возникла такая проблема: закрываются совершенно случайные...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2016, 18:28

Индекс производительности видеокарты asus gtx 690 win 8 ниже win 7
Здравствуйте подскажите пожалуйста нормально ли то что индекс...

Перешел с win 8 на win 7 HP (64), ноутбук Samsung np350e5c-s07ru - не устанавливается видюха
Здравствуйте! Нужна помощь! Перешел с win 8 на win 7 HP (64), ноутбук Samsung...

Проблемы с раздачей интернета по вай фай с ноутбука под win 7 на win 8
Помогите пожалуйста, создать подключение получилось, но на том ноуте, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru