الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تخزين الشاشة داخل ملف bmp

مغلق
بدأه romanof في 6 فبراير 2005 · 4 رد · 733 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

وهذه مشاركة جديده

القيام بتحديث سطح المكتب وحيل اخرى على الشاشة.doc

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#2

دائما بتعذبني بإعادة كتابتها وراك .. :rolleyes:

ولايهمك .. ;)

هذه هي محتويات الملف المرفق :

القيام بتحديث سطح المكتب او اي شاء على الشاشة

و افكار اخرى

uses
   Registry;

 function RefreshScreenIcons : Boolean;
 const
   KEY_TYPE = HKEY_CURRENT_USER;
   KEY_NAME = 'Control Panel\Desktop\WindowMetrics';
   KEY_VALUE = 'Shell Icon Size';
 var
   Reg: TRegistry;
   strDataRet, strDataRet2: string;

  procedure BroadcastChanges;
  var
    success: DWORD;
  begin
    SendMessageTimeout(HWND_BROADCAST,
                       WM_SETTINGCHANGE,
                       SPI_SETNONCLIENTMETRICS,
                       0,
                       SMTO_ABORTIFHUNG,
                       10000,
                       success);
  end;


 begin
   Result := False;
   Reg := TRegistry.Create;
   try
     Reg.RootKey := KEY_TYPE;
     // 1. open HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics 
    if Reg.OpenKey(KEY_NAME, False) then
     begin
       // 2. Get the value for that key 
      strDataRet := Reg.ReadString(KEY_VALUE);
       Reg.CloseKey;
       if strDataRet <> '' then
       begin
         // 3. Convert sDataRet to a number and subtract 1, 
        //    convert back to a string, and write it to the registry 
        strDataRet2 := IntToStr(StrToInt(strDataRet) - 1);
         if Reg.OpenKey(KEY_NAME, False) then
         begin
           Reg.WriteString(KEY_VALUE, strDataRet2);
           Reg.CloseKey;
           // 4. because the registry was changed, broadcast 
          //    the fact passing SPI_SETNONCLIENTMETRICS, 
          //    with a timeout of 10000 milliseconds (10 seconds) 
          BroadcastChanges;
           // 5. the desktop will have refreshed with the 
          //    new (shrunken) icon size. Now restore things 
          //    back to the correct settings by again writing 
          //    to the registry and posing another message. 
          if Reg.OpenKey(KEY_NAME, False) then
           begin
             Reg.WriteString(KEY_VALUE, strDataRet);
             Reg.CloseKey;
             // 6.  broadcast the change again 
            BroadcastChanges;
             Result := True;
           end;
         end;
       end;
     end;
   finally
     Reg.Free;
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   RefreshScreenIcons
 end;

نسخ محتويات الشاشة الى ملف

procedure TForm1.Button1Click(Sender: TObject);
var
  DC: HDC;
  Canva: TCanvas;
  B: TBitmap;
begin
  Canva := TCanvas.Create;
  B := TBitmap.Create;
  DC := GetDC(0);
  try
    Canva.Handle := DC;
    with Screen do
    begin
      B.Width := Width;
      B.Height := Height;
      B.Canvas.CopyRect(Rect(0, 0, Width, Height),
      Canva, Rect(0, 0, Width, Height));
      B.SaveToFile('c:\Мои документы\screentofile.bmp');
    end
  finally
    ReleaseDC(0, DC);
    B.Free;
    Canva.Free
  end
end;
تكبير الشاشة كاملة

function SetFullscreenMode: Boolean;
var
  DeviceMode: TDevMode;
begin
  with DeviceMode do
  begin
    dmSize := SizeOf(DeviceMode);
    dmBitsPerPel := 16;
    dmPelsWidth := 640;
    dmPelsHeight := 480;
    dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
    result := False;
    if ChangeDisplaySettings(DeviceMode, CDS_TEST or CDS_FULLSCREEN) <>
      DISP_CHANGE_SUCCESSFUL then
      Exit;
    Result := ChangeDisplaySettings(DeviceMode, CDS_FULLSCREEN) =
      DISP_CHANGE_SUCCESSFUL;
  end;
end;

procedure RestoreDefaultMode;
var
  s:char; 
  T: TDevMode absolute s;
begin
  ChangeDisplaySettings(T, CDS_FULLSCREEN);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if setFullScreenMode then
  begin
    sleep(7000);
    RestoreDefaultMode;
  end;
End;
#3

شكرا لكم

{ربى زدنى علما}

#4

شكرا يا اخ عروة انا اسف اني باعذبك بس ماادري ليش لما اكتبها تتطلع مشقلبه

ليش ؟

انا اصلا عايش في روسيا و جهازي مش بالعربي يمكن لهذا السبب ؟

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#5

أهلا وسهلا فيك ..

كتبها كيف مابدك . وأنا برجع بنسقها ..

أخوك .. عروة :rolleyes:

هذا الموضوع مغلق.

مواضيع مشابهة