În acest articol, vom încerca să închidem procesul specificat din linia de comandă printr-un formular de dialog creat cu serverul script script Windows Script în limba vbscript.
Am decis să nu repet greșeala făcută în articolul "Crearea unui manager de servicii", am împins două scripturi uriașe deodată și, de fapt, a fost un terci solid pentru 12 mii de caractere. Am vrut doar să economisesc timp, ca rezultat - pozițiile din extrădare au fost mai rele decât mă așteptam.
Ca și înainte, pentru a crea o interfață de fereastră, vom folosi componenta WindowSystemObject. Puteți găsi un link spre arhivă cu un exemplu la sfârșitul articolului. Sarcina exemplului este obținerea listei proceselor, selectarea procesului necesar și (aproape) din linia de comandă, pentru aceasta vom folosi utilitarul taskkill.
Primul lucru pe care trebuie să-l acordați sunt clasele personalizate, există doar cinci dintre ele:
new_class - clasa conține patru proprietăți (după numărul de coloane din listă), fiecare proprietate stochează informațiile de proces specificate (ele (descrierea), acreditările sub care rulează procesul, identificatorul și identificatorul părintelui.
Restul de patru clase stochează numele coloanei, lățimea acesteia și funcția responsabilă de adăugarea datelor în lista pentru coloana curentă
Există două butoane pe formular:
Button_Update - solicită funcții pentru actualizarea listei, acest lucru este necesar dacă vrem să verificăm dacă compoziția proceselor care rulează s-a schimbat după ce am oprit procesul din linia de comandă.
Button_Kill - necesar pentru a opri procesul specificat din linia de comandă. Când este apăsată, se va apela funcția ProcessKill.
Rețineți că pentru a apela funcția dorită, vom folosi funcția GetRef vbscript și vom transmite numele funcției ca parametru, dar nu ca un întreg, ci ca un șir. Acestea sunt caracteristici ale limbii vbscript în sine. De fapt, GetRef formează o referință la o copie a funcției specificate.
Următorul este formarea matricei de date_array în funcția fill_data_array. Aici avem acces la clasa Win32_Process. care returnează o colecție de procese și recuperează patru proprietăți. Array data_array în sine stochează obiecte cu proprietățile date, numărul de obiecte este egal cu numărul de elemente din listă.
Pentru a umple coloanele, facem referire la matricea def_columns, care stochează și obiecte din ea.
Funcția CreateListView este responsabilă pentru crearea unei liste, generarea de coloane și adăugarea elementelor.
Componenta WindowSystemObject conține în sine o mulțime de posibilități, dar ... o referință slabă la aplicație și la descriere. Deci, nu am dat seama încă cum să sortați corect elementele, ceea ce ar fi mai convenabil să opriți procesul din linia de comandă. Deoarece indicele se schimbă în timpul sortimentului de date, și în consecință, conținutul matricei de date_array în sine ar trebui să se schimbe.