![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте! Помогите пожалуйста. Просьба такова: моя программа при открытии любой программы спрашивает запускать её или нет при нажатии не запускать процесс запускающейся программы завершается, при нажатии запустить программа продолжает работу. так вот при запуске любой программы моя программа должна перед запросом заставить заснуть на время эту программу и разрешить ей проснуться только при нажатии кнопки запустить. все сделал кроме этого засыпания.
|
#2
|
||||
|
||||
![]() Чет не сильно понятно зачем замораживать процесс! Почему бы после нужного ответа (запустить или как он там...) сделать запуск программы?
|
#3
|
||||
|
||||
![]() Есть волшебные функции 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)
|