Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1089876981
webpauk
2004-07-15 11:36
2004.08.29
AppendMenu, ShortCat


10-1033633458
Comwad
2002-10-03 12:24
2004.08.29
Опять про злосчастный "Assertion faild: _reply_message!=(..."


3-1091612556
сергей1
2004-08-04 13:42
2004.08.29
изменение текста в dbGrid


14-1091940469
Григорьев Антон
2004-08-08 08:47
2004.08.29
Нужно ли бороться с хинтами и ворнингами?


4-1090268200
shooter
2004-07-20 00:16
2004.08.29
Почтовые аттрибуты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский