كيف تعطل خاصية التشغيل التلقائي (AutoRun) في ويندوز خطوة بخطوة؟

🔹 كيف يمكنك تمكين أو تعطيل خاصية (AutoRun) في نظام ويندوز؟
🧩 المقدّمة
تُعدّ خاصية (AutoRun) — أو التشغيل التلقائي — من المزايا القديمة في نظام Windows، إذ تسمح بتشغيل الملفات أو البرامج الموجودة على الوسائط فور إدخالها في الجهاز، مثل الأقراص المدمجة أو وسائط التخزين الخارجية.
لكن في كثير من الحالات، يكون من الضروري تعطيل هذه الخاصية مؤقتًا أو دائمًا، خاصةً عندما تتداخل مع تشغيل البرامج، أو تشكّل خطرًا أمنيًا لأنها تُستغل أحيانًا في نشر البرمجيات الخبيثة.
في هذا المقال سنشرح بالتفصيل طرق تعطيل AutoRun برمجيًا ومن خلال السجل (Registry)، وكيفية التعامل معها في أنواع الوسائط المختلفة.
🧠 أولًا: تعطيل (AutoRun) برمجيًا
في بعض الحالات تحتاج التطبيقات إلى منع التشغيل التلقائي تلقائيًا دون تدخل المستخدم.
مثال ذلك:
- إذا كان برنامج الإعداد (Setup) الخاص بتطبيقك يطلب من المستخدم إدخال قرص آخر يحتوي على ملف (Autorun.inf).
- أثناء عمل تطبيقك، قد يُطلب من المستخدم إدخال قرص جديد يحتوي على نفس الملف.
في هذه الحالات، لن ترغب بأن يقوم ويندوز بتشغيل برنامج جديد أثناء عمل التطبيق الحالي.
يمكن للمستخدمين عادةً تعطيل التشغيل التلقائي يدويًا عبر الضغط على مفتاح (SHIFT) أثناء إدخال القرص، لكن الأفضل أن يتم ذلك برمجيًا من داخل التطبيق نفسه.
🧩 الرسالة (QueryCancelAutoPlay)
بدءًا من إصدار Shell 4.70 وما بعده، يقوم نظام Windows بإرسال رسالة تُعرف باسم
“QueryCancelAutoPlay” إلى النافذة الأمامية في النظام (Foreground Window).
يمكن لتطبيقك استقبال هذه الرسالة والرد عليها لإيقاف (AutoRun) مؤقتًا.
هذه التقنية تُستخدم مثلًا في نوافذ “فتح الملفات” (Open Dialog Box) أو أدوات النظام التي تحتاج إلى تعطيل التشغيل التلقائي مؤقتًا.
💻 مثال برمجي بلغة C++
يمكن لتطبيقك تسجيل هذه الرسالة كالتالي:
uMessage = RegisterWindowMessage(TEXT("QueryCancelAutoPlay"));
ثم عند استقبال الرسالة، يُعاد TRUE لتعطيل التشغيل التلقائي، وFALSE لتمكينه:
if (uMsg == g_uQueryCancelAutoPlay)
{
return TRUE; // إلغاء AutoRun
}
وفي حالة كان التطبيق يستخدم مربع حوار (Dialog Box)، يمكنه التعامل مع الرسالة باستخدام الدالة
SetWindowLong() وتعيين القيمة TRUE أو FALSE وفق المطلوب.
🧩 ثانيًا: تعطيل (AutoRun) من خلال سجل النظام (Registry)
يوفّر نظام ويندوز أيضًا طريقتين لتعطيل التشغيل التلقائي بشكل دائم عبر السجل (Registry):
- القيمة (NoDriveAutoRun):
تُستخدم لتعطيل AutoRun في محركات محددة (مثل A: أو C:). - القيمة (NoDriveTypeAutoRun):
تُستخدم لتعطيل AutoRun لفئات من الأقراص مثل الأقراص الصلبة أو القابلة للإزالة.
⚠️ ملاحظة هامة:
يجب أن يقوم مسؤولو النظام فقط (System Administrators) بتعديل هذه القيم، إذ لا يُنصح أن تقوم التطبيقات بتغييرها لأنها تخص النظام بأكمله ولا يمكن استعادتها بسهولة.
📂 موقع المفاتيح في السجل:
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Policies
Explorer
🧮 مثال لتعطيل التشغيل التلقائي في محركات محددة:
القيمة NoDriveAutoRun هي من نوع REG_DWORD، حيث تمثل كل “بت” حرف محرك (Drive Letter).
فإذا أردت تعطيل AutoRun على الأقراص A: و C:، اضبط القيمة إلى:
0x00000005
⚙️ لتعطيل أنواع معينة من الأقراص:
القيمة NoDriveTypeAutoRun يمكنها تعطيل التشغيل التلقائي حسب نوع القرص:
| الرقم (Hex) | الاسم (Constant) | الوصف |
|---|---|---|
| 0x04 | DRIVE_REMOVEABLE | الأقراص القابلة للإزالة مثل الفلوبي ديسك. |
| 0x08 | DRIVE_FIXED | الأقراص الصلبة (Hard Disk). |
| 0x10 | DRIVE_REMOTE | أقراص الشبكة. |
| 0x20 | DRIVE_CDROM | الأقراص المدمجة (CD/DVD). |
| 0x40 | DRIVE_RAMDISK | أقراص الذاكرة (RAM Disk). |
بعد التعديل، يجب إعادة تشغيل مستكشف الملفات (Windows Explorer) لتطبيق التغييرات.
🧩 ثالثًا: (AutoRun) في أنواع الوسائط الأخرى
تُستخدم خاصية التشغيل التلقائي أساسًا في الأقراص المدمجة (CD/DVD)،
لكن يمكن تفعيلها أحيانًا على وسائط أخرى مثل بطاقات الذاكرة (CompactFlash) أو محركات USB،
وهو أمر غير مستحب أمنيًا.
حتى يعمل AutoRun على وسيط قابل للإزالة، يجب أن تتحقق الشروط التالية:
- أن يمتلك الجهاز تعريفات متوافقة مع AutoRun ترسل رسالة (WM_DEVICECHANGE) عند إدخال الوسيط.
- أن يحتوي الدليل الجذري للوسيط على ملف Autorun.inf.
- ألا يكون AutoRun معطّلًا من السجل (Registry).
- ألا يكون التطبيق الأمامي قد أوقف تشغيله برمجيًا.
⚠️ تحذير أمني:
لا يُنصح باستخدام AutoRun لتوزيع البرامج عبر وسائط محمولة،
إذ يمكن استغلال هذه الميزة لنشر الفيروسات، كما كان يحدث في الأقراص المرنة القديمة.
🧩 تشغيل (AutoRun) يدويًا
يمكن للمستخدم تشغيل AutoRun يدويًا عبر:
- النقر بزر الفأرة الأيمن على محرك الأقراص واختيار “AutoPlay”.
- أو النقر المزدوج على أيقونة المحرك.
إذا لم تكن تعريفات الجهاز متوافقة مع AutoRun، لن يظهر خيار AutoPlay في القائمة.
📋 الملخص
- خاصية (AutoRun) تُسهّل تشغيل البرامج تلقائيًا، لكنها قد تشكل خطرًا أمنيًا.
- يمكن تعطيلها برمجيًا عبر الرسالة (QueryCancelAutoPlay).
- يمكن تعطيلها دائمًا عبر السجل باستخدام القيم (NoDriveAutoRun) و (NoDriveTypeAutoRun).
- من الأفضل عدم تفعيلها على وسائط USB أو الأقراص القابلة للإزالة لتفادي العدوى بالفيروسات.
- دائمًا تأكد من مراجعة ملف Autorun.inf قبل تشغيله يدويًا.
🏁 الخاتمة
خاصية (AutoRun) في نظام ويندوز كانت وسيلة مريحة في بدايتها، لكنها تحوّلت مع الوقت إلى نقطة ضعف أمنية محتملة.
ولذلك، من الأفضل التعامل معها بحذر شديد، وتعطيلها في الحالات التي تتطلب أمانًا أو استقرارًا عاليًا، خصوصًا في بيئات العمل أو الخوادم.