بله ميشه!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط softsoft برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
وقتي برنامه داره بسته ميشه رويداد FormClosing رخ ميده. سما بايد تو اين رويداد مربوط به Start Up فرمتون دستور End يا Application.Exit() و يا Application.ExitThread() رو وارد كنيد.
يه راه ديگه اينه كه مستقيم رويداد Shutting Down سيستم عامل رو كنترل كنيد. براي اين كار ابتدا مجموعه زير رو وارد كنيد:
بعد فرمان زير رو در Public Class فرم اصلي تون قرار بديد:کد:Imports Microsoft.Win32
در آخر كد زير رو هرجايي كه اجرا كنيد رويداد مورد نظر تشكيل ميشه. مي تونيد تو رويداد Form_Load بذاريد:کد:Public Shared Sub OnShuttingdown(ByVal sender As Object, ByVal e As SessionEndingEventArgs) End End Sub
سورس بالا روي تمام نسخه ويندوز جواب گو هست.کد:AddHandler SystemEvents.SessionEnding, AddressOf OnShuttingdown
براي پي بردن به مشكل بهتره اول منابع سيستم رو هرجا كه نياز نداريد Dispose كنيد. قدم بعدي اينه كه با دستور:
shutown -f -s
كه فرمان Shutdown با پارامتر Force هست سعي كنيد رايانه رو خاموش كنيد. بررسي كنيد كه اين جوري برنامه بسته ميشه. اگه برنامه بسته شد نشون دهنده ي اينه كه برنامه يه جورايي جواب FALSE رو در هنگام خاموش شدن ارسال مي كرد.
اين رو اضافه كنم كه به دلايلي ممكنه اصلا" رويداد ها رخ ندند مثلا" برنامه اي وابسته اي فرآيند shutdown رو كنسل كنه در اون صورت شما بايد اسمبلي و thread هاي كه به برنامه شما ربط دارند رو بررسي كنيد و موارد مشكوك رو ببنديد.
موفق باشيد
آرمين
Bookmarks