Ta witryna korzysta z plików cookies. Korzystając z witryny akceptujesz: polityka prywatności.   [×]
Online: 0x0A (10)
haker.iиfø — Etyczny hacking
Spreading knowledge like a virus. _

Odgrywanie melodii na głośniczku systemowym

🕰 ✒️ Dawid Farbaniec 📄 260 słów

0x01. Funkcja Beep z WinAPI

W interfejsie programowania aplikacji dla Windows® nazywanym w skrócie WinAPI można znaleźć funkcję Beep. Pozwala ona na odegranie dźwięku na głośniczku systemowym. Odgrywany dźwięk jest prosty (takie Beep :) ), ale można ustawić mu częstotliwość (pierwszy parametr) oraz czas trwania w milisekundach (drugi parametr). Prototyp funkcji prezentuje się następująco:

BOOL WINAPI Beep(
_In_ DWORD dwFreq,
_In_ DWORD dwDuration
);

0x02. Trochę kodu

Poniżej przedstawiono kod, który odgrywa pewną znaną pieśń. Jeśli ją rozpoznajesz napisz komentarz :)
Kod jest w Visual C++. Jeśli posiadasz środowisko programistyczne Visual Studio to bez problemu możesz go skompilować i uruchomić.

#include <iostream>
#include <Windows.h>
#include <vector>
 
class N
{
public:
    int frequency;
    int duration;
 
    N(int a, int b)
    {
       frequency = a;
       duration = b;
    }
};
 
int main(int argc,char* argv[])
{
    std::vector<N> melody(
    {
        N(1044, 237), N(1044, 475), N(1044, 237), N(1044, 475), N(833, 475), N(934, 475),
        N(934, 950), N(934, 475), N(934, 475), N(934, 237), N(1044, 475), N(1175, 237),
        N(1044, 950), N(1044, 237), N(1044, 475),N(1044, 237), N(1044, 475), N(833, 475),
        N(934, 475), N(934, 950), N(833, 475), N(833, 237), N(833, 237), N(783, 475),
        N(783, 475), N(698, 950), N(1044, 950),N(833, 475), N(934, 475), N(1044, 950),
        N(1175, 237), N(1044, 475), N(934, 950), N(934, 950), N(783, 475), N(833, 475),
        N(934, 950), N(1044, 475), N(833, 237), N(783, 475), N(698, 950)
    });
 
    setlocale(LC_ALL, "");
 
    for (auto const&x: melody)
    {
       std::cout << " Beep(" << x.frequency << "," << x.duration << ");" << std::endl;
       Beep(x.frequency, x.duration);
    }
 
    std::cout << " Dziękuję." << std::endl;
 
#if _DEBUG
    system("pause>nul");
#endif
 
    return EXIT_SUCCESS;
}

0x03. Posłuchaj melodii

Wideo jest dostępne poniżej (włącz dźwięk!):

Wykaz literatury (bibliografia)

[1] Microsoft Corporation, 2018 – https://docs.microsoft.com/en-us/windows/win32/api/utilapiset/nf-utilapiset-beep [dostęp: 25.12.2018 r.]


Komentarze czytelników

📖 Trzymaj e-booka! 👋🏻

\\ więcej książek i e-booków »

💬 Komentarze [0]

jas napisał komentarz do ↴
🔳 Dekodowanie kodu Aztec 2D z dowodu rejestracyjnego
[🕰 / 🌎 IP address logged ]
jas napisał komentarz do ↴
🔳 Mowa szesnastkowa (ang. hex speech)
[🕰 / 🌎 IP address logged ]
Iceman napisał komentarz do ↴
🔳 Mowa szesnastkowa (ang. hex speech)
[🕰 / 🌎 IP address logged ]

🎲 Losowe wpisy

Odgrywanie melodii na głośniczku systemowym (260 słów) Przeczytaj teraz »
Z pamiętnika autora — kwiecień 2012 r. (280 słów) Przeczytaj teraz »
Botnet — sieć komputerów zombie (1020 słów) Przeczytaj teraz »

Maskotka haker.info

Postać Mr. At nawiązuje do gier z gatunku roguelike/ASCII RPG w których do wyświetlania grafiki korzysta się ze znaków tekstowych. Znak @ (at) w grach roguelike przeważnie oznacza postać bohatera.

Kontakt

mgr inż. Dawid Farbaniec  //  haker.iиfø

E-mail:
office@haker.info

Odwiedź mnie również na:

 

Wyrazy uznania: 📜 Credits page

Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Autor tej witryny w czasie tworzenia treści nie działa w imieniu firm, których technologie czy produkty opisuje — chyba, że jest to jasno oznaczone. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.