![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
установка приоритета [D5, WinME, Win2k]
sir_musatov © (2002-04-26 16:46:00)уважаемые мастера ! подскажите новичку
для установки приоретета в хелпе пишут код
var
SecondProcess TMyThread; { TMyThread is a custom descendant of TThread }
begin
SecondProcess := TMyThread.Create(True); { create suspended – secondprocess does not run yet }
SecondProcess.Priority = tpTimeCritical; { set the priority }
SecondProcess.Resume; { now run the thread }
end;
поясните пожалуста что тут к чему, как узнать имя процесса моей программы ?
Almaz (2002-04-27 00:42:00) [1]
> sir_musatov (26.04.02 17:29)
> а можно ли с помощью установки самого высокого приоритета
> добиться, чтоб программы запущеные ранее приостановили свою
> деятельность ?
Теоретически - да. Практически - только на очень короткий срок, так как долго Windows этого не выдержит (из практического опыта).
Удачи.
sir_musatov (2002-04-26 17:29:00) [2]а можно ли с помощью установки самого высокого приоритета добиться, чтоб программы запущеные ранее приостановили свою деятельность ?
VEG (2002-04-26 17:14:00) [3]Следующий пример изменяет приоритет приложения. Изменение приоритета следует использовать с осторожностью - т.к. присвоение слишком высокого приоритета может привети к
медленной работе остальных программ и системы в целом. См. 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;