HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Hardverprofil-információk lekérdezése


Példaprogram letöltése

3727 bájt

Előfordulhatnak olyan esetek, amikor programunknak meg kell vizsgálnia, hogy az adott számítógép melyik hardverprofilhoz kapcsolódik. Ez főleg akkor fontos, mikor valaki hordozható számítógépét úgy használja munkája során, hogy azt több helyen is különböző dokkoló-egységekhez, hardvereszközökhöz, vagy hálózati elemekhez kapcsolja. Ilyenkor a cikkben ismertetett függvény segítségével különböző információkat tudhatunk meg az éppen használt hardverprofillal kapcsolatban.

A hardverprofil olyan utasításkészlet, amely azt közli a Windows operációs rendszerrel, hogy mely eszközöket kell elindítania a számítógép elindításakor, illetve, hogy milyen beállításokkal használja az egyes eszközöket. A Windows első telepítésekor létrejön egy Profil 1 nevű hardverprofil (hordozható gépeknél a Dokkolt profil vagy a Nem dokkolt). A Profil 1 nevű hardverprofilban alapértelmezés szerint a Windows telepítésekor a számítógépre telepített összes eszköz engedélyezve van.
A hardverprofilok használata különösen hordozható számítógépek esetében nyújt komoly segítséget. A legtöbb hordozható számítógépet több helyen használják, és a hardverprofilok segítségével módosítható, hogy milyen eszközöket használjon a számítógép az egyik vagy a másik helyen. Létrehozhat például egy Dokkoló-egység konfiguráció nevű profilt, amelyet akkor használ, ha a számítógép olyan dokkoló-egységhez kapcsolódik, amelyen CD-ROM meghajtó, hálózati csatolókártya és más hardvereszközök is elérhetők. Emellett lehet egy másik profilja, mondjuk Önálló konfiguráció néven, amelyet akkor vehet igénybe, ha a számítógépet szállodában vagy repülőgépen használja, és nem használ hozzá hálózati csatolót vagy CD-ROM meghajtót, de modemet és hordozható nyomtatót igen.
Ha egynél több hardverprofilja van, megadhatja, hogy melyik legyen az alapértelmezett. A számítógép indításakor ezután azt használja az operációs rendszer. Az is beállítható, hogy a Windows minden indításkor megkérdezze, hogy melyik profilt használja. Hardverprofil készítésekor az Eszközkezelő segítségével tudja a benne lévő eszközöket engedélyezni vagy letiltani. A hardverprofilban letiltott eszközök illesztő-programjai a számítógép indításakor nem töltődnek be.
Az aktuális hardverprofil információit a következő függvény segítségével tudjuk lekérdezni.
GetCurrentHwProfile
BOOL GetCurrentHwProfile(
LPHW_PROFILE_INFO lpHwProfileInfo
);
Paraméterek
LPHW_PROFILE_INFO lpHwProfileInfo
Mutató, ami egy HW_PROFILE_INFO struktúrára utal, amely információkat szolgáltat az aktuális hardverprofilról.
Visszatérési érték
Amennyiben a függvényhívás sikeres, egy nem nulla értéket kapunk eredményül.
Amennyiben nem sikerült a függvényhívás, nullát kapunk.
A HW_PROFILE_INFO felépítése a következő:
typedef struct tagHW_PROFILE_INFO {
DWORD dwDockInfo;
TCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
TCHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFO, *LPHW_PROFILE_INFO;
Paraméterek
DWORD dwDockInfo
A számítógép dokkolási állapotáról szolgáltat információt.
Az eredmény a következő bitértékek kombinációja lehet:
DOCKINFO_DOCKED A számítógép dokkolt állapotban van. Asztali számítógépek esetén, melyek nem lehetnek hordozható állapotban, ez a flag állandóan be van állítva.
DOCKINFO_UNDOCKED A számítógép hordozható állapotban van, azaz nincs dokkolva. Asztali számítógépek esetén, melyek nem lehetnek hordozható állapotban, ez a flag állandóan be van állítva.
DOCKINFO_USER_SUPPLIED Ezen érték esetén a GetCurrentHwProfile függvény a jelenlegi dokkolási állapotra vonatkozó információkat a felhasználó által a Vezérlőpult -> Rendszer -> Hardver -> Hardverprofilok tulajdonságainál beállítottak szerint szolgáltatja.
A Windows NT 4.0 nem képes a dokkolási állapot ilyen jellegű megállapítására, ezért ezen operációs rendszer alatt ez az érték mindig be van állítva.
DOCKINFO_USER_DOCKED A számítógép dokkolva van. Az információt a felhasználó által beállított értékből veszi. Ez az érték kombinációja a DOCKINFO_USER_SUPPLIED és a DOCKINFO_DOCKED értékeinek.
DOCKINFO_USER_UNDOCKED A számítógép hordozható állapotban van. Az információt a felhasználó által beállított értékből veszi. Ez az érték kombinációja a DOCKINFO_USER_SUPPLIED és a DOCKINFO_UNDOCKED értékeinek.
TCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]
Mutató, ami egy String típusú számsorozatra utal, mely egy, az aktuális hardverprofilra vonatkozó egyedi azonosító számot tartalmaz, amelyet GUID-nak (globally unique identifier) nevezünk. Ezt a számsorozat minden hardverprofil létrehozásakor a rendszer generálja és bekerül a Registry-be. A GUID idézőjel és kapcsos zárójelek között "{}" szerepel a GetCurrentHwProfile visszatérési értékében.
Mivel ez egy egyedi érték, lehetőségünk van arra, hogy felhasználjuk azt egy alkalmazás kulcsaként, a Registry HKEY_CURRENT_USER könyvtárában. Ezzel lehetőségünk nyílik arra, hogy a számítógépet használó összes felhasználó összes hardverprofiljának beállításait eltároljuk.
Ha például a Vezérlőpult Megjelenítés része ezt a kulcsot használja, képes lesz arra, hogy az összes felhasználó különböző hardverprofiljaiban beállított, a rendszerre vonatkozó megjelenítéseket eltárolja, mind dokkolt, mind hordozható állapotban. Azok az alkalmazások, melyek ezzel a funkcióval rendelkeznek, képesek az indításukkor leellenőrizni a hardverprofilok beállításait, és az aktuálisnak megfelelően módosítani a tulajdonságaikat. Szintén képesek felfrissíteni a beállításaikat akkor is, ha futtatásuk közben megváltoztatjuk az aktuális hardverprofil tulajdonságait. Mindehhez annyit kell tenni, hogy a Registry HKEY_CURRENT_USER könyvtár Control Panel alkönyvtárának Appearance részéhez új kulcsként felvesszük a GUID String-et.
TCHAR szHwProfileName[MAX_PROFILE_LEN]
Mutató, mely az aktuális hardverprofil nevét adja eredményként.
Visszatérési érték
Értékként a lekérdezett paraméter által szolgáltatott információt adja vissza.
Végül lássuk a mellékelt példaprogram működését.
Létrehoztunk három függvényt a három paraméter lekérdezéséhez.
A pInfo mindhárom esetben a TagHW_PROFILE_INFOA struktúrára mutat.
var
  pInfo: TagHW_PROFILE_INFOA;
Az aktuális hardverprofil nevét a következőképp kapjuk meg:
function GettingHWProfileName: string;
begin
  GetCurrentHwProfile(pInfo);
  Result := pInfo.szHwProfileName;
end;
A hardverprofilhoz tartozó GUID értékét kérdezzük le a következő függvénnyel:
function GettingHWProfileGuid: string;
begin
  GetCurrentHwProfile(pInfo);
  Result := pInfo.szHwProfileGuid;
end;
Végül a dokkolás állapotára vonatkozó információk következnek:
function GettingHWDockInfo: Integer;
begin
  GetCurrentHwProfile(pInfo);
  Result := pInfo.dwDockInfo;
end;
Ezután nincs más dolgunk, mint kiíratni a kapott értékeket:
  Label1.Caption:='Az aktuális hardverprofil neve: '+GettingHWProfileName;
  Label2.Caption:='Az aktuális hardverprofil egyedi azonosító kódja (GUID): '+GettingHWProfileGuid;
Megvizsgáljuk, hogy mely flag-ek vannak beállítva, s ennek megfelelően íratjuk ki a dokkolásra vonatkozó üzenetet.
  if GettingHWDockInfo and DOCKINFO_USER_DOCKED and DOCKINFO_USER_UNDOCKED <> 0 then
    Label3.Caption:='A számítógép valószínűleg asztali számítógép, így mindig dokkolt állapotban van.';
Amennyiben a fenti kombináció nem nullát ad eredményként, valószínűleg a vizsgált gép egy asztali számítógép, hiszen ezek esetén mind a dokkolt, mind a hordozható állapotra vonatkozó flag be van állítva.
  if GettingHWDockInfo and DOCKINFO_USER_SUPPLIED <> 0 then
    Label4.Caption:='A dokkolási információkat a felhasználói beállításokból veszi a rendszer.';
Ha a DOCKINFO_USER_SUPPLIED flag értéket kapott, biztosan a felhasználó által a Vezérlőpulton beállított értékeket adja vissza a rendszer.
  if GettingHWDockInfo and DOCKINFO_DOCKED <> 0 then
    Label5.Caption:='A beállítások szerint a számítógép dokkolt állapotban van.'
  else
    Label5.Caption:='A beállítások szerint a számítógép hordozható állapotban van.';
A fenti flag attól függően kap értéket, hogy a gép dokkolt vagy hordozható állapotban van.
Próbáljuk ki, hogy a Vezérlőpult -> Rendszer -> Hardver -> Hardverprofilok ablakban manuálisan megváltoztatjuk az aktuális hardverprofil tulajdonságát, majd kérjük le újra a hardverprofil információit. A program a beállításoknak megfelelő értékeket fogja visszaadni.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 482. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |