Η ευέλικτη και ισχυρή γλώσσα προγραμματισμού Visual Basic. NET, ως ένα από τα ειδικά δημιουργημένα εργαλεία για την ανάπτυξη εφαρμογών για την πλατφόρμα Microsoft. NET, σας επιτρέπει να χρησιμοποιείτε πλήρως όλες τις δυνατότητές της. Συγκεκριμένα, τα στοιχεία του χώρου ονομάτων System. Diagnostics σάς επιτρέπουν να αλληλεπιδράτε με διαδικασίες, αρχεία καταγραφής συμβάντων και μετρητές επιδόσεων. Για παράδειγμα, μπορείτε να κλείσετε ένα πρόγραμμα από τη Visual Basic χρησιμοποιώντας την κλάση Process.
Απαραίτητη
Microsoft Visual Studio
Οδηγίες
Βήμα 1
Εισαγάγετε το σύστημα, το σύστημα. Diagnostics και System. Threading ονόματα. Προσθέστε τις ακόλουθες γραμμές κώδικα στην αρχή της ενότητας:
Σύστημα εισαγωγών
Σύστημα εισαγωγών. Διαγνωστικά
Σύστημα εισαγωγών. Περικοπή
Αυτό είναι μόνο για την ευκολία χρήσης των στοιχείων που σχετίζονται με αυτούς τους χώρους ονομάτων.
Βήμα 2
Λάβετε τα δεδομένα της διαδικασίας που πρέπει να κλείσουν. Χρησιμοποιήστε το αντικείμενο κλάσης System. Diagnostics. Process. Δηλώστε μια μεταβλητή αυτής της κλάσης:
Dim oProc ως διαδικασία
Στη συνέχεια, χρησιμοποιήστε κάποια μέθοδο για να βρείτε την απαιτούμενη διαδικασία.
Βήμα 3
Εάν το πρόγραμμα, το οποίο θα πρέπει να κλείσει στο μέλλον, ξεκινά από την εφαρμογή που αναπτύσσεται, τότε απλώς αποθηκεύστε το αντικείμενο που επιστρέφεται με τη μέθοδο Έναρξη κατά την εκκίνηση:
oProc = Process. Start ("app.exe")
Βήμα 4
Εάν πρέπει να κλείσετε μια διαδικασία με ένα γνωστό αναγνωριστικό, χρησιμοποιήστε τη στατική μέθοδο GetProcessById της κλάσης Process για να λάβετε το αντίστοιχο αντικείμενο:
oProc = Process. GetProcessById (nID)
Όπου nID είναι το αριθμητικό αναγνωριστικό της διαδικασίας.
Βήμα 5
Εάν είναι γνωστά μόνο μερικά από τα χαρακτηριστικά της διαδικασίας στόχου, αναζητήστε την. Λάβετε τη λίστα των διαδικασιών που εκτελούνται στον τοπικό υπολογιστή ως μια σειρά αντικειμένων της κλάσης Process Χρησιμοποιήστε τις μεθόδους GetProcesses (επιστρέφει όλες τις διαδικασίες) ή GetProcessesByName (μόνο διεργασίες με το δεδομένο όνομα):
Dim aoAllProcesses As Process () = Process. GetProcesses ()
Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")
Παραθέστε τα αντικείμενα του πίνακα χρησιμοποιώντας έναν βρόχο:
Dim oProc ως διαδικασία
Για κάθε oProc In aoAllProcesses
δράσεις στο oProc
Επόμενο
Περάστε τις ιδιότητες MainModule, MainWindowTitle, ProcessName κ.λπ. για να βρείτε το επιθυμητό αντικείμενο.
Βήμα 6
Προσπαθήστε να τερματίσετε το πρόγραμμα στέλνοντας ένα κλειστό μήνυμα στο κύριο παράθυρο του. Καλέστε τη μέθοδο CloseMainWindow του αντικειμένου που αντιστοιχεί στη διαδικασία στόχου. Εάν είναι απαραίτητο, περιμένετε να ολοκληρωθεί η εφαρμογή καλώντας το WaitForExit, για παράδειγμα:
oProc. CloseMainWindow ()
oProc. WaitForExit ()
Αυτή η μέθοδος δεν εγγυάται τον τερματισμό του προγράμματος, καθώς το μήνυμα κλεισίματος παραθύρου συχνά επεξεργάζεται και μπορεί να αγνοηθεί.
Βήμα 7
Περιμένετε για μικρό χρονικό διάστημα αφού καλέσετε το CloseMainWindow για να βεβαιωθείτε ότι το πρόγραμμα τερματίζεται. Χρησιμοποιήστε τη μέθοδο ύπνου της κλάσης νήματος. Στη συνέχεια, ελέγξτε την κατάσταση της διαδικασίας εξετάζοντας την ιδιότητα HasExited και, εάν δεν έχει τελειώσει, καλέστε τη μέθοδο Kill:
Νήμα. Sleep (6000)
oProc. Refresh ()
Εάν όχι oProc. HasExited τότε
oProc. Kill ()
Τέλος εαν
Εάν θέλετε, μπορείτε να κάνετε δημοσκόπηση της κατάστασης της διαδικασίας σε βρόχο, εκδίδοντας περιοδικές προτροπές στον χρήστη να τερματίσει την εφαρμογή χωρίς αποθήκευση δεδομένων. Και μόνο αν συμφωνείτε να καλέσετε το Kill.
Βήμα 8
Απελευθερώστε πόρους συστήματος μετά το τέλος του προγράμματος χρησιμοποιώντας τη μέθοδο Κλείσιμο:
oProc. Close ()
Βήμα 9
Για να αποφύγετε απροσδόκητα σφάλματα κατά την εκτέλεση της εφαρμογής, τοποθετήστε ολόκληρο τον αλγόριθμο κλεισίματος του προγράμματος σε ένα μπλοκ Try-Catch-End Try. Εφαρμόστε πλήρη έλεγχο εξαιρέσεων με διαγνωστικά μηνύματα, εάν είναι απαραίτητο.