زبان برنامه نویسی انعطاف پذیر و قدرتمند Visual Basic. NET ، به عنوان یکی از ابزارهای ویژه ایجاد شده برای توسعه برنامه ها برای پلتفرم Microsoft. NET ، به شما امکان استفاده کامل از تمام قابلیت های آن را می دهد. به طور خاص ، اجزای فضای نام System. Diagnostics به شما امکان می دهند با فرآیندها ، گزارش رویدادها و شمارنده های عملکرد تعامل داشته باشید. به عنوان مثال ، می توانید با استفاده از کلاس Process برنامه ای از Visual Basic را ببندید.
ضروری است
Microsoft Visual Studio
دستورالعمل ها
مرحله 1
سیستم ها ، System. Diagnostics و System. Threading فضاهای نام را وارد کنید. خطوط کد زیر را به ابتدای ماژول اضافه کنید:
سیستم واردات
سیستم واردات. تشخیص
واردات سیستم. موضوع
این فقط برای راحتی استفاده از اجزای مرتبط با این فضاهای نامی است.
گام 2
اطلاعات فرآیند بسته شده را دریافت کنید. از شی کلاس System. Diagnostics. Process استفاده کنید. متغیر این کلاس را اعلام کنید:
روند oProc کم نور
سپس از روشی استفاده کنید تا روند لازم را پیدا کنید.
مرحله 3
اگر برنامه ای که در آینده باید بسته شود ، توسط برنامه در حال توسعه راه اندازی شده است ، به سادگی شی returned برگشت داده شده توسط روش Start را در هنگام راه اندازی ذخیره کنید:
oProc = Process. Start ("app.exe")
مرحله 4
اگر می خواهید یک پردازش را با یک شناسه مشخص ببندید ، از روش GetProcessById ثابت کلاس Process استفاده کنید تا شی corresponding مربوطه را بدست آورید:
oProc = Process. GetProcessById (nID)
جایی که nID شناسه عددی فرآیند است.
مرحله 5
اگر فقط برخی از مشخصات فرآیند هدف مشخص است ، آن را جستجو کنید. لیستی از پردازش های در حال اجرا بر روی ماشین محلی را به عنوان آرایه ای از اشیا کلاس Process دریافت کنید. از روش های GetProcesses (تمام پردازش ها را برمی گرداند) یا GetProcesesByName (فقط پردازش هایی با نام داده شده) استفاده کنید:
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName as Process () = Process. GetProcesesByName ("app.exe")
اشیا ar آرایه را با استفاده از یک حلقه لیست کنید:
روند oProc کم نور
برای هر oProc در aoAllProcesses
اقدامات در oProc
بعد
از ویژگی های MainModule ، MainWindowTitle ، ProcessName و غیره استفاده کنید. برای پیدا کردن شی مورد نظر.
مرحله 6
سعی کنید برنامه را با ارسال یک پیام نزدیک به پنجره اصلی آن خاتمه دهید. با روش CloseMainWindow از شی corresponding مربوط به روند هدف تماس بگیرید. در صورت لزوم ، با تماس با WaitForExit منتظر کامل شدن برنامه باشید ، به عنوان مثال:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
این روش خاتمه برنامه را تضمین نمی کند ، زیرا پیام بستن پنجره اغلب پردازش می شود و می توان آن را نادیده گرفت.
مرحله 7
برای اطمینان از خاتمه یافتن برنامه پس از تماس با CloseMainWindow برای مدت کوتاهی صبر کنید. از روش Sleep از کلاس Thread استفاده کنید. سپس با بررسی ویژگی HasExited وضعیت فرآیند را بررسی کنید و اگر هنوز تمام نشده است ، با روش Kill تماس بگیرید:
موضوع. خواب (6000)
oProc. Refresh ()
اگر نه oProc. HasExited سپس
oProc. Kill ()
اگر پایان دهید
در صورت تمایل ، می توانید وضعیت فرآیند را بصورت حلقه ای نظرسنجی کرده و به کاربر درخواست دهید که بدون ذخیره اطلاعات ، برنامه را خاتمه دهد. و فقط در صورت موافقت با تماس با Kill.
مرحله 8
منابع سیستم را پس از اتمام برنامه با استفاده از روش Close آزاد کنید:
oProc. Close ()
مرحله 9
برای جلوگیری از خطاهای غیر منتظره در هنگام اجرای برنامه ، کل الگوریتم بسته شدن برنامه را در یک بلوک Try-Catch-End Try قرار دهید. در صورت لزوم ، استثنای کامل را با پیام های تشخیصی پیاده کنید.