Delphi programozási blog, változtassa meg az ablakok mennyiségét a pda használatával
A távirányítóval való munkavégzés
Az első probléma megoldásához van egy TV-tuner Van TV H6 távirányító, mint a hardver. A konzolhoz való munkához a BeholdRC.dll könyvtárat kell létrehozni, az exportált függvények leírása, valamint a Delphi munkájának példája megtalálható a fejlesztő webhelyén. Azonban csak néhány funkció van. Kétféleképpen kaphat információkat a billentyűleütésekről: ellenőrizze az állapotot időzítéssel, vagy használjon külön szálat. A második lehetőség hatékonyabbnak és érdekesebbnek tűnik. Tehát a végrehajtott osztály neve TRemoteVolumeControl lesz, és a TThread örököse lesz. A fejlesztés ezen szakaszában a fő forma kódja 3 dologért felel:- TRemoteVolumeControl objektum létrehozása az alkalmazás indításakor
- Üzenetek fogadása a hangerő-váltó gombok megnyomásával (lehetőség van frissíteni a program interfészt)
- Túlcsordulás, ha a program bezáródik
Hangkezelés
Általában soha nem gondoltam, hogy hogyan változtathatom meg a hang hangerejét a rendszerben. Így tanulmányoztam a dokumentációt. Azonban nem mentem bele részletesen. Amint ezt megértem, a Windows Vista óta a hangkezelési módszerek drámaian megváltoztak. Ezt az MSDN Core Audio API mondja el nekünk. A hangot globális szinten tudjuk szabályozni, vagy csak a hangfolyamot változtatjuk meg. Az első lehetőség iránt érdeklődünk. A munkához több interfész szükséges: az IMMDeviceEnumerator multimédiás eszközök gyűjteménye; Az IMMDevice egy eszközt és az IAudioEndpointVolume felületet jelent a hangerőszabályozáshoz. Sajnos a Delphi nem tartalmaz interfészeket, így a header fájlok újrarendelésére volt szükség mmDeviceApi.h EndpointVolume.h (az eredmény a cikk végén található). A Google-ban az mmDevApi.pas nevű fájl megtalálható a Delphi interfészek leírásával, de csak azok a csatolók vannak leírva, amelyek szükségesek a kötet megváltoztatásához, és nem teljesen a megfelelő fejlécfájlok. Érdemes megjegyezni, hogy ezen interfészek használatával nemcsak a kötetet tudjuk vezérelni, hanem a hangerő megváltoztatásával kapcsolatos értesítéseket is kaphatunk (IAudioEndpointVolumeCallback). Most, hogy rövid, a funkció InitVolumeControl kell egy hivatkozást IAudioEndpointVolume felületet fogunk tenni: Most már leírni a funkció RCKeyPress. Először is értesítjük az űrlapot a megnyomott kulcsról, elküldjük a kódot. Továbbá, a megnyomott gombtól függően növeljük vagy csökkentjük a hangerőt (VolumeStepUp / VolumeStepDown). A némítás gomb megnyomásakor meg kell határoznunk az aktuális állapotot és meg kell fordítanunk. A kikapcsoló gomb megnyomásával WM_CLOSE üzenetet küldhetünk az űrlapnak, de a kódot elküldtük. Most az alkalmazásunk megváltoztathatja a teljes hangerőt az ablakban 7. Szeretnék néhány szép felületet megvalósítani, átlátható formában és a hangszóró képével, de tudom, hogyan kell ezt csinálni a Direct2D-ben. mert utoljára bajba kerültem. A leírt osztály forráskódja, valamint az MMDeviceAPI és az EndpointVolume interfészleíró fájlok itt tölthetők le.