![]() |
|
[تمرين] الكل يسأل و الكل يجيب - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : تمارين دلفي وحلول (https://delphi4arab.net/forum/forumdisplay.php?fid=16) +--- الموضوع : [تمرين] الكل يسأل و الكل يجيب (/showthread.php?tid=1107) |
[تمرين] الكل يسأل و الكل يجيب - STRELiTZIA - 05-08-2009 السلام عليكم و رحمة الله موضوع التمرين : يضع اي عضو دالة يختارها هو و يحاول باقي الأعضاء شرح هدفها و برامتراتها دون البحث في النت، يعتمدون فقط على معلوماتهم في البرمجة ![]() ابدا انا : PHP كود : function MoveFileEx(ExistingFileName: PChar; NewFileName: PChar; Flags: DWORD): Boolean; stdcall; externalو هذه طريقة استدعاءها. PHP كود : MoveFileEx(PChar(FileName), nil, MOVEFILE_DELAY_UNTIL_REBOOT); بالتوفيق ان شاء الله [تمرين] الكل يسأل و الكل يجيب - Goblin - 05-08-2009 [COLOR="RoyalBlue"]فكرة جيدة ! سابدأ بدالة معروفة: ما هي الدالة DialogBoxParam ؟[/COLOR] [تمرين] الكل يسأل و الكل يجيب - mohfa - 05-08-2009 إقتباس :MoveFileEx(PChar(FileName), nil, MOVEFILE_DELAY_UNTIL_REBOOT);اخي STRELiTZIA هنا تقصد حذف الملف FileName عند اعادة تشغيل ال Win , هل صلحت معك اقصد هل جربتها و تم بالفعل حذف الملف المراد بعد اعادة تشغيل ال Win ؟ لاني رائت ان اغلب المبرمجين يشتكون من عدم فاعليتها ومنهم كاتب التعقيب ... ![]() راقب ال Quee في ال SessionManager لل Regedit ولاحظ كيف يكون مسار الملف المراد حذفه ... [تمرين] الكل يسأل و الكل يجيب - hanipino - 06-08-2009 هل ممكن الاستعانة بال Help
[تمرين] الكل يسأل و الكل يجيب - STRELiTZIA - 06-08-2009 mohfa كتب :اخي STRELiTZIA هنا تقصد حذف الملف FileName عند اعادة تشغيل ال Win , هل صلحت معك اقصد هل جربتها و تم بالفعل حذف الملف المراد بعد اعادة تشغيل ال Win ؟ نعم اخي mohfa جربتها و هي تعمل بنجاح... المرفق لـــ Michael Puff - من احست المبرمجين الذين يعتمدون على دوال الــ API - يحتوي على مثال تطبيقي مع الملفات المصدرية. إقتباس :هل ممكن الاستعانة بال Helpطبعا اخي hanipino فالهدف هو التعلم و لكن كآخر وسيلة...يمنع فقط النسخ و اللصق الغبي للتعاريف و ارفاقها، إقتباس :ما هي الدالة DialogBoxParam ؟اخي Goblin حاول عمل Context للسؤال لما تريد مع اضافة برامترات معينة للدالة التي وضعت. بالتوفيق ان شاء الله [تمرين] الكل يسأل و الكل يجيب - mohfa - 06-08-2009 اخي STRELiTZIA من فظلك راقب ال File Delete Quee في ال Session Manager و ستعرف عن ماذا انا اتكلم . راقب مسار الملف الموضوع في ال Quee . ملاحظة في ال Win7 الوضع تغيير تماما . [تمرين] الكل يسأل و الكل يجيب - STRELiTZIA - 06-08-2009 هذا : كود : \[COLOR=red]??[/COLOR]\C:\Documents and Settings\Utilisateur\Bureau\DelFileOnReboot\Test.txtهل تعاملت من قبل مع مسارات الملفات انطلاقا من Driver ![]() اليك مثال حصري لا وجود له في النت اطلاقا من انتاج Delphi4Arab يمكنك تجربته : PHP كود : unit driver;[تمرين] الكل يسأل و الكل يجيب - mohfa - 06-08-2009 لم تفهم قصدي اخي 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ومارئك اخي STRELiTZIA ؟؟؟ ![]() طبعا عزيزي STRELiTZIA
[تمرين] الكل يسأل و الكل يجيب - STRELiTZIA - 06-08-2009 كود : ومارئك اخي STRELiTZIA ؟؟؟![]() ![]() ![]() اعلم ايضا انك بدات البرمجة قبلي بسنين ![]() على كل حال لتفادي اي اشكال مع صلاحيات النظام و طبيعة الملف المراد حذفه في قبول اوامر الدالة : MoveFileExA افضل طريقة الكاسبر في استعمال الدرايفر في حذف الملفات مع اعادة التشغيل... [تمرين] الكل يسأل و الكل يجيب - mohfa - 06-08-2009 اخي 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 على فتح هكذا مواضيع . بالتوفيق |