СообЧа > База Знаний > Программирование > Delphi

Вопрос

Написал некую программу (на Delphi5), которая запускает внешнюю программу (консольная, написанная не мной, которая выполняет свою задачу и закрывается сама) в скрытом режиме (SW_HIDE). Работая в Win2000 замечаю, что если в диспетчере задач «подправить» приоритет внешней программы на «высокий», она заканчивает свою работу заметно быстрее. Как мне запускать внешнюю программу сразу с высоким приоритетом?

Ответ

Предлагаю Вашему вниманию пример, который изменяет приоритет приложения. Изменение приоритета следует использовать с осторожностью, так как присвоение слишком высокого приоритета может привести к медленной работе остальных программ и системы в целом. См. Win32 help for SetThreadPriority() function.
Пример: procedure TForm1.Button1Click(Sender: TObject);
var ProcessID : DWORD;
ProcessHandle : THandle; ThreadHandle : THandle;
begin
ProcessID := GetCurrentProcessID; ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, false, ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS); ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL); end;

Shadow.



Copyright © 2000-2004 Сообщество Чайников
Контактная информация