PDA

View Full Version : پیرامون تابع exitwindowsex



mohammad6
دوشنبه 31 شهریور 1382, 22:28 عصر
با سلام
چطور میتوان قبل از shotdown کردن سیستم با تابع exitwindowsex همانند ویندوز یک پرده تیره روی فرم نمایش دهیم.

Kambiz
سه شنبه 01 مهر 1382, 01:05 صبح
exitwindowsex چنین کاری رو انجام نمیده و چیزی هست که در زمان نمایش دیالوگ مربوط به shutdown اتفاق میافته.

دقت کرده باشید در زمانی که دیالوگ shutdown در روی صفحه هست در واقع صفحه freez میشه و هیچ برنامه‌ای تغییری رو صفحه نمایش نمیده (نمونه خوبش ساعت هست). دلیلش اینه که قبل از نمایش دیالوگ یک کپی از تصویر کل صفحه نمایش گرفته میشه و بعد این تصویر کپی شده هست که در پشت دیالوگ ظاهر و به مرور به grayscale تبدیل میشه.

mohammad6
چهارشنبه 02 مهر 1382, 11:54 صبح
آقای delphi Arear اول سلام
بعد ممکنه یه کم بیشتر در مورد گرفتن کپی از کل صفحه نمایش و نمایش آن توضی بدی

Kambiz
چهارشنبه 02 مهر 1382, 18:46 عصر
یک پروژه جدید باز کن و یک TImage روی فرم بگذار و بعد کد زیر رو در رویداد OnCreate فرم بنویس:


procedure TForm1.FormCreate(Sender: TObject);
var
ScreenDC: HDC;
begin
BorderStyle := bsNone;
BoundsRect := Screen.DesktopRect;
Image1.Align := alClient;
Image1.Picture.Bitmap.Width := Width;
Image1.Picture.Bitmap.Height := Height;
ScreenDC := GetDC(0);
try
BitBlt(Image1.Picture.Bitmap.Canvas.Handle, 0, 0, Width, Height,
ScreenDC, Screen.DesktopLeft, Screen.DesktopTop, SRCCOPY);
finally
ReleaseDC(0, ScreenDC);
end;
end;

برنامه رو که اجرا کردی با کلید ALT+F4 می‌تونی ببندیش.