Sāciet kaut ko, izmantojot procesu. Sāciet vietnē VB.NET

Sākt metode Process objekts, iespējams, ir viens no programmētājiem mazāk novērtētajiem rīkiem. Kā .TĪKLS metode, Sākt ir virkne pārslodžu, kas ir dažādas parametru kopas, kas precīzi nosaka, ko metode dara. Pārslodzes ļauj norādīt gandrīz jebkuru parametru kopu, kuru jūs varētu vēlēties nodot citam procesam, kad tas sākas.

Ko jūs varat darīt ar Process. Sākt patiešām ir ierobežoti tikai ar procesiem, kurus varat izmantot. Ja vēlaties parādīt tekstu balstītu ReadMe failu piezīmjdatorā, tas ir tik vienkārši:

Process. Sākt ("ReadMe.txt")
vai.
Process. Sākt (“notepad”, “ReadMe.txt”)

Šajā piemērā tiek pieņemts, ka fails ReadMe atrodas tajā pašā mapē kā programma, un Notepad ir noklusējuma programma .txt failu tipiem, un tas atrodas sistēmas vides ceļā.

Process. Sāciet līdzīgi kā Shell Command VB6

Programmētājiem, kuri pārzina Visual Basic 6, Process. Sākt ir nedaudz līdzīgs VB 6 Apvalks komanda. VB 6 versijā jūs izmantotu kaut ko līdzīgu:

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

Izmantojot procesu. Sākt

instagram viewer

Varat izmantot šo kodu, lai maksimāli aktivizētu Notepad un izveidotu ProcessStartInfo objekts, kuru varat izmantot precīzākai kontrolei:

Dim ProcessProperties as New ProcessStartInfo
ProcessProperties. FileName = "notepad"
ProcessProperties. Argumenti = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Maksimāli
Dim myProcess As Process = Process. Sākt (ProcessProperties)

Slēpta procesa sākšana

Jūs pat varat sākt slēptu procesu.

ProcessProperties. WindowStyle = ProcessWindowStyle. Slēpts
Bet esi piesardzīgs. Ja vien procesa pabeigšanai nepievienojat vairāk koda, tas, iespējams, būs jābeidz ar uzdevumu pārvaldnieku. Slēptos procesus parasti izmanto tikai ar procesiem, kuriem nav nekāda lietotāja interfeisa.

Procesa nosaukuma iegūšana

Strādājot ar Process. Sākt kā .NET objekts dod jums daudz iespēju. Piemēram, jūs varat iegūt sāktā procesa nosaukumu. Šis kods izvades logā parādīs "notepad":

Dim myProcess As Process = Process. Sāciet (“MyTextFile.txt”) konsoli. WriteLine (myProcess. ProceName)
Tas bija kaut kas, ko jūs varētu darīt ar VB6 Apvalks komandu, jo tā jauno programmu palaida asinhroni. Izmantojot WaitForExit var izraisīt apgrieztu problēmu .NET, jo jums ir jāuzsāk process jaunā pavedienā, ja tas nepieciešams asinhroni izpildīt. Piemēram, ja jums ir nepieciešams, lai komponenti paliktu aktīvi tādā formā, kur tika uzsākts process un WaitForExit tika izpildīts. Parasti šie komponenti nebūs aktīvi. Kodējiet to un apskatiet pats.

Viens veids, kā piespiest procesu apturēt, ir Nogalini metode.

myProcess. Nogalināt ()

Šis kods nogaida desmit sekundes un pēc tam beidz procesu.

Tomēr dažreiz ir nepieciešama piespiedu aizkavēšanās, lai process varētu pilnībā iziet, lai izvairītos no kļūdas.

myProcess. WaitForExit (10000)
'ja process netiek pabeigts
'10 sekundes, nokauj
Ja ne myProcess. HasExited Tad
myProcess. Nogalināt ()
Beigt ja
Vītne. Vītne. Gulēt (1)
Konsole. WriteLine ("Notepad beidzās:" _
& myProcess. ExitTime & _
Vide. NewLine & _
"Izejas kods:" & _
myProcess. ExitCode)

Vairumā gadījumu, iespējams, ir laba ideja ievietot apstrādes procesu Izmantojot bloķēt, lai nodrošinātu procesa izmantoto resursu atbrīvošanu.

MyProcess izmantošana kā process = jauns process
'Jūsu kods ir šeit
Beigt lietošanu

Lai to visu padarītu vēl vieglāku, ir pat Process komponents, kuru varat pievienot savam projektam, lai jūs daudz kas iepriekš parādītu projektēšanas laikā, nevis izpildes laikā.

Viena no lietām, kas to ievērojami atvieglo, ir procesa izraisīto notikumu kodēšana, piemēram, notikums, kad process ir beidzies. Varat arī pievienot apstrādātāju, izmantojot šādu kodu:

“ļauj procesam izraisīt notikumus
myProcess. EnableRaisingEvents = True
'pievienot notikuma apstrādātāju
AddHandler myProcess. Iziet, _
AddressOf Me. ProcessExited
Privāts apakšprocessExited (ByVal sūtītājs kā objekts, _
ByVal e As System. EventArgs)
'Jūsu kods ir šeit
Beigas apakš

Bet vienkārši atlasīt notikumu komponentam ir daudz vieglāk.

instagram story viewer