Käivitage midagi, kasutades protsessi. Alustage VB.NET-ist

Alusta meetod Protsess objekt on võib-olla üks programmeerija jaoks kõige vähemhuvitatud tööriistu. Nagu .NET meetod, Alusta on ülekoormuste seeria, mis on erinevad parameetrite kogumid, mis määravad täpselt, mida meetod teeb. Ülekoormused võimaldavad teil täpsustada peaaegu kõik parameetrite kogumid, mida võiksite selle käivitamisel mõnele teisele protsessile üle anda.

Mida saate teha Protsess. Alusta on tõesti piiratud ainult protsessidega, mida saate sellega kasutada. Kui soovite oma tekstipõhist ReadMe-faili Notepadis kuvada, on see sama lihtne kui:

Protsess. Alusta ("ReadMe.txt")
või.
Protsess. Start ("notepad", "ReadMe.txt")

Selle näite puhul eeldatakse, et fail ReadMe asub samas kaustas kui programm ja et Notepad on .txt-failitüüpide vaikelurakendus ning see asub süsteemikeskkonna teel.

Protsess. Käivitage sarnaselt VB6 Shelli käsuga

Programmeerijatele, kes tunnevad Visual Basic 6 Protsess. Alusta on mõnevõrra nagu VB 6 Koor käsk. VB 6-s kasutaksite midagi sellist:

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

Protsessi kasutamine. Alusta

Selle koodi abil saate Notepadi maksimeerida ja luua a ProcessStartInfo objekt, mida saate kasutada täpsemaks juhtimiseks:

Tühjendage protsessiomadusi uue protsessina StartInfo
Protsessipinnad. FileName = "notepad"
Protsessipinnad. Arguments = "myTextFile.txt"
Protsessipinnad. WindowStyle = ProcessWindowStyle. Maksimeeritud
Dim myProcess kui protsess = protsess. Alusta (ProcessProperties)

Varjatud protsessi käivitamine

Võite isegi alustada varjatud protsessi.

Protsessipinnad. WindowStyle = ProcessWindowStyle. Varjatud
Aga ole ettevaatlik. Kui te protsessi lisamiseks täiendavat koodi ei lisa, peate selle tõenäoliselt tööhalduris lõpetama. Varjatud protsesse kasutatakse tavaliselt ainult koos protsessidega, millel pole mingit kasutajaliidest.

Protsessi nime hankimine

Tõõtan koos Protsess. Alusta kuna .NET-objekt annab teile palju võimalusi. Näiteks võite hankida käivitatud protsessi nime. Selle koodi kuvatakse väljundiaknas "notepad":

Dim myProcess kui protsess = protsess. Käivitage ("MyTextFile.txt") konsool. WriteLine (myProcess. ProcessName)
See oli midagi, mida sa suutsid mitte teha VB6-ga Koor, kuna see käivitas uue rakenduse asünkroonselt. Kasutades WaitForExit võib põhjustada .NET-i vastupidise probleemi, kuna peate protsessi käivitama uues lõimes, kui teil on seda vaja asünkroonselt käivitada. Näiteks kui teil on vaja, et komponendid püsiksid aktiivsed kujul, kus protsess käivitati ja WaitForExit hukati. Tavaliselt ei ole need komponendid aktiivsed. Kodeerige see üles ja vaadake ise.

Üks viis protsessi peatamiseks on selle kasutamine Tapa meetod.

myProcess. Tapa ()

See kood ootab kümme sekundit ja seejärel lõpetab protsessi.

Kuid mõnikord on vaja sundviivitust, et võimaldada protsessil väljumise lõpetada, et viga vältida.

myProcess. WaitForExit (10000)
'kui protsess ei lõpe
10 sekundit, tapa ära
Kui mitte myProcess. HasExited Siis
myProcess. Tapa ()
Lõpeta If
Keermestamine. Niit. Magama (1)
Konsool. WriteLine ("Märkmiku lõpp:" _
& myProcess. ExitTime & _
Keskkond. Uus rida & _
"Väljumiskood:" & _
myProcess. ExitCode)

Enamikul juhtudel on tõenäoliselt hea mõte panna oma töötlemine a-sse Kasutades blokeerida protsessi kasutatavate ressursside vabastamise tagamiseks.

MyProcessi kasutamine protsessina = uus protsess
'Sinu kood läheb siia
Lõpetage kasutamine

Selle kõige töö hõlpsamaks muutmiseks on olemas isegi a Protsess komponent, mille saate oma projekti lisada, nii et saate teha palju ülaltoodud asju projekteerimise ajal, mitte käitusajana.

Üks asi, mis selle palju lihtsamaks teeb, on protsessi tõstatatud sündmuste kodeerimine, näiteks sündmus, kui protsess on väljunud. Võite ka käitleja lisada, kasutades järgmist koodi:

'võimaldada protsessil sündmusi esile kutsuda
myProcess. EnableRaisingEvents = Tõsi
'lisage sündmuste lõpetaja
AddHandler myProcess. Välja, _
AddressOf Me. ProcessExited
Privaatne alamprotsessExited (ByVal saatja objektina, _
ByVal e As süsteem. EventArgs)
'Sinu kood läheb siia
Lõpu alam

Kuid lihtsalt komponendi jaoks sündmuse valimine on palju lihtsam.

instagram story viewer