السلام عليكم و رحمة الله و بركاته
سؤالي هو كيف أبرمج البرنامج بحيث يحذف نفسه بنفسه دون أن يترك أثرا سواء ملف باتش أو برامج أخري ؟
و قد واجهتني مشكلتان
الأولي هي صعوبة تعريف البرنامج علي مساره لكي يقوم بحذف نفسه
و الثانية أن النظام يحمي البرنامج من الحذف أثناء تشغيل هذا البرنامج
يمكنني معرفة المسار كما في الآتي
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<*argv;
system("PAUSE");
return EXIT_SUCCESS;
}
و لكن هذا لم يقدم شيئا لأني سأحتاج إلي مضاعفة كل back slash لكي أضع أمر الحذف في الدالة system()
و أيضا لم أستطع التعامل مع المسار لأنه من نوع const char* و الذي تتعامل معه الدالة system()
أما المشكلة الثانية فلم أجد لها أي حل
فإما أجعل البرنامج يغلق نفسه أولا ثم يمسح نفسه
و إما أجعل النظام يسمح بمسحه أثناء تشغيله
و كلا الحلين أغرب من بعضهما
في انتظار المساعدة إخواني الأفاضل
و السلام عليكم و رحمة الله و بركاته