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

[إستفسار] عن برنامج يعتمد على فحص ملف بألية معينة ..

بدأه Prof.Nawaf في 25 يوليو 2008 · 8 رد · 810 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

لدي فكرة عمل برنامج لا يقوم بعمله إلا إذا تأكد من وجود ملف معين في قرص قابل للإزالة (أي .. فلاش ميموري) .. ولكن طبعا تختلف تسمية هذه الأقراص من جهاز لآخر وأقصد

بالتسمية هي مثل

c:\

f:\

g:\

h:\

حيث قد تختلف بداية التفرع من جهاز لأخر .. حيث أنني أريد أن أتأكد من اسم القرص القابل للإزالة .. أضف إلى ذلك أنني أريد أن أتأكد من اسم الملف وسطر واحد فقط في ذلك الملف في الفلاش ميموري ..

فما إقتراحاتكم ؟؟

سؤالي الأخير هو .. السي لديها قدرات عالية .. هل أستطيع أن أتحكم بحركة الجهاز من خلال السي ..؟؟ حيث أنني لا أريد في فترة معينة من البرنامج أن يتحرك الماوس ولا يتم التحكم عن طريق

الكيبورد ؟؟

فكرة البرنامج من مبدأ أمني ..

بدأت بكتابة البرنامج قبل أمس ولكني توقفت خاصة أمام يأسي من فكرة السؤال الثاني .. فهل هناك من يعيد لي الأمل :wink:

تحيتي لكم .. نواف ,,,

تم تعديل هذه المشاركة بواسطة Prof.Nawaf في 25 يوليو 2008 في 06:19

#2

استخدم الدالة GetDriveType ضمن مكتبة API ,,

تأخذ الدالة بارامتر واحد وهو مسار الدرايف و ترجع نوع الدرايف و هو احدى هذه الحالات :

DRIVE_REMOVABLE : مثل الفلاشة او الـMP3 يمكن اخراجها او الفلوبي .

DRIVE_FIXED : درايف اساسي تبع الهارد الحالي المثبت .

DRIVE_REMOTE : درايف موجود على الشبكة .

DRIVE_CDROM : الدرايف عبارة عن سواقة CD .

DRIVE_RAMDISK : رام ديسك ... لا اعرف ما هذا النوع .

0 : لم تتمكن الدالة من التعرف على نوعية الدرايف .

1 : الدرايف غير موجود (مسار خطأ)

اقتباس
البرنامج أن يتحرك الماوس ولا يتم التحكم عن طريق الكيبورد ؟؟

لم افهم ما تريده ,, هل تقصد تثبيت حركة الماوس ؟؟

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

اتصور يتحدث عن تعطيلهم بشكل عام طالما يقول الموضوع أمني.

لهذا الغرض استخدم BlockInputA

http://msdn.microsoft.com/en-us/library/ms646290(VS.85).aspx

تملك بارامتر واحد نوعه bool إن كان TRUE سيتسبب بإيقاف الاستجابة للماوس والكيبورد (احذر عند استخدامه في برنامجك للتجربة - استخدمه مع timer مؤقت يضع القيمة FALSE لكي تستطيع العودة لبرنامجك)

أما لتعطيلهم في برنامجك نفسه فالأمر مختلف وهو يتعلق بأحداث النافذة نفسها.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

واجهت هذه الدالة من قبل اثناء تحليل برنامج ,, Alt+Ctrl+Del تقوم بكسرها :P

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5

وإن تم تعطيل هذا الإدخال أيضا؟ أقصد الـ taskmngr

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

لن يجدي ذلك نفعاً ,, مجرد الضغط على الازرار يقوم بعمل interrupt ويخرج الماوس عن موده .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

طيب مراقبة هذه المدخلات من قبل البرنامج نفسه وعدم معالجتها أو مراقبة النقر على هذه الأزرار وإعادة تنفيذ BlockInput مرة أخرى. هل جربت؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

تقصد شئ مثل :

while(1) BlockInput(1);

هناك حل ,, سأستخدم زر الرستارت او سأركل الـcase بقدمي وأنت تعرف الباقي :D

تم تعديل هذه المشاركة بواسطة GamingMasteR في 3 أغسطس 2008 في 00:09

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#9

تماماً كما ذكرت.

وبلاش الركل

بلاش تستخدمها بالمرة :lol:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…