Otázky a odpovědi
V této rubrice najdete odpovědi na své otázky, které
můžete zasílat na adresu vbtipy@seznam.cz.
Pokud nebudeme znát odpověď na nějakou otázku, objeví se v části Otázky
bez odpovědi a budete-li znát odpověď vy, můžete nám ji pomocí
výše uvedené adresy zaslat, rádi ji zveřejníme.
Otázky a odpovědi
Potřebuji ve Visual Basicu pípnout, tj. vydat zvuk o určité
frekvenci a délce. Myslel jsem na funkci API Beep , ta však
umožňuje pípnout pouze ve Windows NT, ve Windows 9x přehraje systémový
zvuk.
Odpovídá Jan Zajíc ml.
Pípnutí "speakera" je možné pomocí
knihovny port.dll (mohu zaslat, ale nevím, jak je to s autorskými
právy).
Pípnutí.
For i = 1 To 100
OUTPORT 97, (INPORT(97) Or 2)
For y = 1 To 10000 : Next y
OUTPORT 97, (INPORT(97) And 253)
For y = 1 to 10000 : Next y
Next i
Tyto příkazy způsobí vytvoření obdélníkového
průběhu napětí na výstupu speakeru. Tedy 100 se nahodí a shodí.
Aby byl na PC s procesorem 200MHz slyšet tón, musí se zavést
dostatečné čekací doby. Ty jsou tvořeny čítacímy smyčkami
do 100 000. Přesná výška je závislá na použitém PC. Ovšem sčítací
smyčky nejsou zrovna vhodné, následující příklad již vyrobí
lepší zvuk.
For i = 1 To 100
OUTPORT 97, (INPORT(97) Or 2)
DELAY 1
OUTPORT 97, (INPORT(97) And 253)
DELAY 1
Next i
Dále je důležité si deklarovat tyto funkce:
Declare Sub OUTPORT Lib "port.dll" (ByVal
Adr As Integer, ByVal Dat As Integer)
Declare Function INPORT Lib "port.dll" (ByVal Adr As
Integer) As Integer
Declare Sub DELAY Lib "port.dll" (ByVal Cas As Integer)
|
Jak se dá přepínat klávesnice? Např. z anglické do české a
nazpět.
Přikládáme příklad,
který nám zaslal jeden ze čtenářů. |
Je
ve VB možné aby se program spustil přes celou obrazovku, jako např. většina
her?
Pokud chcete zobrazit formulář přes celou
obrazovku, můžete buď použít rozhraní DirectX, nebo nastavte
formuláři vlastnost WindowState na Maximized (2) a BorderStyle
na None (0). V takovém případě bude formulář přes celou
obrazovku. Pokud vám vadí taskbar, který bude samozřejmě vidět,
můžete jej schovat pomocí funkce API SetWindowPos .
Dim hw As Long
hw = FindWindow("Shell_traywnd", "")
SetWindowPos hw, 0, 0, 0, 0, 0, SWP_HIDEWINDOW
|
Otázky bez
odpovědi
Potřeboval bych pomocí funkce API vyvolat dialog "Najít".
Slyšel jsem, že je to přesně funkce Findtext . Její
deklaraci jsem si našel v programu API Text Viewer včetně typu FINDREPLACE .
Neexistuje nějaký OCX, nebo DLL knihovna, která by umožňovala
odesílání krátkých textových zpráv rovnou z PC přes modem?
Našel jsem v API vieweru funkci SetWindowsHook , ale
jaksi ji neumím použít. Můžete mi prosím napsat jednoduchý návod s
příkladem?
Jak lze přijímat/posílat data na některý z portů ve Windows
2000?
Nevíte kde se dá sehnat (pokud existuje) prvek, který se chová
jako textové pole ve Wordu?
Používám VB6 a chtěl bych z mého programu otevřít soubor
PhotoPaintu. Kód vypadá následovně:
Dim xApp as PHOTOPAINT.CPntAutomate
xApp.FileOpen ("nazov suboru")
Bohužel to takto nefunguje. Co ještě musím zadat, aby
se soubor otevřel?
Jak zjistit, kolik bajtů bylo staženo přes Internet v předem dané
době? Jde mi o připojení přes lokální síť, ne přes modem.
Jak se dá ve Visual basicu ovládat USB port?
Ve Windows 98 jsem vytvořil program s ovládacím prvkem Timer.
Program fungoval bez problémů, ale když jsem jej spustil na Windows
2000, prvek časoval asi 5x rychleji. Nevíte so s tím?
Potřebuji ve svém programu použít průhledný textbox nebo
textbox, ve kterém by byl na pozadí mnou vybraný obrázek. Na Internetu
jsem našel tři různé návody, ale ani jeden neposkytuje takové funkce
jako původní textbox (ScrollBar, DataField atd.).
|