اخي STRELiTZIA هنا تقصد حذف الملف FileName عند اعادة تشغيل ال Win , هل صلحت معك اقصد هل جربتها و تم بالفعل حذف الملف المراد بعد اعادة تشغيل ال Win ؟
لاني رائت ان اغلب المبرمجين يشتكون من عدم فاعليتها ومنهم كاتب التعقيب ...
راقب ال Quee في ال SessionManager لل Regedit ولاحظ كيف يكون مسار الملف المراد حذفه ...
mohfa كتب :اخي STRELiTZIA هنا تقصد حذف الملف FileName عند اعادة تشغيل ال Win , هل صلحت معك اقصد هل جربتها و تم بالفعل حذف الملف المراد بعد اعادة تشغيل ال Win ؟
لاني رائت ان اغلب المبرمجين يشتكون من عدم فاعليتها ومنهم كاتب التعقيب ...
راقب ال Quee في ال SessionManager لل Regedit ولاحظ كيف يكون مسار الملف المراد حذفه ...
نعم اخي mohfa جربتها و هي تعمل بنجاح...
المرفق لـــ Michael Puff - من احست المبرمجين الذين يعتمدون على دوال الــ API - يحتوي على مثال تطبيقي مع الملفات المصدرية.
إقتباس :هل ممكن الاستعانة بال Help
طبعا اخي hanipino فالهدف هو التعلم و لكن كآخر وسيلة...
يمنع فقط النسخ و اللصق الغبي للتعاريف و ارفاقها،
إقتباس :ما هي الدالة DialogBoxParam ؟
اخي Goblin حاول عمل Context للسؤال لما تريد مع اضافة برامترات معينة للدالة التي وضعت.
اخي STRELiTZIA من فظلك راقب ال File Delete Quee في ال Session Manager و ستعرف عن ماذا انا اتكلم .
راقب مسار الملف الموضوع في ال Quee .
ملاحظة في ال Win7 الوضع تغيير تماما .
if Result = STATUS_SUCCESS then begin DbgPrint('File deleted sucessfully Result:0x%.8X', Result); end else begin DbgPrint('Fail to Delete File Result:0x%.8X', Result); DbgPrint('Object name :%wZ', obj.ObjectName); end; Result := STATUS_SUCCESS;
لم تفهم قصدي اخي STRELiTZIA او يمكن انني لم اعرف كيف اوصل لك الفكرة :
في ال MSDN تجد انه عندما يتم استعمال ال MOVEFILE_DELAY_UNTIL_REBOOT فان الملف المراد اعادة تسميته او حذفه يسكون في الطابور او ال Quee تحت ال PendingFileRenameOperations تحت ال HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
ولكن المشكلة في بعض الاحيان ان مسار الملف لايكون كاملا مثلا تجده :
C:\Documents and Settings\Utilisateur\Bureau\DelFileOnReboot\Test.txt
احيان اخرى لايوجد اصلا اي ملف او مسار في ال Quee ايان اخرى تجده Relative Path .
انظر هذا التعقيب : http://support.microsoft.com/kb/202071/en-us
***
إقتباس :هل تعاملت من قبل مع مسارات الملفات انطلاقا من Driver
اعلم ايضا انك بدات البرمجة قبلي بسنين
على كل حال لتفادي اي اشكال مع صلاحيات النظام و طبيعة الملف المراد حذفه في قبول اوامر الدالة : MoveFileExA
افضل طريقة الكاسبر في استعمال الدرايفر في حذف الملفات مع اعادة التشغيل...
06-08-2009, 11:56 AM (آخر تعديل لهذه المشاركة: 06-08-2009, 12:57 PM بواسطة STRELiTZIA.)
اخي STRELiTZIA ال KAV يستعمل الطريقة نفسها في التعامل مع الملفات الملراد خذفها باستعمال نفس الدالة مع او عدم استعمال Driver لهذا الغرض لان النتيجة واحدة في الاخير .
سوف اعطيك مثال :
اجعل ال KAV يضع ملف في ال Delet after reboot Quee و قم انت يتحريك الملف في ال Quee اقصد مثلا من المرتبة 1 الى 2 او العكس - لان الترتيب جد مهم و حساس في ال Delete File after reboot Quee ..
و سترى النتيجة :
اما ان ال KAV يعتبر ان الملف قد تم جذفه او انه يعطيك نفس الرسالة عند ما قام بالمسح و ايجاده للملف الذي وضعه في الطابور .
رغم ان الملف لم يتم حذفه وهو موجود و كذلك موجود في الطابور لهذا ال OS في كل مرة يقوم بتنفيذ ال Session Manager سوف يبجث على نفس الملف يعني Looping thru same file او مايدعى بال LTF .
الحل الوحيد انك تعمل MMF للملف المراد حذفه و تقوم انت بال Force Deleting وبالطبع هذا خطير جدا .
**
حسب علمي ال KAV يستعمل ال MoveFileExW للتنعامل مع ال Unicode لان النظام يتعامل بنسبة 98% بال Unicode
شكرا اخي STRELiTZIA على فتح هكذا مواضيع .
بالتوفيق