Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 09:53   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию Убиваем процесс, если его работа превышает определенное кол-во ресурсов

Если процесс занимает допустим более 70% ресурса процессора то его убиваем.
Как сделать такую проверку?
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 13.01.2011, 10:12   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

С ума сошли? А если системный?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 10:13   #3
maloun
Форумчанин
 
Аватар для maloun
 
Регистрация: 03.01.2011
Сообщений: 233
По умолчанию

отключить процесс через taskkill /f /im explorer.exe у меня такой в автозопуске
все не нужные процессы чикает
Код:
uses
  ShellAPI;
...
ShellExecute (0, 'open', 'taskkill.exe', '/f /im explorer.exe', nil, SW_HIDE);
Цитата:
Сообщение от Alex Cones Посмотреть сообщение
С ума сошли? А если системный?
+1 проверку на системность процесса ставить надо
пыжок

Последний раз редактировалось Stilet; 13.01.2011 в 17:43.
maloun вне форума Ответить с цитированием
Старый 13.01.2011, 12:04   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вам надо все процессы или только вами же и созданные?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.01.2011, 12:06   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
проверку на системность процесса ставить надо
А вы знаете название всех системных процессов? Или названия всех процессов, которые делают дрова на все видеокарты?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.01.2011, 13:56   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Глупости.

Не бывает 70% загрузки. Это абстракция. В текущий момент времени процесс либо работает (и тогда он загружает процессор на 100%), либо нет (и тогда он загружает процессор на 0%).

Кроме того, не лучше ли ограничивать ресурсы, чем убивать процесс? Для этого есть jobs.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 13.01.2011, 15:18   #7
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
С ума сошли? А если системный?
Я понимаю, что так можно попасть, но необходимо. Да причем частенько, во-первых будет использоваться только на спец-флешке, во вторых думаю нужно поставить на таймер, на время частичной (более 70% проца) или полной загрузки компа на 100 %.

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
Глупости.

Не бывает 70% загрузки. Это абстракция. В текущий момент времени процесс либо работает (и тогда он загружает процессор на 100%), либо нет (и тогда он загружает процессор на 0%).

Кроме того, не лучше ли ограничивать ресурсы, чем убивать процесс? Для этого есть jobs.
Нет необходимости ограничивать ресурс, из-за этого и спросил как убить его.
А насчет абстракции, не согласен. Процесс - такой же человек. Он же не может тащить на себе машину, или крякнуть

Цитата:
Сообщение от maloun Посмотреть сообщение
+1 проверку на системность процесса ставить надо
согласен, но это сложно

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а вам надо все процессы или только вами же и созданные?
На все процессы..

Ну так как это написать?
Помог, нажми весы слева

Последний раз редактировалось grafgrial; 13.01.2011 в 15:29.
grafgrial вне форума Ответить с цитированием
Старый 13.01.2011, 17:19   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
проверку на системность процесса ставить надо
Я щас, наверное, кого-то удивлю, но вы и так не сможете завершить процесс, запущенный от имени SYSTEM, не получив предварительно соответствующие привилегии. Я имею ввиду человеческие методы (OpenProcess + TerminateProcess), а не вызов из своей программы taskkill

Цитата:
А насчет абстракции, не согласен.
А зря - самая настоящая абстракция. Процессор не может "сложить 1.5 числа" или "сложить 2 числа, не очень напрягаясь". Система по очереди выделяет каждому потоку квант времени, в течении которого тот может использовать процессор. Поток либо использует это время, напрягая процессор "на всю катушку", либо сразу отдаёт его системе, если сейчас ему считать нечего. Отношение количество выделенных квантов к использованным за единицу времени и есть загрузка процессора.
пыщь

Последний раз редактировалось JTG; 13.01.2011 в 17:21.
JTG вне форума Ответить с цитированием
Старый 13.01.2011, 17:23   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я лично считаю что лучше всего запускать тогда процессы в песочнице.(Jobs)
там не обязательно при превышении лимита убивать всех в песочнице.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.01.2011, 17:47   #10
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
я лично считаю что лучше всего запускать тогда процессы в песочнице.(Jobs)
там не обязательно при превышении лимита убивать всех в песочнице.
Еще раз хочу повторится я не свои процессы убить решил, для чего мне что-то запускать в песочнице?

Цитата:
Сообщение от JTG Посмотреть сообщение
Поток либо использует это время, напрягая процессор "на всю катушку", либо сразу отдаёт его системе, если сейчас ему считать нечего
Все равно так не считаю, т.е. если в друг какая-то ошибка в приложении при сложении двух чисел процессор зависает на 100%. Ну это вообще не важно, меня интересует вопрос:
как получить для всех процессов загрузку ЦП как у диспетчера задач и сравнить? Просто дошли до второй страницы, а так никто почти ничего и не посоветовал...
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедура выполнялась определенное кол-во времени Андрей.12 Помощь студентам 7 29.03.2010 11:13
Кто нибудь может подсказать как нарастить Дату определенное кол-во раз? •ScReam•™ Помощь студентам 2 18.06.2009 01:18
убить процесс по его идентификатору - Работа с процессами ACE Valery Общие вопросы C/C++ 8 04.06.2009 21:51
Как используя Delphi найти процесс, который отвечает за определенное действие Minvay Общие вопросы Delphi 10 19.03.2009 12:41
Как изменить цвет текста на всей строке в RichEdit, если строка содержит определенное слово?? IIpopoK Общие вопросы Delphi 0 22.06.2008 07:57