haker.info | Etyczny hacking |

haker.info  — Etyczny hacking

 Odgrywanie melodii na głośniczku systemowym

25 grudnia 2018 godz. 18:12    Dawid Farbaniec    260 słów

1. 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
);

2. 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;
}

3. Posłuchaj melodii

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

Dawid Farbaniec


Tagi:  visual-cpp 

Komentarze czytających



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. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki.