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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 23:38   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Запуск приложения с приоритетом

С помощью Delphi можно запустить приложение с нужным приоритетом (Realtime, High, AboveNormal, Normal, BelowNormal и Low)?
Через *.bat это делается так: start /wait /abovenormal
Shouldercannon вне форума Ответить с цитированием
Старый 24.08.2010, 23:39   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Код:
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;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 25.08.2010, 03:20   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Запустить чужое приложение через WinExec или ShellExecute
Shouldercannon вне форума Ответить с цитированием
Старый 25.08.2010, 08:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
через WinExec или ShellExecute
Через CreateProcess. он даст хендл процесса.
Или через ShellExecuteEx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 12:00   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Запустить чужое приложение через WinExec или ShellExecute
Аналогия: как мне запереть дверь в квартиру, чтобы её открыть потом самому снаружи? (оригинальный вопрос)

- Используй врезной двухсторонний цилиндрический замок (код с CreateProcess).

- Мне надо использовать засов ("Запустить чужое приложение через WinExec или ShellExecute")

- WTF???

P.S. Если сильно охоте через ShellExecute - ну так и пишите там start с параметрами.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 25.08.2010, 16:59   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Вся проблема в том, что приложение запускаю с командной строкой
srcds.exe -game cstrike -console -tickrate 33 -port 27015 +maxplayers 20 +map de_dust
Shouldercannon вне форума Ответить с цитированием
Старый 25.08.2010, 17:19   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вся проблема в том, что приложение запускаю с командной строкой
CreateProcess - однозначно поможет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 17:41   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Вся проблема в том, что приложение запускаю с командной строкой
Проблемы не вижу.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 25.08.2010, 23:25   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

1. Начал делать, но запнулся на дальнейшем определении параметров
Код:
CreateProcess(PChar(EPath.Text {D:\Main\Counter-Strike Source\} + EEXEName.Text {hl2.exe}), PChar(ECommandLine.Text {-game cstrike -console}), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, ...);
2. Можно ли передавать приоритет в CreateProcess в переменной?
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2010, 00:24   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

2)можно
1)вроде все лучше в первый параметр вкладывать(всю ком строку), а то у мя проблема была.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения jkpro Помощь студентам 16 08.11.2009 12:31
Запуск другого приложения Sparky Общие вопросы по Java, Java SE, Kotlin 3 18.10.2009 11:03
Запуск приложения Zloy_Doomer Общие вопросы Delphi 2 10.10.2008 13:47
Запуск внешнего приложения Fia Общие вопросы Delphi 13 18.09.2008 07:27
Запуск приложения Артэс Общие вопросы C/C++ 2 07.06.2008 17:38