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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 12:05   #11
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

CreateProcess.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 26.08.2010, 13:15   #12
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Вот что получилось
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.ItemIndex := 0;
  ComboBox1.OnChange(Self);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
  0: Priority := 'REALTIME_PRIORITY_CLASS'; // Реального времени
  1: Priority := 'HIGH_PRIORITY_CLASS'; // Высокий
  2: Priority := 'ABOVENORMAL_PRIORITY_CLASS'; // Выше среднего
  3: Priority := 'NORMAL_PRIORITY_CLASS'; // Средний
  4: Priority := 'BELOWNORMAL_PRIORITY_CLASS'; // Ниже среднего
  5: Priority := 'LOW_PRIORITY_CLASS'; // Низкий
  end;
end;

procedure TForm1.BStartClick(Sender: TObject);
var
  Application, Params: string;
  pi: TProcessInformation;
  si: TStartupInfo;
begin
  FillChar(si, SizeOf(TStartupInfo), 0);
  si.cb:=SizeOf(TStartupInfo);

  Application := EPath.Text + EEXEName.Text;
  Params := ' ' + ECommandLine.Text;
  CreateProcess(PChar(Application), PChar('"' + Application + '" ' + Params), nil, nil, False, Priority, nil, nil, si, pi);
end;
надеюсь, что два последних параметра задал правильно для приложения данного типа (скрин).

Никак не могу задать в CreateProcess приоритет через переменную Priority
Изображения
Тип файла: jpg srcds.jpg (219.4 Кб, 200 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2010, 13:18   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а скрин к чему?
должен задаватся, на крайняк используйте хендл из pi и меняйте еще раз приоритет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 13:25   #14
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Цитата:
а скрин к чему?
Чтобы показать, что за приложение. Может ему нужны какие-то особые привелегии.

Как правильно задать приоритет для процесса из переменной? Так как я показал на приведённом выше коде не работает
[Error] Unit1.pas(66): Incompatible types: 'Cardinal' and 'String'
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2010, 13:29   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дык у нас приоритет разве строками задается?
там помоему константы аля REALTIME_PRIORITY_CLASS(а вы строки написали)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 14:19   #16
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Не распознаются в Delphi 7 приоритеты
ABOVE_NORMAL_PRIORITY_CLASS // Выше среднего
BELOW_NORMAL_PRIORITY_CLASS // Ниже среднего
в чём ошибка?
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2010, 14:21   #17
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

посмотри в MSDN значения констант(если что то 0x меняем на $)
и впиши к себе, видимо не полные заголовочники
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 14:34   #18
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Params := ' ' + ECommandLine.Text;
Пробел лишний. Он и так есть при склейке.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 26.08.2010, 15:27   #19
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
Пробел лишний. Он и так есть при склейке.
Спасибо

Вот приоритеты в const
Код:
const
  REALTIME_PRIORITY_CLASS = $00000100;
  HIGH_PRIORITY_CLASS = $00000080;
  AABOVE_NORMAL_PRIORITY_CLASS = $00008000;
  NORMAL_PRIORITY_CLASS = $00000020;
  BELOW_NORMAL_PRIORITY_CLASS = $00004000;
  IDLE_PRIORITY_CLASS = $00000040;
Как теперь нужный из них подставить на место NORMAL_PRIORITY_CLASS в CreateProcess, предварительно выбрав в ComboBox?

Последний раз редактировалось Shouldercannon; 26.08.2010 в 15:31.
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2010, 15:43   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
  0: Priority := REALTIME_PRIORITY_CLASS; // Реального времени
  1: Priority := HIGH_PRIORITY_CLASS; // Высокий
  2: Priority := ABOVENORMAL_PRIORITY_CLASS; // Выше среднего
  3: Priority := NORMAL_PRIORITY_CLASS; // Средний
  4: Priority := BELOWNORMAL_PRIORITY_CLASS; // Ниже среднего
  5: Priority := LOW_PRIORITY_CLASS; // Низкий
  end;
end;
Priority это integer
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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