Jau pasidarėte savo Task Manager? Tuomet turiu dar keletą minčių kaip jį patobulinti. Pridėkime papildomų funkcijų.

1. Kaip startuoti procesą.
Tai visai paprasta.

process.Start(processName)

processName nurodo tikslų kelią iki pvz C://myDir/myPro.exe
Tarkim aš noriu startuoti notepad. Jeigu pažiūrėsiu ant jo nuorodos (shortcut), tai pamatysiu, jog šią programą galiu rasti %SystemRoot%\system32\notepad.exe adresu. Jeigu jūs manote, jog tokį kelią padavus programa neveiks esate visiškai teisūs. Ką daryti? Parašykim truputi gudresnį kodą:

string winpath = Environment.GetEnvironmentVariable("SystemRoot");
Process.Start(winpath + @"\system32\notepad.exe");

Iš tiesų bent jau šiuo konkrečiu atveju taip sudėtingai rašyti nereikia, nes tokios kaip notepad arba calc turi savo trumpuosius kreipinius, kuriuos parašius jos sėkmingai pasileidžia.
Na ir dar, kaip paleisti notepad su konkrečiu mums reikalingu failu:

Process.Start("notepad", "readme.txt");

Pirmasis parametras yra programa, kurią norime paleisti, o antrasis failas, kurį ketiname atidaryti, nepamirškite turite nurodyti pilną kelią iki failo.

2. Kaip startuoti naršyklę.
Čia turbūt ir ežiui aišku, jeigu vietoj kelio nurodysime internetinio puslapio adresą, užsikrausim norimą puslapį.

string myURL = "http://www.pixel.lt";
Process.Start(myURL);

Tačiau mes nežinome, kokią naršyklę turi vartotojas, tarkim, kad mes norime, jog startuotų būtent Internet Explorer. Galėtume padaryti taip, kaip ankščiau padarėme su notepad, bet kodėl nepabandžius dar vieno būdo?

Process proc = new Process();
proc.StartInfo.FileName = "iexplore.exe";
proc.StartInfo.Arguments = "http://www.pixel.lt";
proc.Start();

Konkrečiai šiuo atveju, tai paskutinį būdą galima būtų pavadinti “nusisuk galvą”, atkreipkite dėmesį, jog anksčiau tiesiog startuodavau Process, o dabar turėjome pirma susikurti tokio tipo objektą, priskirti jam savybes ir tik po to tą objektą startuoti.
Taip pat pabandysim nustatyti, kokią naršyklę vartotojas laiko pagrindine:

string browser = string.Empty;
RegistryKey key = null;
key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false);
browser = key.GetValue(null).ToString().ToLower().Replace("\"", "");
MessageBox.Show(browser);

Taip, mes tikrai lendame į registrą, bailiams siūlau nerizikuoti, o jeigu jūsų rankos nelabai įgudusios tikrai neatsakysiu už neveikiantį kompiuterį. Žodžiu, visa atsakomybė jums.
Ką mes darome? Trečioje eilutėje pasiimam konkrečios mums reikalingos reikšmės įrašą, ketvirtoje tą įrašą paverčiam į String tipo kintamąjį (ToString), mažosiomis raidėmis (ToLower) ir pašaliname nereikalingas kabutes (Replace). Na, o paskutinėje eilutėje išvedame pranešimą, aš tikiu, kad gautą reikšmę jūs sugebėsite panaudoti kur kas prasmingiau nei šiame pavyzdyje.
Beje, tam, kad paskutinis kodas veiktų jums dar reikės:

using Microsoft.Win32;

Jeigu kas nors neveikia, prašau labai atidžiai perskaityti kaip susikurti savo Task Manager
Klausimų, pasiūlymų?

Panašūs straipsniai


Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.