Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизКак остановить процедуру Найти похожие ветки
← →
Кириешки © (2004-08-12 08:56) [0]Процедура выполняестся постоянно, тоесть в ее конце стоит указатель на начало её же самой по новой. Она выполняется до появляний некоторых условий. А если условий нету и мне надо ее остановить, то как это сделать из другой процедуры? То есть как одну циклическую процедуру остановить из другой процедуры?
← →
Skyle © (2004-08-12 09:03) [1]Если в процедуре нет блоков Try..except..end на рекурсии, то можно в процедуре сделать Raise и стек будет раскручен до ближайщего блока.
Соответственно первый вызов нужно обернуть, чтобы не выскочить фиг знает куда.
← →
KADAN © (2004-08-12 09:03) [2]в другой процедуре присвоить какой-либо переменной true и проверять это в первой.
← →
Думкин © (2004-08-12 09:05) [3]> [1] Skyle © (12.08.04 09:03)
Не... у него
while a do ;
что-то такое.
А как другая процедура получает время на выполнение?
← →
Alx2 © (2004-08-12 09:08) [4]В отдельном потоке выполнять эту процедуру
← →
KSergey © (2004-08-12 09:09) [5]> [3] Думкин © (12.08.04 09:05)
> Не... у него
> while a do ;
> что-то такое.
Судя по вопросу - да
Но утверждать это однозначно - я бы не стал ;)
← →
Skyle © (2004-08-12 09:14) [6]
> [3] Думкин © (12.08.04 09:05)
Ну даже если и так. Почему не катит-то?
← →
KSergey © (2004-08-12 09:16) [7]> [6] Skyle © (12.08.04 09:14)
См. последюю строчку из [3]
← →
Думкин © (2004-08-12 09:16) [8]> [6] Skyle © (12.08.04 09:14)
Я не про катит, а про то, что это неprocedure a;
begin
......
a
end;
А в остальном - автора надо ждать.
← →
Anatoly Podgoretsky © (2004-08-12 09:17) [9]Кириешки © (12.08.04 08:56)
Никак выход ограничивается рамками процедуры.
← →
Vlad Oshin © (2004-08-12 09:27) [10]
> KADAN © (12.08.04 09:03) [2]
> в другой процедуре присвоить какой-либо переменной true
> и проверять это в первой.
всегда так делаю
← →
REA © (2004-08-12 09:31) [11]Если она уже выполняется, то остановить (повлиять на ее работу) ее можно только из другого потока, либо временно отдавая управление OS.
← →
Кириешки © (2004-08-12 09:38) [12]Цикличная процедура проверяет не пытается ли создаться окно мне неприятное - если пытается, то засовываем в него нужные данные и координаты рисования и прерываем процедуру. Так как мне ее прервать "извне", то-то типа abort procedure
← →
REA © (2004-08-12 09:50) [13]>не пытается ли создаться окно мне неприятное
А откуда оно возьмется "такое некрасивое", если работает процедура?
← →
ALS © (2004-08-12 09:53) [14]>то-то типа abort procedure
Exit?
← →
Кириешки © (2004-08-12 09:58) [15]REA © (12.08.04 09:50) [13]
Окно которое хочет создаться - не мое. Это окно... Его даже окном не назвать, так, окошко...
Это программа одного чувака, который ее в нашем компьютерном клубе повесил. Она блокирует программу админа на запрет доступа к компу пользователей не оплативших время. Если вырубить программу
этого чувака - комп сразу вырубается. Так вот я и делаю ее "безвредной" и координаты ее рисования : - 2000,-2000.
← →
Гаврила © (2004-08-12 09:58) [16]Заменить на boolean-функцию, или добавить с вар-параметр
Если пора выходить - присваиваем False и по цепочке рекурсии выходим отовсюду
То есть вначале проверяем флаг ,если false - выходим сразу
таким обрназом стек будет раскручен до момента первого входа
Поднимать исключения в данном случае не совсем правильно имхо
из пушки по воробьям
← →
Anatoly Podgoretsky © (2004-08-12 10:00) [17]Кириешки © (12.08.04 09:58) [15]
Чувака на растрел.
← →
Кириешки © (2004-08-12 10:01) [18]ALS © (12.08.04 09:53) [14]
Гаврила © (12.08.04 09:58) [16]
НЕТ, она у меня была функцией, но условий на выход возникало слишком дофига - поэтому она процедура теперь. А Exit тут вообще не в тему. Как вызвать Exit из другой процедуры.
← →
Кириешки © (2004-08-12 10:03) [19]Anatoly Podgoretsky © (12.08.04 10:00) [17]
Дык я же его не знаю.
Он сначала трояна пускал чтобы узнать админовский пароль, а теперь вот эту шнягу придумал. :(((
Я с этим **** бороться уже устал.
← →
REA © (2004-08-12 10:11) [20]>она у меня была функцией, но условий на выход возникало слишком дофига - поэтому она процедура теперь
О как
← →
Гаврила © (2004-08-12 10:15) [21]
> Как вызвать Exit из другой процедуры.
Abort
выход из всех процедур, или до ближайшей секции except
← →
Skyle © (2004-08-12 10:16) [22]
> [21] Гаврила © (12.08.04 10:15)
Тот же Raise...
← →
Гаврила © (2004-08-12 10:17) [23]
> Skyle © (12.08.04 10:16) [22]
Ну раз уж по другому не получается ,придется так ...
← →
Рамиль © (2004-08-12 10:20) [24]
> Если вырубить программу
> этого чувака - комп сразу вырубается.
Даже если TerminateProcess?
← →
Кириешки © (2004-08-12 10:23) [25]REA © (12.08.04 10:11) [20]
Именно так. Процедура не возращает ничего, а функция возвращает!!
Вот именно поэтому я переделал ее в процедуру.
← →
KSergey © (2004-08-12 10:25) [26]> [15] Кириешки © (12.08.04 09:58)
1.У вас админы чем занимаются, если любой "чувак" может повесить чо хочет??
2.А переставить винду - не проще, есил уж найти это прогу не удается? (ох, что-то плохо вы ее ищете, мест вообще-то не так много по идее, хотя, возможно, я что-то и не знаю...)
← →
KSergey © (2004-08-12 10:26) [27]А вообще - детский сад в песочнице... Прямо казаки-разбойники :(
← →
REA © (2004-08-12 10:27) [28]>Процедура не возращает ничего, а функция возвращает!!
>Вот именно поэтому я переделал ее в процедуру.
Ну что ж, логично.
← →
Плохиш © (2004-08-12 10:38) [29]А "Основная" это уже филиал "Потрепаться"?
← →
Anatoly Podgoretsky © (2004-08-12 10:55) [30]REA © (12.08.04 10:27) [28]
Открываю большой секрет, любую функцию можно использовать как процедуру без переделки.
← →
KSergey © (2004-08-12 11:11) [31]> Плохиш © (12.08.04 10:38)
> А "Основная" это уже филиал "Потрепаться"?
Просто реальная задача автора никак не совпадает с озвученной...
← →
Плохиш © (2004-08-12 11:16) [32]
> KSergey © (12.08.04 11:11) [31]
Да и реальная задача как-то невнятно озвучена :-(
← →
Кириешки © (2004-08-12 11:19) [33]Anatoly Podgoretsky © (12.08.04 10:55) [30]
:))!!
KSergey © (12.08.04 11:11) [31]
Реальная задача автора не переустанавливать винду на всех 30 машинах включая админ,а а убить зловредную программу. "Потрепаться" тут непричем! Я спрашивал как из процедуры выйти, а не как отловить человека который эту зловредную программу поставил. Я незнаю как она действует и откуда запускается, зато знаю как окно ее называется. Уже эксперементировал с этим окошком.
← →
Плохиш © (2004-08-12 11:24) [34]
> Кириешки © (12.08.04 11:19) [33]
Тебе уже в [2] ответили! Или ешё про ProcessMessages расказать надо?
← →
Кириешки © (2004-08-12 11:30) [35]Плохиш © (12.08.04 11:24) [34]
Да, надо.
Я вразумительного ответа так и не нашел
← →
Skyle © (2004-08-12 11:38) [36]
> [35] Кириешки © (12.08.04 11:30)
Прямо-таки ни одного? ;-)
← →
KSergey © (2004-08-12 11:38) [37]> [33] Кириешки © (12.08.04 11:19)
> Реальная задача автора не переустанавливать винду на всех
> 30 машинах включая админ
Оборжаться.
PS
Я давно понял, что в случае серьезнах проблем (включая серьезное обновление железа) дешевле всегда (!!!) переставить винду и все программы, сколько бы их не было.
Как показывает опыт, это и по времени быстрее, и результат - стабильнее.
Хотя, призраться, и сам постоянно на эти грабли наступаю... все думаю "да вот сейчас чик - и все..." в итоге все равно все переставлять приходится
А вообще, ну что-то странное рассказываете, что автозапускаемую прогу на NT платформе нельзя найти... Ну разве что прихитрющая dll к системному процессу... Так и то, Шевченко грозился как-то найти в любом случае... ;) (прошу прощения, если ошибаюсь)
← →
Skyle © (2004-08-12 11:42) [38]ну мне тоже как-то не вериться, что найти её невозможно...
Прямо скажем, совсем не вериться.
← →
Кириешки © (2004-08-12 11:45) [39]Тогда скажите как найти, если она размножилась на все машины как вируснятина.
← →
KSergey © (2004-08-12 11:59) [40]Винда какая? ХР?
В ней есть msconfig
В ней все автостартуемое видно
Либо для Win2k взять ее от ХР.
Ну либо читать книги про реестр.
Так же посмотреть какие в системе сервисы.
Начал бы я - с процессов. Выделить неизвестные науке - и уже прицельно с ними разбираться. Не думаю, что прога такая уж совсем хитрая, что от процессов прячется, хотя как знать...
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.048 c