![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с 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;