C# - Shell objektum metódusai

Windows Shell objektumok használata 3. rész

forráskód letöltése
A Windows Shell objektumait bemutató sorozatunkban egy újabb osztályt mutatunk be cikkünkben. Ez nem más, mint az objektummodell központi eleme, a Shell osztály. Bemutatjuk az osztály metódusait, használatunk módját. A cikk végére kiderül, hogyan érhetjük el az osztály segítségével a rendszer fizikai objektumait, konkrét ablakait.
A Shell objektum segítségével hozzáférhetünk a Windows grafikus felhasználói felületén keresztül elérhető objektumokhoz, megnyithatjuk az egyes ablakokat. A cikkben bemutatjuk a jellemző metódusokat használat közben.
BrowseForFolder metódus
A mellékelt példa két feladatcsoportra bomlik. Az első részben a BrowseForFolder metódus használatát mutatjuk be. A metódus lényege, hogy hívásakor megjelenik a Mappaválasztó dialógusablak, melybe a megadott mappa alkönyvtárai jelennek meg egy fában.
A metódus első három paramétere opcionális, jelentőségük elhanyagolható. A negyedik paraméter a ShellSpecialFolderConstants felsorolt típus egy eleme, mely egy speciális könyvtárat azonosít a fájlrendszerben.
A metódusban egy ilyen mappaazonosítót adunk meg.
Első lépés, hogy a Shell osztályt példányosítjuk.
shell = new Shell32.ShellClass();
Létrehozunk egy felsorolt típust a paraméterekhez.
public enum SpecialFolders : int
{
  DESKTOP = 0x0,
  DRIVES = 0x11,
  FAVORITES = 0x6,
  PERSONAL = 0x5,
  PROGRAMFILES = 0x26,
  PROGRAMS = 0x2,
  WINDOWS = 0x24
}
A ComboBox kontrol egy-egy elemét kiválasztva a megfelelő enumerátor adódik át paraméterként a metódusnak.
Shell32.Folder folder = null;
switch(comboBox1.SelectedIndex)
{
  case 0: folder = shell.BrowseForFolder(0,"",0,SpecialFolders.DESKTOP);
  break;
A metódus visszatérési értéke egy Folder objektum, melynek nevét megjelenítjük, ha az ablakot az OK gombbal zárjuk be, és a Folder objektum nem NULL.
MessageBox.Show(folder.Title);
ControlPanelItem metódus
A rendszer Vezérlőpult eszköze (Control Panel) számtalan alprogramot tartalmaz, melyek egy-egy ablakban nyílnak meg. A metódus segítségével elérhetjük valamennyit, elegendő egy nevet átadni a metódusnak. A Megjelenítés nevű segédalkalmazás betöltéséhez a metódust a következőképpen kell meghívni:
shell.ControlPanelItem("desk.cpl");
A metódusnak visszatérési értéke nincs.
FindFiles és FindComputer metódusok
A metódusok segítségével a rendszer keresőmotorjait vehetjük igénybe. Az első metódussal állományokat kereshetünk a rendszerben. Ekkor felbukkan a Start menü – Keresés – Fájlok és mappák menüpontjának megnyomásakor megjelenő ablak. Hívása a programból a következőképpen tehető meg:
shell.FindFiles();
A második metódussal a helyi hálózat egy másik számítógépét kereshetjük meg név alapján, egy másik felbukkanó ablakban. Használata:
shell.FindComputer();
A metódusoknak visszatérési értéke nincs.
Help metódus
A Help metódus segítségével a Windows rendszer súgóját érhetjük el, egy ablak jeleníthető meg a metódus meghívása nyomán. Használata a következő:
shell.Help();
A metódusnak visszatérési értéke nincs.
Ablakok minimalizálása
A Shell metódusaival van lehetőségünk a Desktop ablakainak minimalizálására, vagy ennek a műveletnek a visszavonására. Ehhez nem kell mást tennünk, csak paraméter nélkül meghívni a MinimizeAll, illetve az UndoMinimizeALL metódusokat, a következőképpen:
shell.MinimizeAll();
Illetve:
shell.UndoMinimizeALL();
A metódusoknak visszatérési értéke nincs.
Rendszer újraindítása/kikapcsolása
Ahogy a rendszer többi objektuma elérhető, úgy kikényszeríthető a rendszer leállítását, vagy újraindítását felkínáló ablak megjelenítése is.
Erre a célra szolgál a ShutdownWindows metódus.
A metódust paraméter nélkül hívhatjuk meg a következőképpen:
shell.ShutdownWindows();
A metódusnak visszatérési értéke nincs.
Tálca és Start menü
A Start menü – Beállítások – Tálca és Start menü pontjának választásakor felbukkan egy ablak, melynek segítségével a Start menü és a Tálca megjelenítését, funkcionalitását konfigurálhatjuk. Ezt is megjeleníthetjük a TrayProperties metódussal. Hívása:
shell.TrayProperties();
A metódusnak visszatérési értéke nincs.

Windows Shell objektumok használata cikksorozat