تم جمع هذه المقالة وتجميعها بواسطة Lanyus من "Delphi for Programming".
1. إخفاء شريط المهام
في Windows ، يعد شريط مهام النظام في الأساس نافذة ، مع اسم فئة النافذة "shell_traywnd". لتنفيذ العمليات عليها ، يمكنك استخدام وظيفة API
Findwindow و
showwindow لتحقيق هدفها.
var
Wndhandle: Thandle ؛
wndclass: صفيف [0..50] من char ؛
يبدأ
strpcopy (wndclass [0] ، 'shell_traywnd') ؛
wndhandle: = findWindow (wndclass [0] ، nil) ؛
showwindow (wndhandle ، sw_hide) ؛
نهاية؛
2. اختصارات مخفية على سطح المكتب
مثل شريط المهام ، فإن سطح المكتب هو في الواقع نافذة.
لتقرير ما إذا كان سيتم عرضه.
3. احصل على حجم شريط المهام والموقع
استخدم FindWindow للعثور على المقبض ، ثم استخدم getWindowRect للحصول على حجم شريط المهام الحالي.
getWindowRect (HWND HWND ، // مقبض النافذة المطلوبة
lprect lprect // عنوان الهيكل الذي يخزن إحداثيات النافذة
): منطقية ؛
4. الحصول على معلومات وحدة المعالجة المركزية
يتم تخزين المعلومات ذات الصلة من وحدة المعالجة المركزية في بنية ، والتي يتم تغليفها بواسطة Delphi مع tsystemInfo ويتم تعريفها على النحو التالي:
typedef struct_system_info {
الاتحاد{
dword dwoemid ؛
بنية {
Word Wprocession
كلمة تعبئة
} ؛
} ؛
DWORD SWPGESIAE
LPVOID LPMINIMUMUMPLICATION
LPVOID LPMAXIMUMUMPLICATION
Dword SwactiveProcessormask ؛
Dword dwnumberofprocessors ؛
DWORD DWPROCESSORTYPE
dword dwalloctiongranularity ؛
Word Wprocessorlevel
Word WprocessorRevision ؛
} system_info ؛
من بينها ، يتم تحديد DwProcessortype من قبل ثلاثة أعضاء: Wprocessorarchitricture ، Wprocessorlevel و WprocessorRevision ، وقيمته هي:
Processor_intel_386: سلسلة Intel80386 ؛
Processor_itnel_486: سلسلة Intel80486 ؛
Processor_intel_pentium: سلسلة Intel Pentium ؛
Processor_MIPS_R4000: سلسلة 4000 MIPS (تنطبق فقط على Windows NT) ؛
Processor_alpha_21064: سلسلة ALPHA's 21064 (تنطبق فقط على Windows NT) ؛
بالإضافة إلى ذلك ، ما عليك سوى الاتصال بوظيفة API getSystemInfo بعد الحصول على معلومات وحدة المعالجة المركزية.
5. الحصول على معلومات الذاكرة.
تمامًا مثل الحصول على وحدة المعالجة المركزية ، لا يزال النظام يستخدم بنية لتخزين معلومات الذاكرة. تعريف معلومات الحالة الداخلية المخزنة هذه كما يلي:
typedef struct_memorystatus {
DWORD DWLENGT
DWORD DWMemoryload ؛
dword dwtotalphys
dword dwavailphys
dword dwtotalpagefile
dword dwavailpagefile
dword dwtotalvirtual ؛
dword dwavailvirtual ؛
} MemoryStatus ،*lpmemorystatus ؛
أخيرًا ، اتصل بوظيفة API GlobalMemoryStatus للحصول على معلومات الذاكرة.
6. احصل على حجم مساحة القرص. (وجد الاختبار غير دقيق)
استخدم وظيفة API getDiskFreespace.
Bool getDiskFreespace (
LPCTSTR LPRootPathName ، // دليل الجذر
lpdword lpsectorspercluster ، // عدد القطاعات لكل مجموعة
lpdword lpbytespersector ، // عدد البايتات لكل قطاع
LPDWORD LPNUMBEROFFREECLUSTERS ، // عدد المجموعات المتاحة
lpdword lptotalnumberofclusters // إجمالي عدد المجموعات
) ؛
الإجراء tform1.bitbtn1click (المرسل: tobject) ؛
var
secspclu ، bytespsc ، freeclu ، totalclu ، ts ، fs: dword ؛
يبدأ
getDiskFreespace ('c:/' ، secspclu ، bytespsec ، freeclu ، totalClu) ؛
fs: = freeclu*secspclu*bytespsec ؛
TS: = TotalClu*secspclu*bytespsec ؛
edit1.text: = formatfloat ('## ، ###' ، ts) ؛
edit2.text: = formatfloat ('## ، ###' ، fs) ؛
نهاية؛
7. الحد من نطاق حركة الماوس.
هناك وظيفة API جاهزة في Windows ClipCursor يمكنها تقييد المؤشر من تحريك المنطقة.
مشبك Bool (
const rect *lprect // تشير إلى بنية تخزن بيانات المدى المستطيل
) ؛
مع هذه الوظيفة ، يمكنك الحد من نطاق حركة المؤشر على الشاشة. ومع ذلك ، إذا كنت ترغب في التحكم في الماوس للتحرك ضمن نطاق ثابت من نافذة معينة ، فأنت بحاجة إلى الاتصال بـ CA
وظيفة
MapWindowPoints ، التي تحول إحداثيات نموذج إلى إحداثيات نموذج آخر ذات الصلة.
int mapwindowpoints (
hwnd hwndfrom ، // مقبض نافذة المصدر
hwnd hwndto ، // مقبض النموذج الهدف
lppoint lppoints ، // تشير إلى مجموعة الهيكل ، التي تحتوي على الإحداثيات التي يجب تحويلها
uint cpoints // عدد الهياكل في المصفوفة
) ؛
عندما تكون المعلمة hwndform أو hwndto فارغة أو hwnd_desktop ، فإنها تشير إلى أن نموذج المصدر أو النموذج الهدف هو نموذج شاشة. يمكن أن تشير lppoints المعلمة إلى
هيكل المستقيم ، في هذا الوقت cpoints
سيتم ضبط قيمة 2 على 2.
الإجراء tform1.bitbtn1click (المرسل: tobject) ؛
var
SC: TRECT ؛
يبدأ
SC: = bitbtn2.boundSrect ؛
MapWindowPoints (مقبض ، 0 ، SC ، 2) ؛
clipcursor (sc) ؛
نهاية؛
الإجراء tform1.bitbtn2click (المرسل: tobject) ؛
var
SC: TRECT ؛
يبدأ
SC: = rect (0،0 ، screen.width ، screen.hight) ؛
clipcursor (sc) ؛
نهاية؛
8. كيفية بدء توفير الشاشة.
استخدم وظائف SendMessage أو postmessage.
الإجراء tform1.bitbtn3click (المرسل: tobject) ؛
يبدأ
SendMessage (HWND_Broadcast ، WM_SYSCOMMAND ، SC_SCREENSAVE ، 0) ؛
نهاية؛
هناك أيضًا طريقة لبدء توفير شاشة الشاشة ، واتصال الوظيفة SystemParametersInfo ، والتي يمكن أن تبدأ أو تغلق شاشة توفير الشاشة من خلال إعدادات المعلمات الخاصة بها.
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE ، 1 ، NIL ، 0) ؛
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE ، 0 ، NIL ، 0) ؛
9. تحقق مما إذا كان محرك الأقراص جاهزًا.
لا توجد وظيفة خاصة لاكتشاف ما إذا كان محرك الأقراص جاهزًا ، ولا يمكن أن يطلق عليه مباشرة وظيفة واجهة برمجة تطبيقات شخص واحد لتنفيذ هذه العملية. لكننا
يمكن استخدام الأقراص لاكتشاف سعة القرص.
سعة.
أقراص الوظائف (محرك الأقراص: بايت): int64 ؛
عندما تكون المعلمة 0 ، فهذا يعني أن محرك الأقراص الحالي محدد ؛
زيادة...