Image
7.6.2016 0 Comments

ASSEMBLER pod Windows: Systémové informácie (24. časť)

Späť na úvod >> Späť na programovanie >> Späť na seriál

Bežne sa pri programovaní stretnete s potrebou získať nejaké informácie zo systému (myslí sa nainštalovaný operačný systém). Do skupiny základných informácií o systéme patria napríklad informácie o dátume a čase, nastavení systémových farieb, aktuálny adresár, adresár, v ktorom je nainštalovaný systém, parametre príkazového riadka, verzia operačného systému, typ procesora, meno počítača, informácie o dostupných jednotkách v systéme, stav napájania atď. My sa tentoraz pozrieme, aké funkcie API na získavanie systémových informácií máme k dispozícii a čo všetko s nimi môžeme robiť. Praktický príklad nájdete na www.pcrevue.sk sekcia Programujeme – Assembler pod Windows.

GetCommandLine

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Prostredie práve aktívneho procesu sa skladá z príkazového riadka, parametrov pri spustení a premenných prostredia. Funkcia GetCommandLine vráti príkazový riadok (teda reťazec zakončený nulou). Príkazový riadok sa skladá z mena cesty (path) procesu v úvodzovkách, za ktorou nasledujú jednotlivé argumenty.

Syntax: LPTSTR GetCommandLine

Táto funkcia nemá žiadne parametre (pozri nasledujúci príklad):

...

.data?

hInstance HINSTANCE ?

CommandLine LPSTR ?

...

invoke GetModuleHandle, NULL

mov    hInstance, eax

invoke GetCommandLine

invoke WinMain, hInstance, NULL, CommandLine, SW_SHOWDEFAULT

invoke ExitProcess, eax

...

Výsledok funkcie: LPTSTR: Návratovou hodnotou je adresa príkazového riadka.

 

GetCompterName

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetComputerName vráti meno počítača aktuálneho systému.

Syntax: BOOL GetComputerName, LPTSTR lpBuffer, LPDWORD nSize

LPTSTR lpBuffer: Ukazovateľ na buffer, do ktorého sa uloží meno systému. Buffer musí mať veľkosť najmenej MAX_COMPUTERNAME_LENGTH + 1 bajtov. Kde MAX_COMPUTERNAME_LENGTH predstavuje hodnotu 15, čo je zadefinované aj vo windows.inc.

LPDWORD nSize: Ukazovateľ na adresu, ktorá obsahuje počet znakov v bufferi pred vykonaním funkcie a počet znakov aktuálne skopírovaných po vykonaní funkcie. Tento počet nezahrnuje zakončovaciu nulu.

Výsledok funkcie: BOOL: Ak sa funkcia skončila úspešne, vráti TRUE, inak vráti FALSE.

 

GetCurrentDirectory

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetCurrentDirectory vráti adresár aktuálneho procesu.

Syntax: DWORD GetCurrentDirectory, DWORD nBufferLength, LPTSTR lpBuffer

DWORD nBufferLength: Veľkosť buffera, do ktorého sa uloží meno aktuálneho adresára.

LPTSTR lpBuffer: Ukazovateľ na buffer, do ktorého sa uloží meno aktuálneho adresára. Buffer by mal byť dostatočne dlhý na uloženie mena adresára (najviac však MAX_PATH). Tento reťazec zakončený nulou špecifikuje absolútnu cestu k aktuálnemu adresáru.

Výsledok funkcie: DWORD: Pri úspešnom ukončení funkcie je vrátený počet znakov zapísaných do buffera (tento počet nezahŕňa zakončovaciu nulu), v opačnom prípade sa vráti hodnota nula. Ak sa funkcia skončila chybou, pretože buffer nebol dostatočne veľký, indikuje návratová hodnota, koľko bajtov je potrebných na uloženie aktuálneho mena adresára. Táto hodnota zahrnuje jeden bajt pre znak nula, ktorý ukončuje reťazec. Na bližšie určenie chyby použite funkciu GetLastError.

 

GetDiskFreeSpace

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetDiskFreeSpace vráti informácie o špecifikovanom disku vrátane informácie o voľnom mieste na danom disku.

Syntax: BOOL GetDiskFreeSpace, LPCTSTR lpRootPathName, LPDWORD lpSectorsPerCluster,    LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters

LPCTSTR lpRootPathName: Ukazovateľ na reťazec zakončený nulou, ktorý obsahuje cestu koreňového adresára pre jednotku, na ktorú sa pýtame. Ak lpRootPathName je NULL, funkcia použije ako root aktuálny adresár.

LPDWORD lpSectorsPerCluster: Ukazovateľ na DWORD, do ktorého sa uloží počet sektorov na cluster (blok). Sektor je skupina bajtov uložených na disku. Cluster je blok sektorov.

LPDWORD lpBytesPerSector: Ukazovateľ na DWORD, do ktorého sa uloží počet bajtov na sektor. Ak chceme zistiť počet bajtov na cluster, jednoducho vynásobíme hodnoty vrátené v lpSectorsPerCluster lpBytesPerSector.

LPDWORD lpNumberOfFreeClusters: Ukazovateľ na DWORD, do ktorého sa uloží počet voľných clusterov. Vynásobte tejto údaj krát počet sektorov na cluster a počet bajtov na sektor, aby ste zistili zostávajúci voľný priestor na disku. Kompresia dát tieto hodnoty výrazne skreslí. 

LPDWORD lpTotalNumberOfClusters: Ukazovateľ na DWORD, do ktorého sa uloží celkový počet clusterov na jednotke, resp disku.

Výsledok funkcie: DWORD: Pri úspešnom ukončení funkcie sa vráti hodnota TRUE, inak sa vráti hodnota FALSE. V prípade chyby môžete použiť na jej bližšie určenie funkciu GetLastError.

 

GetDriveType

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetDriveType určuje, či dané diskové zariadenie je removable (výmenné), fixed (pevné), CD-ROM, RAM disk alebo network drive.

Syntax: UINT GetDriveType, LPCTSTR lpRootPathName

LPCTSTR lpRootPathName: Ukazovateľ na reťazec zakončený nulou, špecifikujúci koreňový adresár disku. Ak lpRootPathName je NULL, funkcia použije ako root (koreň) aktuálny adresár.

Výsledok funkcie: UINT: Pri úspešnom ukončení funkcie sa vráti typ zariadenia (pozri tabuľku 1).

Hodnota

Význam

Tab. 1

0

Typ zariadenia nie je možné určiť

1

Daný koreňový adresár neexistuje

DRIVE_REMOVABLE

Disk sa môže vytiahnuť zo zariadenia, napr. floppy disk

DRIVE_FIXED

Disk sa nemôže vytiahnuť zo zariadenia, napr. pevný disk

DRIVE_REMOTE

Disk je vzdialené zariadenie, napr. sieťové zariadenie

DRIVE_CDROM

Zariadenie je CD-ROM, napr. kompaktný disk

DRIVE_RAMDISK

Zariadenie je RAM disk, napr. pamäť

 

GetEnvironmentString

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetEnvironmentString vráti ukazovateľ na blok premenných prostredia procesu.

Syntax: LPVOID GetEnvironmentStrings

Táto funkcia nemá žiadne parametre.

Výsledok funkcie: LPVOID: Návratovou hodnotou tejto funkcie je ukazovateľ na zoznam premenných prostredia. Je to zoznam reťazcov zakončených nulou v tvare: premenná_prostredia=hodnota. Za posledným reťazcom zakončeným nulou nasleduje ešte jeden nulový znak. S týmito dátami by sa malo zaobchádzať ako s dátami určenými len na čítanie. Na zmenu premennej prostredia použite funkciu SetEnvironmentVariable.

 

GetEnvironmentVariable

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetEnvironmentVariable vráti hodnotu premennej prostredia procesu.

Syntax: DWORD GetEnvironmentVariable, LPCTSTR lpName,  LPTSTR lpBuffer, DWORD nSize

LPCTSTR lpName: Ukazovateľ na reťazec zakončený nulou, špecifikujúci meno premennej prostredia.

LPTSTR lpBuffer: Ukazovateľ na buffer, do ktorého sa uloží meno premennej prostredia.

DWORD nSize: Určuje počet znakov v lpBuffer.

Výsledok funkcie: DWORD: Návratovou hodnotou je nula, ak sa premenná prostredia nenašla.  Pri úspešnom ukončení funkcie je vrátený počet znakov uložených v lpBuffer (tento parameter nezahrnuje zakončovaciu nulu). Ak sa funkcia skončila chybou, pretože buffer je primalý, je návratovou hodnotou počet znakov aktuálne potrebných na uloženie hodnoty premennej. Na bližšie určenie chyby použite funkciu GetLastError.

 

GetLocalTime

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Nie

kernel32.lib

kernel32.inc

Funkcia GetLocalTime vráti aktuálny lokálny dátum a čas v štruktúre SYSTEMTIME.

Syntax: VOID GetLocalTime, LPSYSTEMTIME lpSystemTime

LPSYSTEMTIME lpSystemTime: Ukazovateľ na štruktúru SYSTEMTIME, ktorá sa vyplní lokálnym dátum a časom. Štruktúra SYSTEMTIME má tvar:

SYSTEMTIME STRUCT

  wYear         WORD ?

  wMonth        WORD ?

  wDayOfWeek    WORD ?

  wDay          WORD ?

  wHour         WORD ?

  wMinute       WORD ?

  wSecond       WORD ?

  wMilliseconds WORD ?

SYSTEMTIME ENDS

 

wYear – rok, napríklad: 2002,

wMonth – mesiac, napríklad: január=1, február=2, marec=3, ...

wDayOfWeek – deň v týždni, napríklad: nedeľa=0, pondelok=1, utorok=2...

wDay – deň v mesiaci, napríklad: prvý deň=1, druhý deň=2, ...

wHour – hodina 1-12 alebo 0-23 v závislosti od lokálneho nastavenia,

wMinute – minúta 0-59,

wSecond – sekunda 0-59,

wMilliseconds – milisekunda 0-999.

Windows udržuje systémový čas ako hodnotu svetového času – UTC (Universal Time Coordination). Svetový čas je odvodený od greenwichského času.

Výsledok funkcie: Táto funkcia nemá žiadnu návratovú hodnotu.

 

GetLogicalDrives

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetLogicalDrives vráti bitovú masku logických jednotiek, ktoré sú aktuálne prístupné.

Syntax: DWORD GetLogicalDrives

Táto funkcia nemá žiadne parametre.

Výsledok funkcie: DWORD: Bitová maska logických jednotiek. Bity sú nastavené, pokiaľ sú dané jednotky prístupné. Bit 0 zodpovedá jednotke A, bit 1 zodpovedá jednotke B, bit 2 jednotke C atď. Ak sa funkcia skončí chybou, vráti sa hodnota nula.

 

GetStartupInfo

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetStartupInfo vráti informáciu o tom, ako bol proces nastavený rodičovským procesom pri spustení.

Syntax: VOID GetStartupInfo, LPSTARTUPINFO lpStartupInfo

LPSTARTUPINFO lpStartupInfo: Ukazovateľ na štruktúru STARTUPINFO, ktorú použil rodičovský proces pri vytvorení volajúceho procesu. Štruktúra STARTUPINFO má tvar:

STARTUPINFO STRUCT

  cb              DWORD ?

  lpReserved      DWORD ?

  lpDesktop       DWORD ?

  lpTitle         DWORD ?

  dwX             DWORD ?

  dwY             DWORD ?

  dwXSize         DWORD ?

  dwYSize         DWORD ?

  dwXCountChars   DWORD ?

  dwYCountChars   DWORD ?

  dwFillAttribute DWORD ?

  dwFlags         DWORD ?

  wShowWindow     WORD  ?

  cbReserved2     WORD  ?

  lpReserved2     DWORD ?

  hStdInput       DWORD ?

  hStdOutput      DWORD ?

  hStdError       DWORD ?

STARTUPINFO ENDS

 

cb – určuje veľkosť štruktúry v bajtoch.

lpReserved – rezervované. Nastavte tento člen štruktúry na NULL.

lpDesktop - ukazovateľ na reťazec zakončený nulou, obsahujúci meno desktopu.

lpTitle – názov konzoly pre aplikácie s novou konzolou.

dwX – hodnota CW_USEDEFAULT pre x-ový stĺpec.

dwY – hodnota CW_USEDEFAULT pre y-ový riadok.

dwXSize – hodnota CW_USEDEFAULT pre x-ovú dĺžku.

dwYSize – hodnota CW_USEDEFAULT pre y-ovú výšku.

dwXCountChars – šírka obrazového buffera (konzola).

dwYCountChars – výška obrazového buffera (konzola).

dwFillAttribute – farby pozadia a popredia (konzola).

dwFlags – príznaky určujúce dôležité polia v štruktúre STARTUPINFO.

wShowWindow – parametre implicitného zobrazovacieho okna.

cbReserved2 – rezervované, musí byť nastavené na nulu.

lpReserved2 – rezervované, musí byť nastavené na NULL.

hStdInput – štandardný handle pre vstup.

hStdOutput – štandardný handle pre výstup.

hStdError – štandardný handle pre výstup chyby.

Výsledok funkcie: Táto funkcia nemá žiadnu návratovú hodnotu.

 

GetSysColor

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia GetSysColor vráti aktuálnu farbu špecifikovaného obrazového elementu. Farby systému sú nastavené pre rôzne zobrazované prvky systému. Tieto zobrazované prvky spoločne opisujú vzhľad všetkých okien v prostredí.

Syntax: DWORD GetSysColor, int nIndex

int nIndex: Určuje zobrazovaný element, ktorého farbu chceme získať. Tento parameter môže byť jedna z nasledujúcich hodnôt:

COLOR_3DDKSHADOW – tmavá tieňová farba pre trojrozmerné obrazové elementy.

COLOR_3DFACE, COLOR_BTNFACE – tvárová farba pre trojrozmerné obrazové elementy.

COLOR_3DHILIGHT, COLOR_3DHIGHLIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT

veľmi svetlá farba pre trojrozmerné obrazové elementy (pre hrany smerom k zdroju svetla).

COLOR_3DLIGHT – svetlá farba pre trojrozmerné obrazové elementy (pre hrany smerom k zdroju svetla).

COLOR_3DSHADOW, COLOR_BTNSHADOW – tieňová farba pre trojrozmerné obrazové elementy (pre hrany smerom k zdroju svetla).

COLOR_ACTIVEBORDER – farba okraju práve aktívneho okna.

COLOR_ACTIVECAPTION – farba titulkového pruhu práve aktívneho okna.

COLOR_APPWORKSPACE – farba pozadia MDI (Multiple Document Interface) aplikácií.

COLOR_BACKGROUND, COLOR_DESKTOP – farba Desktopu Windows.

COLOR_BTNTEXT – farba textu na tlačidlách.

COLOR_CAPTIONTEXT – farba textu titulkového pruhu, tlačidiel na zmenu veľkosti okna a šípok  scroll baru.

COLOR_GRAYTEXT – farba sivého textu. Táto farba sa používa na znázornenie zakázaných volieb. Pokiaľ aktuálny ovládač zariadenia nepodporuje úplne sivdú farbu, je táto hodnota nastavená na nulu.

COLOR_HIGHLIGHT – farba pozadia označených položiek (napríklad v zozname).

COLOR_HIGHLIGHTTEXT – farba textu označených položiek (napríklad v zozname).

COLOR_INACTIVEBORDER – farba okraja neaktívneho okna.

COLOR_INACTIVECAPTION – farba titulkového pruhu práve neaktívneho okna.

COLOR_INACTIVECAPTIONTEXT – farba textu titulkového pruhu neaktívneho okna.

COLOR_INFOBK – farba pozadia pre tooltip (krátky text opisujúci daný ovládací prvok).

COLOR_INFOTEXT – farba textu pre tooltip.

COLOR_MENU  – farba pozadia menu.

COLOR_MENUTEXT – farba textu v menu.

COLOR_SCROLLBAR – farba scroll baru.

COLOR_WINDOW – farba pozadia okna.

COLOR_WINDOWFRAME – farba rámu okna Window frame.

COLOR_WINDOWTEXT – farba textu v okne.

Výsledok funkcie: DWORD: V prípade úspechu funkcia vráti RGB hodnotu, ktorá určuje farbu pre daný element.

 

GetSystemDefaultLangID

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetSystemDefaultLangID vráti systémový implicitný identifikátor jazyka.

Syntax: LANGID GetSystemDefaultLangID

Táto funkcia nemá žiadne parametre.

Výsledok funkcie: LANGID: Ak sa funkcia skončila úspešne, vráti systémový implicitný identifikátor jazyka. Na získanie mena jazyka z LANGID použite funkciu VerLanguageName.

 

GetSystemDefaultLCID

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetSystemDefaultLCID vráti systémový implicitný identifikátor lokalizácie. Aktuálna lokalizácia patrí prebiehajúcemu threadu. Je nastavená na implicitnú lokalizáciu systému okrem prípadov, keď má používateľ inú implicitnú lokalizáciu. V tomto prípade má lokalizácia používateľa prednosť. Lokalizáciu môžete zmeniť volaním funkcie SetThreadLocale.

Syntax: LCID GetSystemDefaultLCID

Táto funkcia nemá žiadne parametre.

Výsledok funkcie: LCID: Ak sa funkcia skončila úspešne, vráti systémový implicitný identifikátor lokalizácie. LCID je 32-bitová hodnota, ktorej bity majú nasledujúci význam: bity 0-9 sa používajú na označenie primárneho jazyka, bity 10-15 sa používajú na odlíšenie podjazykov (napríklad americká angličtina – austrálska angličtina), bity 16-19 sa používajú na opis triedenia identifikátora (používa sa na odlíšenie špeciálnych japonských, čínskych a kórejských množín znakov od Unicode), bity 20-32 sú rezervované.

 

GetSystemDirectory

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetSystemDirectory vráti meno systémového adresára Windows. Je to systémový adresár, ktorý obsahuje také súbory ako knižnice (libraries), ovládače (drivers) a fonty (font files).

Syntax: UINT GetSystemDirectory, LPTSTR lpBuffer, UINT uSize

LPTSTR lpBuffer: Ukazovateľ na buffer, do ktorého sa uloží meno systémového adresára Windows. Napríklad ak systémový adresár je pomenovaný WINDOWS\SYSTEM a nachádza sa na disku C, potom funkcia vráti C:\WINDOWS\SYSTEM (reťazec zakončený nulou).

UINT uSize: Veľkosť buffera, do ktorého sa uloží meno systémového adresára Windows. Meno adresára môže byť dlhé maximálne MAX_PATH znakov.

Výsledok funkcie: UINT: Pri úspešnom ukončení funkcie sa vráti počet znakov zapísaných do buffera. Tento počet nezahrnuje zakončovaciu nulu. V prípade chyby je vrátená hodnota nula. Na bližšie určenie chyby použite funkciu GetLastError.

 

GetSystemInfo

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Nie

kernel32.lib

kernel32.inc

Funkcia GetSystemInfo vráti informácie o type hardvéru, ktorý systém používa.

Syntax: VOID GetSystemInfo, LPSYSTEM_INFO lpSystemInfo

LPSYSTEM_INFO lpSystemInfo: Ukazovateľ na buffer, do ktorého sa uložia dáta o hardvéri, na ktorom aktuálne systém beží. V multiprocesorových prostrediach, ako je Windows 2000, sa môžu hodnoty meniť v závislosti od procesora, ktorý obsluhuje aplikáciu v čase volania. Štruktúra SYSTEM_INFO má tvar:

 

SYSTEM_INFO STRUCT

  wProcessorArchitecture       WORD  ?

  wReserved                    WORD  ?

  dwPageSize                   DWORD ?

  lpMinimumApplicationAddress  DWORD ?

  lpMaximumApplicationAddress  DWORD ?

  dwActiveProcessorMask        DWORD ?

  dwNumberOfProcessors         DWORD ?

  dwProcessorType              DWORD ?

  dwAllocationGranularity      DWORD ?

  wProcessorLevel              WORD  ?

  wProcessorRevision           WORD  ?

SYSTEM_INFO ENDS

 

wProcessorArchitecture – určuje architektúru procesora. Môže to byť jedna z nasledujúcich  hodnôt: PROCESSOR_ARCHITECTURE_INTEL, PROCESSOR_ARCHITECTURE_MIPS, PROCESSOR_ARCHITECTURE_ALPHA, PROCESSOR_ARCHITECTURE_PPC, PROCESSOR_ARCHITECTURE_UNKNOWN. Posledné štyri menované sú použiteľné iba pre Windows NT.

wReserved – rezervované na neskoršie použitie.

dwPageSize – určuje veľkosť každej stránky pamäte.

lpMinimumApplicationAddress – ukazovateľ na najnižšiu možnú adresu prístupnú pre aplikácie a knižnice DLL.

lpMaximumApplicationAddress – ukazovateľ na najvyššiu možnú adresu prístupnú pre aplikácie a knižnice DLL.

dwActiveProcessorMask – maska reprezentuje skupinu procesorov konfigurovaných v systéme. Bit 0 je procesor 0, bit 31 je procesor 31.

dwNumberOfProcessors – určuje počet procesorov v systéme.

dwProcessorType – určuje typ procesora v systéme. Tento parameter môže byť jedna z nasledujúcich hodnôt:  PROCESSOR_INTEL_386, PROCESSOR_INTEL_486, PROCESSOR_INTEL_PENTIUM, PROCESSOR_MIPS_R4000, PROCESSOR_ALPHA_21064. Posledné dve menované sú použiteľné iba pre Windows NT.

dwAllocationGranularity – určuje nespojitosť, s ktorou je virtuálna pamäť alokovaná.

wProcessorLevel – špecifikuje systémový, od architektúry závislý level procesora.

Ak wProcessorArchitecture je PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel môže byť jedna z nasledujúcich hodnôt (hodnota – význam): 3 – Intel 80386, 4 – Intel 80486, 5 – Pentium.

Ak wProcessorArchitecture je PROCESSOR_ARCHITECTURE_MIPS, wProcessorLevel má tvar 00xx, kde xx je 8-bit číslo. Tento člen môže obsahovať nasledujúcu hodnotu (hodnota - význam): 0004 - MIPS R4000.

Ak wProcessorArchitecture je PROCESSOR_ARCHITECTURE_ALPHA, wProcessorLevel má tvar xxxx, kde xxxx je 16-bitové číslo verzie procesora (spodných 16 bitov predstavuje číslo verzie firmware). Tento člen môže obsahovať jednu z nasledujúcich hodnôt (hodnota – význam): 21064 – Alpha 21064, 21066 – Alpha 21066, 21164 – Alpha 21164.

Ak wProcessorArchitecture je PROCESSOR_ARCHITECTURE_PPC, wProcessorLevel má tvar xxxx, kde xxxx je 16-bitové číslo verzie procesora (horných 16 bitov je Processor Version Register). Tento člen môže byť jedna z nasledujúcich hodnôt (hodnota – význam): 1 – PPC 601, 3 – PPC 603, 4 – PPC 604, 6 – PPC 603+, 9 – PPC 604+, 20 – PPC 620.

wProcessorRevision - špecifikuje od architektúry závislú revision (revíziu) procesora          

Výsledok funkcie: Táto funkcia nemá žiadnu návratovú hodnotu.

 

GetSystemPowerStatus

Windows NT

Win 95

Win32s

Lib

Include

Nie

Áno

Nie

kernel32.lib

kernel32.inc

Funkcia GetSystemPowerStatus vráti stav batérií. Táto funkcia sa používa na zistenie stavu batérie, ak je počítač napojený na záložný zdroj energie (batériu).

Syntax: BOOL GetSystemPowerStatus, LPSYSTEM_POWER_STATUS lpSystemPowerStatus

LPSYSTEM_POWER_STATUS lpSystemPowerStatus: Ukazovateľ na štruktúru SYSTEM_POWER_STATUS, do ktorej sa uložia získané informácie. Štruktúra má tvar:

 

SYSTEM_POWER_STATUS STRUCT

  ACLineStatus          BYTE  ?

  BatteryFlag           BYTE  ?

  BatteryLifePercent    BYTE  ?

  Reserved1             BYTE  ?

  BatteryLifeTime       DWORD ?

  BatteryFullLifeTime   DWORD ?

SYSTEM_POWER_STATUS ENDS

 

ACLineStatus - AC power status. Tento parameter môže byť jedna z nasledujúcich hodnôt: 0  - Offline (vypnutý), 1 – Online (zapnutý), 255 – Unknown status (neznámy stav).

BatteryFlag – stav nabíjania batérie. Tento parameter môže byť jedna z nasledujúcich hodnôt:  1 – High (dostatok energie), 2 – Low (nedostatok energie), 4 – Critical (kritický stav), 8 – Charging (nabíjanie), 128 – No system battery (systém nemá záložný zdroj energie), 255 – Unknown status (neznámy stav).

BatteryLifePercent – zostávajúca životnosť batérie v percentách (0-100) alebo 255 (neznámy stav). Všetky ďalšie hodnoty sú rezervované.

Reserved1 – rezervované, musí byť nula.

BatteryLifeTime – počet sekúnd udávajúcich životnosť batérie alebo 0xFFFFFFFF, ak počet sekúnd nie je známy.

BatteryFullLifeTime – počet sekúnd, ak je batéria úplne nabitá, alebo 0xFFFFFFFF, ak počet sekúnd  nie je známy.

Správa: WM_POWERBROADCAST

Výsledok funkcie: BOOL: Ak sa funkcia skončila úspešne, vráti TRUE, inak vráti FALSE.

 

GetSystemTime

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

kernel32.lib

kernel32.inc

Funkcia GetSystemlTime vráti aktuálny systémový dátum a čas v štruktúre SYSTEMTIME. Systémový  čas je vyjadrený v UTC (Universal Time Coordinated).

Syntax: VOID GetSystemTime, LPSYSTEMTIME lpSystemTime

LPSYSTEMTIME lpSystemTime: Ukazovateľ na štruktúru SYSTEMTIME, do ktorej sa uloží aktuálny systémový čas a dátum. Štruktúra SYSTEMTIME je opísaná pri funkcii GetLocalTime.

Výsledok funkcie: Táto funkcia nemá žiadnu návratovú hodnotu.

Literatúra

  1. Simon, R. J. – Gouker, M. – Barnes, B. C.: Win32 API. Zväzok 1, 2, 3. UNIS publishing, Brno 1997.
  2. Richter, J.: Windows pro pokročilé a experty. Computer Press, Praha 1997.
  3. Petzold, Ch.: Programování ve Windows – Win32 API. Computer Press, Praha 1999.

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 2

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá