Pokrenite nešto pomoću postupka. Početak u VB.NET

click fraud protection

Početak metoda Postupak objekt je vjerojatno jedan od najcjenjenijih alata koji je dostupan programeru. Kao .NETO Postupak, Početak ima niz preopterećenja, to su različiti skupovi parametara koji točno određuju što metoda radi. Preopterećenja vam omogućuju da odredite gotovo sve skupove parametara koje možda želite prenijeti na drugi postupak kada se pokrene.

Što možete učiniti Postupak. Početak je zapravo ograničen samo procesima koje možete koristiti s njom. Ako želite prikazati svoju tekstualnu ReadMe datoteku u Notepadu, to je jednostavno kao:

Postupak. Početak ( "README.TXT")
ili.
Postupak. Start ("bilježnica", "ReadMe.txt")

Ovaj primjer pretpostavlja da se datoteka ReadMe nalazi u istoj mapi s programom i da je Notepad zadana aplikacija za .txt vrste datoteka, a nalazi se na putu okruženja sustava.

Postupak. Pokrenite slično kao naredba Shell-a u VB6

Za programere upoznate s Visual Basic 6, Postupak. Početak je pomalo nalik VB 6 Ljuska naredba. U VB-u 6 koristili biste nešto poput:

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

Korištenje procesa. Početak

Ovim šifrom možete započeti maksimaliziranje i stvaranje ProcessStartInfo objekt koji možete koristiti za precizniju kontrolu:

Dim ProcessProperties kao novi ProcessStartInfo
ProcessProperties. FileName = "bilježnica"
ProcessProperties. Argumenti = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. maksimizira
Zatamni myProcess kao postupak = postupak. Početak (ProcessProperties)

Pokretanje skrivenog procesa

Možete čak pokrenuti i skriveni postupak.

ProcessProperties. WindowStyle = ProcessWindowStyle. Skriven
Ali budi pažljiv. Ako ne dodate više koda za završetak postupka, vjerojatno ćete ga morati završiti u upravitelju zadataka. Skriveni procesi obično se koriste samo s procesima koji nemaju nikakvo korisničko sučelje.

Dohvaćanje naziva procesa

Raditi sa Postupak. Početak kao .NET objekt pruža vam puno mogućnosti. Na primjer, možete pronaći naziv postupka koji je započet. Ovaj će kod na izlaznom prozoru prikazati "bilježnicu":

Zatamni myProcess kao postupak = postupak. Start ("MyTextFile.txt") konzola. WriteLine (mojProces. ProcessName)
To je nešto što si mogao ne učiniti s VB6 Ljuska naredbu jer je novu aplikaciju asinkrono pokrenuo. koristeći WaitForExit može uzrokovati obrnuti problem u .NET-u jer morate pokrenuti proces u novom niti ako vam treba za asinhrono izvršavanje. Na primjer, ako trebate da komponente ostanu aktivne u obliku u kojem je pokrenut i WaitForExit pogubljen. Obično te komponente neće biti aktivne. Šifrirajte to i uvjerite se sami.

Jedan od načina da se proces zaustavi je uporaba Ubiti metoda.

myProcess. Ubiti()

Ovaj se kod čeka desetak sekundi, a zatim završava postupak.

Međutim, ponekad je potrebno prisilno kašnjenje kako bi se proces mogao dovršiti do zaustavljanja kako bi se izbjegla pogreška.

myProcess. ČekajForExit (10000)
'ako se postupak ne dovrši unutar
'10 sekundi, ubij ga
Ako ne mojProces. HasExited Onda
myProcess. Ubiti()
Završi ako
Threading. Nit. Mirovanje (1)
Konzola. WriteLine ("Bilješka je završena:" _
& myProcess. ExitTime & _
Okoliš. Nova linija & _
"Izlazni kod:" & _
myProcess. ExitCode)

U većini slučajeva vjerojatno je dobra zamjena za obradu koristeći blok da bi se osiguralo oslobađanje resursa koje koristi proces.

Korištenje myProcess kao procesa = novog procesa
'Vaš kod je ovdje
Kraj upotrebe

Da bi sve to bilo još lakše raditi, postoji čak i a Postupak komponentu koju možete dodati svom projektu, tako da umjesto vremena izvođenja možete učiniti mnogo gore prikazanih stvari.

Jedna od stvari koja ovo znatno olakšava je kodiranje događaja koje je pokrenuo proces, poput događaja kada je proces izašao. Možete dodati i rukopisnik koristeći ovaj kod:

'dopusti procesu pokretanje događaja
myProcess. EnableRaisingEvents = Tačno
'dodaj obrađivač događaja Exited
AddHandler myProcess. Izašao, _
Adresa mene. ProcessExited
Private Sub ProcessExited (ByVal pošiljatelj kao objekt, _
ByVal e kao sustav. EventArgs)
'Vaš kod je ovdje
Kraj Sub

Ali jednostavno je odabrati događaj za komponentu puno je lakše.

instagram story viewer