PDA

View Full Version : سوال: پس از بستن برنامه Process برنامه بسته نمی شود



kitcat_m18
پنج شنبه 15 اردیبهشت 1390, 00:10 صبح
با سلام خدمت همه دوستان،

من یه برنامه نوشتم که متاسفانه بعد از بستن برنامه، برنامه هنوز در حال اجراست و Process اون بسته نشده.:متعجب:

اول می خوام بدونم دلیلش چیه؟؟؟:گیج:
دوم اینکه چه جوری اصلاحش کنم که برنامه با بسته شدن Process هم بسته بشه.:متفکر:


با تشکر:قلب:

محسن واژدی
پنج شنبه 15 اردیبهشت 1390, 06:54 صبح
سلام علیکم
این مشکل بیشتر بدلیل پایان نیافتن یک حلقه بوجود می آید، به عبارتی تا زمانی که حلقه در حال اجراست پروسه برنامه بسته نمیشود
برای اینکه اطمینان یابید از بسته شدن کامل پروسه، از دستور زیر استفاده کنید:

Dim ffrm
'unload all activated forms
For Each ffrm In Forms
Unload ffrm
Next 'ffrm

End 'sure to unload all forms


موفق باشید

M.T.P
پنج شنبه 15 اردیبهشت 1390, 14:32 عصر
احتمالا یکی از فرم هاتون هنوز توی حافظه است و Unload نشده.
گاهی اوقات اگه یک مقدار رو بخواهید از یک فرم که Load نشده بگیرید اون فرم Load میشه بدون اینکه شما متوجه بشید بعنوان مثال:


Label1.Caption = Form2.Label1.Caption
در دستور بالا با اینکه ظاهرا Form2 رو نمی بینید و فقط مقداری از Label اون رو درخواست کردید ، اما فرم Load شده و منتظر تابع Show هست.
در اینطور مواقع بلافاصله بعد از دستوراتتون از دستور:


Unload FormName
استفاده کنید.

kitcat_m18
جمعه 16 اردیبهشت 1390, 04:19 صبح
در رابطه با موضوعی که جناب M.P.T مطرح کردن اطلاع داشتم اما بعضی وقتا نمیشه همه فرم ها رو که ازش مقدار فراخوانی میشه رو بست (یعنی به علت فراخوانی زیاد بعضی جاها از قلم می افته)

با تشکر از راهنماییتون :لبخندساده:

MohammadGh2011
جمعه 16 اردیبهشت 1390, 10:36 صبح
سلام دوست عزيز
ديشب داشتم تو همين سايت ميگشتم كه اين كد رو يكي از دوستان گذاشته بودن اسمشون رو يادم رفت به حرحال شايد به دردت به خوره .
براي اين كه فورمتون از processes بسته بشه ميتونيد اين دستور رو هم امتحان كنيد App.TaskVisible = False
اگه ميخوايد برنامه رو ببنديد ميتونيد اين طوري ازش استفاده كنين

Private Sub Command1_Click()
App.TaskVisible = False
End
End Sub


اگه اين كد رو داخل يه كامند بزاريد و برنامه رو اجرا كنيد قبل از اين كه برنامه بسته بشه اول processes رو ميبنده.
موفق باشيد

محسن واژدی
جمعه 16 اردیبهشت 1390, 11:29 صبح
سلام دوست عزيز
ديشب داشتم تو همين سايت ميگشتم كه اين كد رو يكي از دوستان گذاشته بودن اسمشون رو يادم رفت به حرحال شايد به دردت به خوره .
براي اين كه فورمتون از processes بسته بشه ميتونيد اين دستور رو هم امتحان كنيد App.TaskVisible = False
اگه ميخوايد برنامه رو ببنديد ميتونيد اين طوري ازش استفاده كنين

Private Sub Command1_Click()
App.TaskVisible = False
End
End Sub


اگه اين كد رو داخل يه كامند بزاريد و برنامه رو اجرا كنيد قبل از اين كه برنامه بسته بشه اول processes رو ميبنده.
موفق باشيد

سلام علیکم
دستور "App.TaskVisible = False"تنها آیکون برنامه را از لیست tasklist taskmgr ویندوز حذف میکند و هیچگونه تاثیری درunload شدن برنامه ندارد

موفق باشید