Ξεκινήστε κάτι που χρησιμοποιεί τη διαδικασία. Ξεκινήστε στο VB.NET

ο Αρχή μέθοδος του Επεξεργάζομαι, διαδικασία το αντικείμενο είναι ίσως ένα από τα πιο υποτιμημένα εργαλεία που διαθέτει ένας προγραμματιστής. Σαν .ΚΑΘΑΡΑ μέθοδος, Αρχή έχει μια σειρά υπερφορτίσεων, τα οποία είναι διαφορετικά σύνολα παραμέτρων που καθορίζουν ακριβώς τι κάνει η μέθοδος. Οι υπερφορτώσεις σάς επιτρέπουν να καθορίσετε ακριβώς οποιαδήποτε ομάδα παραμέτρων που θέλετε να περάσετε σε άλλη διαδικασία όταν ξεκινήσει.

Τι μπορείτε να κάνετε με Επεξεργάζομαι, διαδικασία. Αρχή είναι πραγματικά μόνο περιορισμένη από τις διαδικασίες που μπορείτε να χρησιμοποιήσετε μαζί της. Αν θέλετε να εμφανίσετε το αρχείο ReadMe που βασίζεται σε κείμενο στο Notepad, είναι τόσο εύκολο:

Επεξεργάζομαι, διαδικασία. Έναρξη ("ReadMe.txt")
ή.
Επεξεργάζομαι, διαδικασία. Έναρξη ("σημειωματάριο", "ReadMe.txt")

Αυτό το παράδειγμα υποθέτει ότι το αρχείο ReadMe βρίσκεται στον ίδιο φάκελο με το πρόγραμμα και ότι το Σημειωματάριο είναι η προεπιλεγμένη εφαρμογή για τους τύπους αρχείων .txt και βρίσκεται στη διαδρομή περιβάλλοντος του συστήματος.

instagram viewer

Επεξεργάζομαι, διαδικασία. Ξεκινήστε παρόμοια με την εντολή Shell στο VB6

Για προγραμματιστές εξοικειωμένους με τη Visual Basic 6, Επεξεργάζομαι, διαδικασία. Αρχή είναι κάπως σαν το VB 6 Κέλυφος εντολή. Στο VB 6, θα χρησιμοποιούσατε κάτι σαν:

lngPID = Shell ("MyTextFile.txt", vbNormalFocus)

Χρησιμοποιώντας τη διαδικασία. Αρχή

Μπορείτε να χρησιμοποιήσετε αυτόν τον κώδικα για να ξεκινήσετε το Σημειωματάριο μεγιστοποιώντας και να δημιουργήσετε ένα ProcessStartInfo αντικείμενο που μπορείτε να χρησιμοποιήσετε για πιο ακριβή έλεγχο:

Dim ProcessProperties ως νέα διαδικασίαStartInfo
ProcessProperties. Όνομα_αρχείου = "σημειωματάριο"
ProcessProperties. Arguments = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Μεγιστοποιημένη
Dim myProcess As Process = Διαδικασία. Έναρξη (ProcessProperties)

Ξεκινώντας μια κρυφή διαδικασία

Μπορείτε ακόμη και να ξεκινήσετε μια κρυφή διαδικασία.

ProcessProperties. WindowStyle = ProcessWindowStyle. Κρυμμένος
Αλλά πρόσεχε. Εάν δεν προσθέσετε περισσότερο κώδικα για να τερματίσετε τη διαδικασία, ίσως χρειαστεί να τον τερματίσετε στο Task Manager. Οι κρυφές διεργασίες συνήθως χρησιμοποιούνται μόνο σε διαδικασίες που δεν έχουν κανένα είδος διεπαφής χρήστη.

Ανάκτηση του ονόματος μιας διαδικασίας

Δουλεύοντας με Επεξεργάζομαι, διαδικασία. Αρχή ως αντικείμενο .NET σας δίνει πολλές δυνατότητες. Για παράδειγμα, μπορείτε να ανακτήσετε το όνομα της διαδικασίας που ξεκίνησε. Αυτός ο κωδικός θα εμφανίσει το "σημειωματάριο" στο παράθυρο εξόδου:

Dim myProcess As Process = Διαδικασία. Έναρξη ("MyTextFile.txt") Κονσόλα. WriteLine (myProcess. ProcessName)
Αυτό ήταν κάτι που θα μπορούσατε δεν με το VB6 Κέλυφος επειδή ξεκίνησε τη νέα εφαρμογή ασύγχρονα. Χρησιμοποιώντας WaitForExit μπορεί να προκαλέσει το αντίστροφο πρόβλημα στο .NET επειδή πρέπει να ξεκινήσετε μια διαδικασία σε ένα νέο νήμα αν το χρειάζεστε για να εκτελεστεί ασύγχρονα. Για παράδειγμα, αν χρειάζεστε τα στοιχεία να παραμένουν ενεργά σε μια μορφή στην οποία ξεκίνησε μια διαδικασία και WaitForExit εκτελέστηκε. Συνήθως, αυτά τα στοιχεία δεν θα είναι ενεργά. Κωδικοποιήστε το και δείτε μόνοι σας.

Ένας τρόπος να αναγκαστεί η διαδικασία να σταματήσει είναι να χρησιμοποιήσει το Σκοτώνω μέθοδος.

myProcess. Σκοτώνω()

Αυτός ο κώδικας περιμένει δέκα δευτερόλεπτα και στη συνέχεια τερματίζει τη διαδικασία.

Ωστόσο, ορισμένες φορές απαιτείται αναγκαστική καθυστέρηση για να επιτραπεί στη διαδικασία να ολοκληρώσει την έξοδο για να αποφύγει ένα σφάλμα.

myProcess. WaitForExit (10000)
'αν η διαδικασία δεν ολοκληρωθεί εντός
'10 δευτερόλεπτα, σκοτώστε το
Αν δεν είναι η myProcess. HasExited Στη συνέχεια
myProcess. Σκοτώνω()
Τέλος εαν
Το νήμα. Νήμα. Ύπνος (1)
Κονσόλα. WriteLine ("Το Notepad έληξε:" _
& myProcess. ExitTime & _
Περιβάλλον. NewLine & _
"Κωδικός εξόδου:" & _
myProcess. ExitCode)

Στις περισσότερες περιπτώσεις, είναι πιθανώς μια καλή ιδέα να βάλετε την επεξεργασία σας σε ένα Χρησιμοποιώντας μπλοκ για να διασφαλιστεί ότι οι πόροι που χρησιμοποιούνται από τη διαδικασία απελευθερώνονται.

Χρησιμοποιώντας τη διαδικασία myProcess ως διαδικασία = Νέα διαδικασία
«Ο κωδικός σου πηγαίνει εδώ
Τέλος χρήσης

Για να γίνει ακόμα πιο εύκολο να εργαστείτε με αυτό, υπάρχει ακόμη και ένα Επεξεργάζομαι, διαδικασία που μπορείτε να προσθέσετε στο έργο σας, ώστε να μπορείτε να κάνετε πολλά από τα πράγματα που παρουσιάζονται παραπάνω κατά το σχεδιασμό, αντί του χρόνου εκτέλεσης.

Ένα από τα πράγματα που κάνει πολύ πιο εύκολη την κωδικοποίηση των γεγονότων που προκύπτουν από τη διαδικασία, όπως είναι το γεγονός όταν η διαδικασία έχει εξέλθει. Μπορείτε επίσης να προσθέσετε ένα χειριστή χρησιμοποιώντας κώδικα όπως αυτό:

«επιτρέπουν στη διαδικασία να αυξήσει τα γεγονότα
myProcess. EnableRaisingEvents = True
'προσθήκη προγράμματος χειρισμού συμβάντων εξόδου
Προσθήκη του myProcess. Έφυγε, _
ΔιεύθυνσηΜου. ProcessExited
Private Sub ProcessExited (ByVal αποστολέας ως αντικείμενο, _
ByVal e ως σύστημα. EventArgs)
«Ο κωδικός σου πηγαίνει εδώ
End Sub

Αλλά απλά επιλέγοντας το συμβάν για το στοιχείο είναι πολύ πιο εύκολο.