Ngôn ngữ lập trình linh hoạt và mạnh mẽ Visual Basic. NET, là một trong những công cụ được tạo đặc biệt để phát triển các ứng dụng cho nền tảng Microsoft. NET, cho phép bạn sử dụng đầy đủ tất cả các khả năng của nó. Đặc biệt, các thành phần của không gian tên System. Diagnostics cho phép bạn tương tác với các quy trình, nhật ký sự kiện và bộ đếm hiệu suất. Ví dụ: bạn có thể đóng một chương trình từ Visual Basic bằng cách sử dụng lớp Process.
Cần thiết
Microsoft Visual Studio
Hướng dẫn
Bước 1
Nhập không gian tên System, System. Diagnostics và System. Threading. Thêm các dòng mã sau vào đầu mô-đun:
Hệ thống nhập khẩu
Hệ thống nhập khẩu.
Hệ thống nhập khẩu.
Điều này chỉ là để thuận tiện cho việc sử dụng các thành phần được liên kết với các không gian tên này.
Bước 2
Lấy dữ liệu của quá trình được đóng lại. Sử dụng đối tượng lớp System. Diagnostics. Process. Khai báo một biến của lớp này:
Dim oProc As Process
Sau đó, sử dụng một số phương pháp để tìm quy trình cần thiết.
Bước 3
Nếu chương trình, sẽ cần phải đóng trong tương lai, được khởi chạy bởi ứng dụng đang được phát triển, thì chỉ cần lưu đối tượng được trả về bởi phương thức Start khi khởi động:
oProc = Process. Start ("app.exe")
Bước 4
Nếu bạn cần đóng một quá trình với một số nhận dạng đã biết, hãy sử dụng phương thức GetProcessById tĩnh của lớp Process để lấy đối tượng tương ứng:
oProc = Process. GetProcessById (nID)
Trong đó nID là số nhận dạng của quá trình.
Bước 5
Nếu chỉ biết một số đặc điểm của quy trình mục tiêu, hãy tìm kiếm nó. Nhận danh sách các tiến trình đang chạy trên máy cục bộ dưới dạng một mảng các đối tượng của lớp Process. Sử dụng các phương thức GetProcesses (trả về tất cả các quy trình) hoặc GetProcessesByName (chỉ các quy trình có tên đã cho):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Liệt kê các đối tượng mảng bằng vòng lặp:
Dim oProc As Process
Đối với mỗi oProc trong aoAllProcesses
'hành động trên oProc
Kế tiếp
Lặp qua các thuộc tính MainModule, MainWindowTitle, ProcessName, v.v. để tìm đối tượng mong muốn.
Bước 6
Cố gắng kết thúc chương trình bằng cách gửi một thông báo đóng cửa sổ chính của nó. Gọi phương thức CloseMainWindow của đối tượng tương ứng với tiến trình đích. Nếu cần, hãy đợi ứng dụng hoàn tất bằng cách gọi WaitForExit, ví dụ:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Phương pháp này không đảm bảo việc chấm dứt chương trình, vì thông báo đóng cửa sổ thường được xử lý và có thể bị bỏ qua.
Bước 7
Chờ một khoảng thời gian ngắn sau khi gọi CloseMainWindow để đảm bảo rằng chương trình kết thúc. Sử dụng phương thức Sleep của lớp Thread. Sau đó, kiểm tra trạng thái của quá trình bằng cách kiểm tra thuộc tính HasExited và nếu nó chưa kết thúc, hãy gọi phương thức Kill:
Thread. Sleep (6000)
oProc. Refresh ()
Nếu không oProc.
oProc. Kill ()
Kết thúc nếu
Nếu muốn, bạn có thể thăm dò trạng thái của quy trình trong một vòng lặp, đưa ra lời nhắc định kỳ cho người dùng để chấm dứt ứng dụng mà không lưu dữ liệu. Và chỉ khi bạn đồng ý gọi là Kill.
Bước 8
Giải phóng tài nguyên hệ thống sau khi chương trình kết thúc bằng phương pháp Đóng:
oProc. Close ()
Bước 9
Để tránh các lỗi không mong muốn trong quá trình thực thi ứng dụng, hãy đặt toàn bộ thuật toán đóng chương trình trong một khối Thử bắt đầu Thử. Thực hiện xử lý ngoại lệ chính thức với các thông báo chẩn đoán, nếu cần.