Itu Mulailah metode Proses objek mungkin salah satu alat yang paling kurang dihargai tersedia untuk seorang programmer. Sebagai .BERSIH metode, Mulailah memiliki serangkaian kelebihan, yang merupakan set parameter yang berbeda yang menentukan dengan tepat apa yang dilakukan metode ini. Kelebihan ini memungkinkan Anda menentukan hampir semua set parameter yang mungkin ingin Anda sampaikan ke proses lain saat dimulai.
Apa yang bisa Anda lakukan dengan Proses. Mulailah benar-benar hanya dibatasi oleh proses yang dapat Anda gunakan dengannya. Jika Anda ingin menampilkan file ReadMe berbasis teks di Notepad, semudah:
Proses. Mulai ("ReadMe.txt")atau.
Proses. Mulai ("notepad", "ReadMe.txt")
Contoh ini mengasumsikan file ReadMe berada di folder yang sama dengan program dan Notepad adalah aplikasi default untuk tipe file .txt, dan itu ada di jalur lingkungan sistem.
Proses. Mulai mirip dengan perintah Shell di VB6
Untuk programmer yang akrab dengan Visual Basic 6, Proses. Mulailah agak seperti VB 6 Kulit perintah. Di VB 6, Anda akan menggunakan sesuatu seperti:
lngPID = Shell ("MyTextFile.txt", vbNormalFocus)
Menggunakan Proses. Mulailah
Anda dapat menggunakan kode ini untuk memulai Notepad dimaksimalkan dan membuat ProcessStartInfo objek yang dapat Anda gunakan untuk kontrol yang lebih tepat:
Dim ProcessProperties Sebagai ProcessStartInfo Baru
Properti Proses. FileName = "notepad"
Properti Proses. Argumen = "myTextFile.txt"
Properti Proses. WindowStyle = ProcessWindowStyle. Dimaksimalkan
Dim myProcess As Process = Process. Mulai (PropertiProperti)
Memulai Proses Tersembunyi
Anda bahkan dapat memulai proses tersembunyi.
Properti Proses. WindowStyle = ProcessWindowStyle. TersembunyiTetapi berhati-hatilah. Kecuali Anda menambahkan lebih banyak kode untuk mengakhiri proses, Anda mungkin harus mengakhirinya di Task Manager. Proses tersembunyi biasanya hanya digunakan dengan proses yang tidak memiliki antarmuka pengguna apa pun.
Mengambil Nama Suatu Proses
Bekerja dengan Proses. Mulailah sebagai objek .NET memberi Anda banyak kemampuan. Misalnya, Anda dapat mengambil nama proses yang dimulai. Kode ini akan menampilkan "notepad" di jendela output:
Dim myProcess As Process = Process. Mulai ("MyTextFile.txt") Konsol. WriteLine (Proses saya. Nama proses)Ini adalah sesuatu yang Anda bisa tidak lakukan dengan VB6 Kulit perintah karena meluncurkan aplikasi baru secara tidak sinkron. Menggunakan WaitForExit dapat menyebabkan masalah terbalik di .NET karena Anda harus meluncurkan proses di utas baru jika Anda perlu menjalankannya secara tidak sinkron. Misalnya, jika Anda memerlukan komponen untuk tetap aktif dalam bentuk tempat proses diluncurkan dan WaitForExit dieksekusi. Biasanya, komponen-komponen itu tidak akan aktif. Kode itu dan lihat sendiri.
Salah satu cara untuk memaksa proses berhenti adalah dengan menggunakan Membunuh metode.
Proses saya. Membunuh()
Kode ini menunggu selama sepuluh detik dan kemudian mengakhiri proses.
Namun, penundaan paksa kadang-kadang diperlukan untuk memungkinkan proses menyelesaikan keluar untuk menghindari kesalahan.
Proses saya. WaitForExit (10000)
'Jika proses tidak selesai di dalam
10 detik, bunuh saja
Jika Bukan Prosesku. Telah Keluar Lalu
Proses saya. Membunuh()
Berakhir jika
Threading. Benang. Tidur (1)
Menghibur. WriteLine ("Notepad berakhir:" _
& Proses saya. ExitTime & _
Lingkungan Hidup. Garis baru & _
"Kode Keluar:" & _
Proses saya. ExitCode)
Dalam kebanyakan kasus, mungkin ide yang baik untuk menempatkan pemrosesan Anda di a Menggunakan blokir untuk memastikan bahwa sumber daya yang digunakan oleh proses dilepaskan.
Menggunakan myProcess As Process = Proses Baru
'Kode Anda ada di sini
Akhiri Penggunaan
Untuk membuat semua ini lebih mudah untuk dikerjakan, bahkan ada a Proses komponen yang dapat Anda tambahkan ke proyek Anda sehingga Anda dapat melakukan banyak hal yang ditunjukkan di atas pada waktu desain bukan waktu berjalan.
Salah satu hal yang membuat ini jauh lebih mudah adalah pengkodean peristiwa yang diangkat oleh proses, seperti peristiwa ketika proses telah keluar. Anda juga dapat menambahkan penangan menggunakan kode seperti ini:
'Biarkan proses untuk meningkatkan acara
Proses saya. EnableRaisingEvents = Benar
'tambahkan pengendali acara yang Keluar
AddHandler myProcess. Keluar, _
AddressOf Me. ProcessExited
Private Sub ProcessExited (ByVal sender As Object, _
ByVal e As System. EventArgs)
'Kode Anda ada di sini
End Sub
Tetapi hanya memilih acara untuk komponen itu jauh lebih mudah.