Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с Win98 [D5, Win95/98]


Andrewv ©   (2001-12-13 14:21:00) 

Можно ли из программы целенаправленно вызвать ошибку Windows
"Программа вызвала недопустимую операцию и будет закрыта"?


Sasha9   (2002-02-21 13:43:00) [1]

А можно и так:
var p:pointer;
..........
getmem(p,100);
freemem(p);
freemem(p);

можно вместо повторного очищения что-н. присвоить:
p^:=.....;//не уверен что этот случай пойдёт
желательно в свойствах проекта убрать все проверки на ошибки и запускать не через delphi а скомпилированный exe


WhiteRat   (2002-02-15 13:37:00) [2]

Хехехе, а зачем??? ИМХО мастдай98 и так эти ошибки выдает с достаточной частотой...
:)


Shaman_Naydak   (2002-02-13 10:06:00) [3]

To Timon:
а вот и не факт, если указатель будет указывать случайно куда-нидь на твой сегмент данных, то ошибки не будет..
надежнее сперва целенаправленно его испортить..

To Andrewv:
Попробуй вот такую инструкцию

asm DB 0Fh, 0, 0, 0 end;

у меня под 2000 очень приколько отработала :)


Timon   (2002-02-13 09:35:00) [4]

А есть вариант попроще.

procedure{Какая-нибудь, по событию}
varr:^byte;{Тип для примера, а так-то можно все что угодно написать}
begin
r:=2;{Или другое число.}
end;

Ошибка будет сто прцентно в любой системе. Прада программа тоже сто процентно будет закрыта.


Victor   (2002-02-13 08:15:00) [5]

Delirium>>
Твоя под 2000 не работает
мы в универе писали такую прогу только по другому (правда посложней)
делаеш форму, точную копию ошибки и на открытие какого нибудь окна делаешь примерно так на форму пишешь
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:= false;
end;


потом на таймер
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if findwindow(nil,"Имя окна")<>0 then
begin
Application.ShowMainForm:= true;
SendMessage(Findwindow(nil,""Имя окн"),wm_syscommand,sc_close,0);
end;
end;

где имя окна заголовок чужого окна например проводника
в результате форма появляется в момент его открытия
Усё


Delirium   (2001-12-13 15:20:00) [6]


procedure TForm1.Button1Click(Sender: TObject);
begin
raise ERangeError.CreateFmt("№ проблемы %d в строках с %d по %d",
[1,20,30]);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо