Az Vbscript leállítja a folyamatot a parancssorból
Ebben a cikkben megpróbáljuk lezárni a megadott folyamatot a parancssorból a Windows Script Host szkript-kiszolgálóval létrehozott párbeszédpanelen a vbscript nyelven.
Úgy döntöttem, hogy nem ismételjük meg a "Szolgáltatási menedzser létrehozása" című cikk hibáját, egyszerre két óriási forgatókönyvet bocsátottam ki, és valójában volt egy szilárd zabkása 12 ezer karakterre. Csak azt akartam időt kímélni, hogy - a kiadatásban elfoglalt pozíciók rosszabbak voltak, mint amire számítottam.
Mint korábban, létrehozni egy ablak felületet, akkor a WindowSystemObject komponenst használjuk. A cikk végén egy példát találsz az archívumhoz. A példa feladata, hogy megkapja a folyamatok listáját, válassza ki a szükséges és (közeli) folyamatot a parancssorból, mert a taskkill segédprogramot használjuk.
Az első dolog, hogy figyeljen az egyedi osztály, csak öt van:
new_class - az osztály négy tulajdonságot tartalmaz (a listában szereplő oszlopok száma szerint), minden egyes tulajdonság tárolja a megadott folyamatinformációkat (Ezek (Leírás), a hitelesítő adatok, amelyek mellett a folyamat fut, az azonosító és a szülő azonosítója).
A fennmaradó négy osztály tárolja az oszlop nevét, annak szélességét és a függvényt, amely felelős az adatoknak az aktuális oszlop listájához való hozzáadásáért
Az űrlapon két gomb található:
Button_Update - hívásfunkciók a lista frissítéséhez, ez akkor szükséges, ha ellenőrizni szeretnénk, hogy a futó folyamatok összetétele megváltozott-e miután leállította a folyamatot a parancssorból.
Button_Kill - meg kell állítani a megadott folyamatot a parancssorból. Ha megnyomja a gombot, a ProcessKill funkció hívásra kerül.
Vegye figyelembe, hogy a kívánt funkció hívásához a GetRef vbscript függvényt használjuk, és a függvény nevét paraméterként adjuk át, de nem egészként, hanem szövegként. Ezek a vbscript nyelv sajátosságai. Valójában a GetRef hivatkozást tartalmaz a megadott függvény másolatára.
Ezután a data_array tömb kialakítása a fill_data_array függvényben. Itt férhetünk hozzá a Win32_Process osztályhoz. amely visszanyeri a folyamatok gyűjteményét és négy tulajdonságot keres. A array data_array maga tárolja az objektumokat az adott tulajdonságokkal, az objektumok száma megegyezik a listában szereplő elemek számával.
Az oszlopok kitöltéséhez a def_columns tömbre hivatkozunk, amely benne lévő objektumokat is tárol.
A CreateListView függvény egy lista létrehozásával, oszlopok létrehozásával és elemek hozzáadásával foglalkozik.
A WindowSystemObject komponens maga sok lehetőséget kínál, de ... gyenge utalás az alkalmazásra és a leírásra. Tehát még nem tudtam meg, hogyan kell megfelelően rendezni az elemeket, ami sokkal kényelmesebb lenne, ha leállítanánk a folyamatot a parancssorból. Mivel az indexek az adatok szétválogatásakor változnak, ezért ennek megfelelően a tartalomjegyzék adatbázistartalma is változni fog.