Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.12.2008, 15:45
sofrinov sofrinov вне форума
Прохожий
 
Регистрация: 03.12.2008
Сообщения: 9
Репутация: 10
По умолчанию приостановка чужого процесса

Здравствуйте! Помогите пожалуйста. Просьба такова: моя программа при открытии любой программы спрашивает запускать её или нет при нажатии не запускать процесс запускающейся программы завершается, при нажатии запустить программа продолжает работу. так вот при запуске любой программы моя программа должна перед запросом заставить заснуть на время эту программу и разрешить ей проснуться только при нажатии кнопки запустить. все сделал кроме этого засыпания.
Ответить с цитированием
  #2  
Старый 03.12.2008, 17:57
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Чет не сильно понятно зачем замораживать процесс! Почему бы после нужного ответа (запустить или как он там...) сделать запуск программы?
Ответить с цитированием
  #3  
Старый 11.12.2008, 11:03
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Есть волшебные функции SuspendThread и ResumeThread.

Пример кода:

Код:
Var
  
ProgramFileName:String;
  sti:TStartupInfo;
  lpPi:TProcessInformation;

begin

 ZeroMemory(@Sti,Sizeof(STI));
 STi.cb:=Sizeof(STI);
 ZeroMemory(@lpPi,Sizeof(LpPi));

if not CreateProcess(nil,PChar(ProgramFileName),nil,nil,false,0,nil,nil,StI,lpPI) then
         begin
           ShowMessage('Can not create process!');
           Exit;
         end;

    SuspendThread(lppi.hThread); // "Заморозили" процесс
// Тут какие-то действия, проверки и т.д.
 If  CheckValid<>True then TerminateProcess(lppi.hProcess,0) // если проверка непрошла, тогда завершаем процесс
  else // иначе
   ResumeThread(lppi.hThread); // "Разморозили" процесс

end;
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
Этот пользователь сказал Спасибо Thrasher за это полезное сообщение:
foxer (29.02.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025