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

Enumerate GDI Objects

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

كما يتضح من عنوان الموضوع

هنا سأضع كود يمكننا من الحصول على جميع الـ GDI Objects الموجودة حالياً في النظام

ربما قد يحتاجها أحدهم ....

const
   EntriesQty = 16384; // GDI handles limitation

  type
    TGdiTableCell = record 
      pKernelInfo : pointer;
      ProcessId : WORD; 
      Count : WORD; 
      Upper : WORD; 
      HandleType : WORD;
      pUserInfo : pointer;
    end; 


    TGdiTable  = array [0..EntriesQty-1] of TGdiTableCell;
    PGdiTable = ^TGdiTable;


  function GdiQueryTable(): PGdiTable; stdcall;external  'gdi32.dll' name 'GdiQueryTable';


  procedure GetGDIObjects();
    var 
      Table : PGdiTable;
      i : integer; 
  begin
    Table := GdiQueryTable;
    try 
      for i := 0 to EntriesQty-1 do begin 
        with Table^ do begin
          if(ULONG(pKernelInfo) >= $80000000)then  // valid pointer to kernel address space
            begin
            
                 //Here we do what we want of the data we got
                 // To get  the handle of  the object use ((upper shl 16) or  i)     

       
          end {if}; 
        end {with}; 
      end {for};
    except
      //Here we write our exception
    end {try};
  end;

لمعلومات عن GDI Objects وانواعها يرجى الإطلاع على MSDN

لمعلومات عن GdiQueryTable , TGdiTableCell يرجى الإطلاع على المرجع الرائع

Windows Graphics Programming Win32 GDI and DirectDraw by FengYuan

فيه شرح رائع وهناك شفرات برمجية رائعة مرفقة مع الكتاب

تم تعديل هذه المشاركة بواسطة cipher في 3 ديسمبر 2005 في 19:16

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#2

يمكن تصفح الكتاب Online

من موقع Safari

d4baa0.gif

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

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