Zdrojové kódy

Informace o prvcích aplikaceProgram
Text více barvamiProgram
Více monitorůProgram
Přesun položek ListBoxuProgram
MD5Program
3D objektyProgram
Ikona v system tray oblastiProgram
Ini souboryTřída
Rozšíření ListBoxu a ComboBoxuTřída
Připojení síťového diskuTřída
Výpis zpráv souboru DLLKód
Vysypání košeKód
Změna souboru win.iniKód
Výmaz složkyKód
Zaslání dat databáze Accessu poštouVBA
Připojení tabulky do databáze AccessuVBA

Informace o prvcích aplikace

Program zobrazí handle, třídu a text všech prvků aplikace, kterou zadáváte jejím textem v titulkovém pruhu (po jednoduché úpravě můžete zadávat i jinak).
11631 bytůKopírovat

Zpět na obsah


Text více barvami

Zobrazuje text v PictureBoxu, vykreslený přechodem z jedné barvy do druhé. Po malé úpravě můžete funkci v modulu projektu jednoduše použít i ve svých programech.
4509 bytůKopírovat

Zpět na obsah


Více monitorů

Příklad ukazuje, jak zjistit počet a typ monitorů počítače a vypisovat text na kterémkoliv z nich.
7374 bytůKopírovat

Zpět na obsah


Přesun položek ListBoxu

Ukazuje, jak přesouvat položky z jednoho ListBoxu do druhého pomocí myši (Drag and Drop).
6599 bytůKopírovat

Zpět na obsah


MD5

Příklad ukazuje práci a algoritmem MD5 (Message Digest 5), který se používá pro kódování v protokolu SNMP.
77315 bytůKopírovat

Zpět na obsah


3D objekty

Program, který umožňuje vytvářet zadáváním souřadnic trojrozměrné objekty. Po spuštění vidíte čtyři čtverce. Jeden je nárys objektu, druhý bokorys, třetí půdorys a čtvrý zobrazuje pohled na objekt, se kterým je možno jakkoliv otáčet pomocí myši. Pro demonstraci jsou vytvořeny tři objekty, které si můžete nahrát tlačítkem Load Object. Více informací najdete v textovém souboru přiloženém k projektu.
19482 bytůKopírovat

Zpět na obsah


Ikona v system tray oblasti

Příklad ukazuje vytvoření UserControlu, tedy prvku, který usnadňuje přidávání ikony do oblasti system tray, tedy tam, kde jsou hodiny, stav klávesnice apod.
17720 bytůKopírovat

Zpět na obsah


Ini soubory

I když se dnes používá spíše registr, INI soubory se mohou hodit. Tato třída s nimi velice usnadňuje práci.
7186 bytůKopírovat

Zpět na obsah


Rozšíření ListBoxu a ComboBoxu

Třída, obsahující několik metod usnadňujících práci s ListBoxem a ComboBoxem, např. nastavení výšky rozbalovacího seznamu ComboBoxu,, kopírování obsahu jednoho prvku do druhého apod.
3219 bytůKopírovat

Zpět na obsah


Připojení síťového disku

Třída, která má dvě metody. Jednu pro připojení síťového disku, druhou pro jeho odpojení.
2143 bytůKopírovat

Zpět na obsah


Výpis zpráv souboru DLL

API funkce FormatMessage umí formátovat různé zprávy, její popis by vydal na samostatný článek. Umí však také formátovat zprávy z jakékoliv knihovny, která má tabulku zpráv. Většinou jde o texty chyb. Tak můžete např. jednoduše zobrazit chybové zprávy knihovny wininet.dll (knihovnu je potřeba nejdříve nahrát do paměti).

Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" _
  (ByVal lpLibFileName As String) As Long
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" _
  (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, _
   ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, _
   Arguments As Long) As Long

Const FORMAT_MESSAGE_FROM_HMODULE = &H800


Private Sub Form_Load()
  Dim hMod As Long, msg As String, ret As Long, i As Long
  
  hMod = LoadLibrary("wininet.dll")
  For i = 12000 To 12200
    msg = Space(1024)
    ret = FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, ByVal hMod, i, 0&, msg, Len(msg), ByVal 0&)
    If ret <> 0 Then
      Debug.Print Left(msg, ret - 2)
    End If
  Next i
  FreeLibrary hMod
End Sub

Zpět na obsah


Vysypání koše

Vysypání koše je možné voláním API funkce SHEmptyRecycleBin. Můžete vysypat buď koš na jednom disku (zadáním jeho jména) nebo koš na všech discích (zadáním nulového řetězce). Pokud vše proběhne v pořádku, funkce vrací hodnotu 0.

Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" _
  (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long

'vysypání koše na disku C
SHEmptyRecycleBin Form1.hwnd, "C:\", 0

'vysypání koše na všech discích
SHEmptyRecycleBin Form1.hwnd, vbNullString, 0

Zpět na obsah


Změna souboru win.ini

Měníte-li nějaké údaje v souboru win.ini, můžete dát ostatním aplikacím vědět, že se něco změnilo a to pomocí funkce SendMessage a zprávy WM_WININICHANGE. Pokud používáte pro změnu API funkci SystemParametersInfo, zprávu zasílat nemusíte, stačí nastavit poslední parametr na hodnotu SPIF_SENDWININICHANGE.

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
  ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_WININICHANGE = &H1A


SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0

Zpět na obsah


Výmaz složky

Pro výmaz složky je ve Visual Basicu příkaz RmDir. Neumí však mazat složku, která má nějaký obsah, tzn. soubory nebo jiné složky. Proto je výhodnější použít metodu DeleteFolder objektu FileSystemObject.

Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

fso.DeleteFolder "C:\Temp", True 'nastavení True smaže i read-only složky

Zpět na obsah


Zaslání dat databáze Accessu poštou

Metoda SendObject objektu DoCmd umožňuje odeslat data z objektů databáze jako přílohu zprávy pomocí jakéhokoliv poštovního programu využivajícího rozhraní MAPI. Dokonce si můžete vybírat i z několika formátů přílohy (RTF, HTML apod.). Příklad pošle data z tabulky zamestnanci ve formatu RTF Pavlu Kocichovi. Poslední dva parametry metody jsou předmět a vlastní text zprávy.

Dim ac As New Access.Application

Set ac = New Access.Application
ac.OpenCurrentDatabase "data.mdb"

myAccess.DoCmd.SendObject acSendTable, "zamestnanci", acFormatRTF, _
                          "Pavel Kocich", , , "Subject", "Body"

Zpět na obsah


Připojení tabulky do databáze Accessu

Databáze v Accessu může obsahovat i tzv. propojené tabulky. Jde o tabulky, které jsou fyzicky v úplně jiné databázi, pouze je na ně vytvořeno propojení (něco jako zástupce ve Windows). Samotné připojení je možné z kódu vytvořit pomocí metody TransferDatabase objektu DoCmd (příklad vytvoří v databázi data.mdb tabulku linkJmena, ktera ukazuje na tabulku jmena z databáze data2.mdb).

Dim ac As New Access.Application

Set ac = New Access.Application
ac.OpenCurrentDatabase "data.mdb"

ac.DoCmd.TransferDatabase acLink, "Microsoft Access", "data2.mdb", acTable, "jmena", "linkJmena"

Zpět na obsah