Александр К.
114 повідомлень
#17 років тому
Здравствуйте! Может кто-нибудь знает как в Delphi запустить другое приложение, притом ограничить его стек, и время работы?
Александр К.
159 повідомлень
#17 років тому
radmus, ограничить стек можно, но Windows автоматически его увеличит в работе, если в этом есть необходимость
насчет времени - ни как, если только другая прога будет ее KillProcess...
Алексей Б.
186 повідомлень
#17 років тому
radmus Способов вагон!
Запустит можно если только не ошибаюсь в синтаксисе, не хочу в инфу есть:
Winexec
Shell и т.д. И ещё пачка WinAPI - функций
Ограничить время работы - мутите таймер в запускающей проге и килерите процесс по истечении времени, либо генерите событие Close.
На счёт стека так с лёту сказать не могу ... Но способы есть. Вообще для контроля за приложением есть отличная технология - HOOK.главное внимательно её использовать а то и комп подвесить недолго, сам вешал.
 Rei
246 повідомлень
#17 років тому
Кажется есть функция создания процесса на определенное время. Не помню, как зовется. CreateProcess -- это кажется просто процесс.
Александр К.
114 повідомлень
#17 років тому
Цитата ("spymen"):
radmus Способов вагон!
Запустит можно если только не ошибаюсь в синтаксисе, не хочу в инфу есть:
Winexec
Shell и т.д. И ещё пачка WinAPI - функций
Ограничить время работы - мутите таймер в запускающей проге и килерите процесс по истечении времени, либо генерите событие Close.
На счёт стека так с лёту сказать не могу ... Но способы есть. Вообще для контроля за приложением есть отличная технология - HOOK.главное внимательно её использовать а то и комп подвесить недолго, сам вешал.



А не подскажете где можно подробнее почитать про эту технологию? Запускать у меня получалось, только вот условия создания программы требуют ограничения, стека и времени . Я читал где-то что можно создавать потоки, и контролировать не само приложение, а поток, может кто работал с этим? В любом случае всем спасибо.
Soft Skm
1 повідомлення
#17 років тому
Пайпы, в Delphi World читай.
Е.а. Б.
3 повідомлення
#17 років тому
Waitforsingleobject
в помошь

а стек - он системный... или сам контролируй или никак
Александр К.
114 повідомлень
#16 років тому
Маленькая поправочка! Время работы у меня ограничить получилось. Помог CreateProcess+WaitForSingleObject. Вопрос состоит в том как ограничит память выделяемую приложением. Народ советует смотреть в сторону JobObject, но на delphi у меня не получается с ними работать. Вобще где они объявлены в delphi? Поговаривают что нигде . Также говорят что нужно подключать библиотеку kernell32.dll, вроде пробовал мутить, но при запуске говорит что не найдена точка входа в процедуру.... и т. д. Может кто сможет написать пример?
 A.
120 повідомлень
#16 років тому
Также говорят что нужно подключать библиотеку kernell32.dll, вроде пробовал мутить, но при запуске говорит что не найдена точка входа в процедуру

честно честно пробовал? покажи как)
Александр К.
114 повідомлень
#16 років тому
Цитата ("Andreika"):
Также говорят что нужно подключать библиотеку kernell32.dll, вроде пробовал мутить, но при запуске говорит что не найдена точка входа в процедуру

честно честно пробовал? покажи как)


Лучше ты покажи как надо на самом деле.
 A.
120 повідомлень
#16 років тому
Заплати покажу) че за любовь к халяве то?
Александр К.
114 повідомлень
#16 років тому
Я объявлял процедуру приблизительно так:
function CreateJobObject( lpJobAttributes: PSecurityAttributes; lpName: LPCTSTR):HWND;
external 'kernel32.dll' name 'CreateJobObject';
begin
end;
Александр К.
114 повідомлень
#16 років тому
Цитата ("Andreika"):
заплати покажу) че за любовь к халяве то?
Это не любовь к халяве! А надежда на человечность. Халявой это бы ло бы если бы я тебя попросил написать все прогу за меня! А я прошу ПОМОЧЬ куском кода.
Александр К.
114 повідомлень
#16 років тому
А сколько хочешь если не секрет?
 A.
120 повідомлень
#16 років тому
Begin
end;
точно надо?

обычно функции со строками бывают ANSI (PChar) или UNICODE(PWideChar)
соотвестно у них названия name 'CreateJobObjectA'; или 'CreateJobObjectW'
попробуй так