Windows shutdown

6 отговора 364 прегледа
#1

Windows shutdown

Какви съобщения се изпращат когато Windows се shutdown-ва ?
Има ли ред на гасене на програмите ?
Въобще какво става кога Windows се shutdown-ва ?

(за Windows 95, 98 (програмирам на Delphi))

Отговор
#2

Re: Windows shutdown

Благодаря за анегдота, ама първото мнение ми помогна повече. Второто всеки го знае.
Пък това дали програмата ти на Delphi има нещо общо с OOP си зависи от твойте дизайнерси умения, а не от Delphi-то.

(абе признавам, че OOP в Delphi има много(много,много) дървении, ама и C++ пък си има други :PPP )

п.п.
Сериозните хора пишат на кирилица, а не на латиница, така че моля всички които пишат в клубовете да тачат нашата мила азбука, защото поне това сме дали на света.

Отговор
#3

Re: Windows shutdown

За Win98 може и да има нещо вярно, но за WinNT не. При shutdown на WinNT ако някое приложение или service не завърши за определено време (по подразбиране е 20 или 30 сек. не си спомням точно) OS го разкарва насилствено, както става когато му дадеш end task от Task Manager. Колкото до записа кеша при Win98 освен ако не е бъзикано някъде из registry-то почти няма write back cache, така че почти нищо не се записва по диска. Поради тая причина Win98 се shutw-а на порядък по-бързо от WinNT и Win2K

поздрави

Отговор
в отговор на Dark Dirk #4

ами виж ся... + един пример на Delphi

Здрасти,
При ShutDown windows9x-a изпраща на всички активни приложения съобщението WM_QUERYENDSESSION и ако някое приложение върне като резултат False то Windows-a не се ShutDown-ва. Тук съм ти написъл едно малко примерче за Delphi което показва съобщение при ShutDown и в зависимост дали натиснеш ОК или Cancel Windows-a затвяря или не се затваря.

Ето кода не Project1.bpr.....
program Project1;


uses
Forms, Windows, Messages,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

var
OldAppProc: Pointer;

function AppProc(hWnd: THandle; Msg: Integer;
wParam: Word; lParam: Integer): LongInt stdcall;
begin
case Msg of
WM_QUERYENDSESSION:
begin
if MessageBox(hWnd, 'Shut Down Windows ?',
'Caption', MB_OKCANCEL or MB_ICONQUESTION) = IDOK then

Result := Integer(True)
else
Result := Integer(False);
end;
else
Result := CallWindowProc(OldAppProc, hWnd, Msg, wParam, lParam);
end;
end;

begin
OldAppProc := Pointer(SetWindowLong(Application.Handle,
GWL_WNDPROC, Integer(@AppProc)));

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Внимание: Копирай сорса първо в Word и след това в Delphi зашото има вероятност да ти го даде като един ред. Това се дължи на форматирането от страна на Clubs.Dir.bg

ПС: Не обръщай внимание на това кой какво мисли за Delphi, в клуба има твърде много хоро които изказват от глупави по глупави мнеия ... за това моя съвет е просто не ги чети.. като правя аз ... и още нещо постинги които са написани на латиница въобще не ги чета.

Отговор
в отговор на Shveik #5

Re: ами виж ся... + един пример на Delphi

ama kak lyje :) chete i glupawi i na latinica :)

Отговор
в отговор на popitko #6

:))))))) Не ме издавай де!

:)

Отговор
в отговор на -Shveik- #7

Благодаря

:))))

Благодаря за помоща.
Има и свесни хора в тоя клуб.

п.п.
Не обръщайте внимание на хора, които казват че едни кое си не е език за програмиране, защото за истинския програмист няма значение езика на които ще пише. Тия които оставят такива коментари явно са начинаещи програмисти и езика им е голям проблем :)))))

Отговор