مؤشر Windows (.cur)
مواصفات قياسيمورد مؤشر Windows (CUR) هو التنسيق الأصلي لمؤشر الفأرة في Microsoft Windows. وتشبه بنية الحاوية فيه بنية ICO، لكنه يحدد إحداثيات نقطة التنشيط بدقة.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات CUR من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات CUR من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
00 00 02 00تمثيل ASCII: ....
التوحيد القياسي: مواصفات موارد Microsoft Windows
المواصفات الفنية
| هيكلية الحاوية | ترويسة ICONDIR بنوع مورد 2 (مؤشر)، تليها مصفوفة ICONDIRENTRY وبيانات DIB |
| الضغط | بيانات DIB غير مضغوطة أو تدفقات PNG مضغوطة (في Windows Vista وما بعده) |
| ترتيب البايتات (Endianness) | ترتيب البايتات الصغير (Intel x86) |
| مساحات الألوان | RGB خاص بالجهاز |
| القنوات والبنية | قناع أحادي اللون بعمق 1 بت، أو 4 أو 8 بت، أو BGRA بعمق 32 بت مع قناة ألفا |
| الحد الأقصى للأبعاد | عادةً 32 × 32 أو 48 × 48 أو 64 × 64 (ويدعم حتى 256 × 256 في إصدارات Windows الحديثة) |
| الشفافية | قناع ثنائي XOR/AND أو قناة ألفا ناعمة بعمق 8 بت |
| البث والتحميل التدرجي | دليل غير قابل للمعالجة بالتدفق لأيقونات ومؤشرات سطح المكتب |
مصفوفة المقارنة التقنية: CUR مقابل المنافسين
| السمة التقنية | CUR (الحالي) | ICO | PNG | SVG |
|---|---|---|---|---|
| تحديد نقطة التنشيط | إحداثيات البكسل X/Y المضمّنة | بلا (الافتراضي في المنتصف/اليسار العلوي) | مُحدَّد في CSS | محدّد في إطار العرض في SVG |
| معرف نوع المورد | 0x0002 (مؤشر) | 0x0001 (أيقونة) | صورة قياسية | XML متجهي |
| نظام التشغيل | نظام الماوس الأصلي في ويندوز | Windows Shell / أيقونة تبويب المتصفح | مدعوم في كثير من المتصفحات والتطبيقات | مدعوم في كثير من المتصفحات والتطبيقات |
| قابلية التوسع | خرائط صور مصغّرة ثابتة متعددة الدقة | خرائط هرمية ثابتة متعددة الدقة | حجم نقطي ثابت | تحجيم متجهي لا نهائي |
أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري
تُسجّل نقرة الماوس على بُعد عدة بكسلات من رأس سهم المؤشر.
السبب الجذري: تلف إحداثيات X/Y لنقطة التنشيط أو فقدانها في جدول ICONDIRENTRY.
الاسترداد: أعِد إنشاء المؤشر في أداة تحويل المؤشرات في File2File.app، ثم اضبط موضع نقطة التنشيط بصريًا.
تحليل الأمان ومتجهات الهجوم على المحلّل
أتاحت ثغرات تحليل CUR في واجهة جهاز الرسومات (GDI) في Windows تاريخيًا تنفيذ تعليمات برمجية عشوائية عبر أبعاد ترويسة معدّة خصيصًا.
ناقلات الهجوم المعروفة
- تجاوز سعة العدد الصحيح أثناء تخصيص أقنعة ألوان DIB في أدوات فك ترميز المؤشرات القديمة.
- إزاحات نقاط تنشيط تالفة تؤدي إلى عمليات قراءة مؤشر خارج الحدود أثناء رسم المؤشر.
- فساد الكومة (Heap corruption) عند تحليل تدفقات PNG المضمنة داخل ملفات CUR الحديثة.
أفضل الممارسات الدفاعية: تحقّق من أن إحداثيات نقطة التنشيط تقع ضمن أبعاد الإطار بدقة: (0 <= X < Width, 0 <= Y < Height).
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- يحدد إحداثيات بكسل دقيقة لنقطة التنشيط (X, Y) التي تُسجَّل عندها نقرات الماوس فعليًا على الشاشة.
- يمكّن تعريفات المؤشرات متعددة الدقة لعرض واضح على الشاشات القياسية وعالية الدقة 4K.
- دعم نظام التشغيل الأصلي المباشر في ويندوز دون الحاجة إلى برامج تشغيل مؤشرات خارجية.
القيود الفنية والسلبيات
- تنسيق مخصص لنظام ويندوز مع ضعف دعم العرض الأصلي على الأجهزة المحمولة والمتصفحات غير التابعة لويندوز.
- مؤشر ثابت فقط؛ المؤشرات المتحركة تتطلب حاوية .ANI متعددة الإطارات.
- تُنتج أقنعة XOR القديمة ذات العمق 1 بت آثارًا مزعجة لقلب الألوان في الواجهات الحديثة.
معلومات تقنية طريفة
- الفرق الهيكلي الوحيد بين ملف ICO وملف CUR هو البايت رقم 3 من الرأس: القيمة 1 للأيقونة، والقيمة 2 للمؤشر.
- في ملف ICO، يمثل البايتان 4 و6 من كل إدخال مستويات الألوان والبتات لكل بكسل؛ بينما في ملف CUR، تمثل هذان البايتان إحداثيات Hotspot X و Y بدقة.
- تدعم لغة CSS مؤشرات الويب المخصصة مباشرة باستخدام روابط تشير إلى ملفات .cur.
الأسئلة التقنية المتكررة
ما نقطة التنشيط في المؤشر؟
نقطة التنشيط هي إحداثيات البكسل الدقيقة داخل صورة المؤشر التي تحدث عندها النقرات؛ كطرف السهم أو مركز علامة التصويب.
هل يمكنني تحويل صورة (PNG أو JPG) إلى ملف CUR؟
نعم. يتيح لك File2File.app تحويل ملفات PNG أو JPG القياسية إلى ملفات مؤشر Windows ذات اللاحقة .CUR مع تحديد مخصص لموقع نقطة التنشيط.
كيف يمكنني استخدام ملف .cur على موقع الويب الخاص بي؟
يمكنك تطبيق مؤشرات مخصصة في لغة CSS باستخدام الصيغة التالية: cursor: url('my-cursor.cur'), auto;