Dobrej pokec   Lišanská šlapka   MSDN   VB na Microsoft.cz   NCHAT Nový design
   Portál  O firmě  Profil  Reference  Produkty  Odkazy  Diskuse  Tisková verze 



  Novinky e-mailem
Pokud chcete být informováni o změnách ,přihlašte se k odběru novinek!
  
  
  Nejčtenější články
 Seznam všech českých hubů abecedně. (32160)
 Seznam hubů nad 100 uživatelů (20875)
 Konfigurovatelné rozbalovací menu (17499)
 Jak na makra (14371)
 Rozbalovací menu v JavaScriptu (2.) (12702)
  Nejstahovanější soubory
 Action Meter (1846)
 Slovní Fotbal (777)
 IE Boss Guard (484)
 zdroják slovní fotbal (383)
 Folder Watcher (370)
  Anketa

  Nabídka portálu

 Adobe Premiere
    Jak se dá udělat
 Alternativní prohlížeče
    FireFox
 ASP
    Tipy a triky
 Direct Connect
    Huby
    Scripty pro HUB
    Tipy a triky CZDC++
 Game Maker
    Tipy a triky
 Hry
    Akční
    Logické
 HTML
    Scripting (VBS,JS)
    Tipy a triky
 Internet
    Užitečné triky
 Microsoft Office
    Tipy, triky, návody
    Užitečná makra
    VBA Tipy a triky
 MS SQL Server
    Nastavení
    Seriály
    Tipy a triky
 Multimedia
    Návody
 Oracle
    PL/SQL
 PHP
    Jak na to
    Tipy a triky
 Užitečné odkazy
    Grafické programy
    Programátorské
 Visual Basic
    DirectX
    Formuláře
    Jak se dá udělat ...
    Užitečné funkce
    Win32Api
    Zdroje
 Visual Basic .NET
    Užitečné funkce
 Vtípky
    Vtipy a anekdnoty
 Vypalování
    DVD Shrink
    Tipy a triky
 Windows
    Jak se dá ...
    Tipy a triky pro XP
    Triky pro IE


Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.

 win32API - základy

Autor: Libor Blaheta
Zdroj: 
Vytvořeno: 1.3.2004
Publikováno: 6.4.2004
Čtenářů: 4816
Unikátních: 4511


Vysvětlení tajemného pojmu win32API pro neznalé.

win32API - základy

Pokud už programujete delší dobu, určitě nepíšete kód programu stylem od shora dolů, ale píšete si vlastní univerzální funkce a procedury, které si pak ve svých programech voláte. Operační systém Microsoft Windows nefunguje jinak - není to nic jiného než obrovský program (zdrojový kód má více jak 30 miliónů řádek). Vývojáři OS Windows naprogramovali také spousta užitečných funkcí a procedur, a protože jsou hodní :-), tak nám je dali k dispozici, k vlastnímu užití.

Tyto užitečné funkce jsou uložené v DLL knihovnách. Mezi nejznámější patří:

  • kernel32.dll - obsahuje funkce pro práci s procesy, vlákny, pamětí
  • user32.dll - obsahuje funkce pro práci s okny
  • gdi32.dll - obsahuje funkce pro práci s grafikou
a spousta dalších.

Takže zkratka win32API znamená:

  • win32
  • - Windows 32-bit
  • API
  • - Application Programmer Interface (aplikační rozhraní)
Je to vlastně soubor všech těch užitečných procedur a funkcí, které nám Windows dovolojí volat.
pozn. v textu dál budu používat pro zkrácení jen API místo win32API)

Možná se teď ptáte, proč vůbec volat/používat API ve svých programech.
Důvodů je hned několik. VB je programovací nástroj pro začátečníky a mnoho věcí v něm nejde bez znalosti API vůbec naprogramovat. Jednoduše řečeno VB nemá na spoustu věcí vlastní příkazy, a proto musíte šáhnout k API. Hned dám "praktický" příklad. Chcete třeba udělat program, který bude zobrazovat aktuální souřadnice kurzoru. Na to VB nemá žádnou funkci. Naštěstí existuje API, která vám souřadnice zjistí. Tato funkce se jmenuje GetCursorPos.
Před tím, než tuto funkci budeme moci zavolat, musíme ji deklarovat. VB totiž vůbec neví, co to GetCursorPos je, a proto mu musíme nějakým způsobem "říct", že GetCursorPos je API z té a té DLL a že má tyhle a tyhle parametry.

Deklarace GetCursorPos vypadá takto:
Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

Rozebereme si jednotlivé položky:

  • Private - privátní deklarace (má stejný význam jako u proměnných)
  • Declare - určuje deklaraci API
  • Function - je to funkce (u procedur se používá Sub)
  • GetCursorPos - název API
  • Lib "user32" - v jaké DLL knihovně se API nachází
  • Alias "GetCursorPos" - pokud je název API schodný s klíčovým slovem VB, musíme definovat její alias, aby nedošlo ke kolizi jmen
  • (...) - argumenty dané API
  • As Long - typ návratové hodnoty
pozn. deklarace API se nemusíte učit nazpaměť. Jednotlivé deklarace naleznete v souboru win32api.txt, který je v adresáři, kde máte nainstalovaný VB.

Už víme, jak daná API vypadá. Deklaraci API dáváme do deklarační sekce modulu (tedy tam, kde asi máte Option Explicit a deklarace proměnných). Teď už VB ví, že GetCursorPos je API a můžeme ji tedy zavolat. Pokud si důkladně prohlédnete argumenty GetCursorPos, tak vidíte, že přijíma strukturu POINTAPI.

Tato struktura vypadá takto:

Private Type POINTAPI
	x As Long
	y As Long
End Type
pozn. deklaraci této struktury také naleznete v souboru win32api.txt.

Není na ní nic zvláštního. Umístěte ji také do deklarační sekce modulu, kde máte deklarovanou API GetCursorPos. Teď už nám opravdu nic nestojí v cestě a můžeme API zavolat. Protože GetCursorPos přijíma strukturu, tak ji nejdříve deklarujeme, a pak API zavoláme.

Kód:
Dim tPos as POINTAPI
GetCursorPos tPos


Hotovo. VB zavolá GetCursorPos a ta nám uloží do struktury tPos x-ovou a y-ovou pozici kurzoru.

A to je vše. Není v tom žádná věda. Jenom využijete toho, co už udělal někdo jiný - win32API. Než se pustíte do zkoumání funkcí API, je dobré mít tyto programy a helpy:

mnoho informací také naleznete v knize 1001 tipů a triků pro Visual Basic.

Toť je vše. Vaše cesta za poznáváním win32Api teď začíná...

Libor
BlahetaL@atlas.cz




Příspěvky ke článku:



© Swit.cz, Marek Kočí 2003