Wyłączenie komputera, gdy zostanie uruchomiony dzwięk.

0

Witam
Chciałbym napisać program który:
-Gdy zostanie włączony dzwięk np. alarm, komputer wciągu 1 minuty sam się wyłączy. Przed wyłączeniem pojawi się komunikat typu "komputer zostanie wyłączony za x".
Znalazłem w internecie taki program(patrz "code"). Fajny byłby gdyby zamiast wciskania numeru (1,2), zareagowałby 1==Czy dzwiek został uruchomiony? Nie? Nic nie rob.
2==Czy dzwiek zostal uruchomiony? Tak? Wyłącz komputer za np. 1 minute
I czy w c++ jest w ogóle taka możliwość? Jeżeli nie, to jak to zrobić.
Pozdrawiam :)

 
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    int Licznik1;
    cout << "aby wylaczyc komputer wcisnij 1, aby zamknac program wcisnij 2.\nTwoj wybor: ";
    cin >> Licznik1;
    switch(Licznik1)
    {
                    case 1:
                         std::cout << "system zostanie zamkniety." << std::endl;
                         getch();
                         system("shutdown /s /t 0"); //wylaczenie komputera gdy wybrana opcja 1
                         break;
                    case 2:
                         std::cout << "anulowanie wylaczenia komputera";
                         getch();
                         }
}
1

przechwytywanie dzwieku nie jest takie trywialne.
z tego co widze nie potrafisz za dobrze programowac. Ale jezeli sie myle to musisz zrobic cos takiego
http://stackoverflow.com/questions/4578697/capturing-audio-out

i nie moze byc innego dzwieku w tle. Wtedy musisz porownac dzwiek nagrywany z tym co masz (co tez nie jest proste)
innego sposobu nie widze za bardzo jezeli chcesz cos robic gdy konkretny dzwiek zostanie zagrany (a nie otworzony)

0

Tak, dopiero zaczynam zabawe z c++.
W takim razie inaczej(właściwie taki był zamiar od początku, ale źle zapisałem pytanie). Program sprawdzi czy plik np. alarm.mp3, jest obecnie używany jeżeli:
1)Jeżeli nie jest używany == nic nie rób.
2) Jest używany == wyłącz komputer za 1 minute

0

nie da sie na dobra sprawe sprawdzic czy plik mp3 jest aktualnie uzywany

0

W takim razie, w momencie uruchomienia pliku np. alarm.mp3.
Ustawie aby pliki mp3 domyślnie były uruchamiane za pomocą programu np. Windows Media Player
W momencie uruchomienia pliku alarm.mp3 > zostanie uruchomiony WMP oraz proces o nazwie "wmplayer.exe"
I teraz, program sprawdzi czy dany proces jest aktualnie używany:
1)Jeżeli nie jest używany == nic nie rób.
2) Jest używany == wyłącz komputer za 1 minute

A jeżeli to też się nie uda, to jakiś inny pomysł ?

0
fasadin napisał(a):

nie da sie na dobra sprawe sprawdzic czy plik mp3 jest aktualnie uzywany
A stosując metody takie jak np. ten programik http://www.nirsoft.net/utils/opened_files_view.html nie dałoby się zobaczyć czy dany plik mp3 jest używany? U mnie pokazuje użyty przez Winampa plik, więc może iść tą drogą, jeśli już autorowi zależy na tak dziwnym rozwiązaniu.

0

Zależy mi na tym, aby działało. Każdy sposób, jeżeli zadziała to wchodzi w grę.

0

No to możesz zacząć czytać od tego http://forum.sysinternals.com/howto-enumerate-handles_topic18892_post100895.html Na podstawie uchwytów potem można by sprawdzić czy to plik oraz czy to jest nasz szukany plik.

0

Dzięki wielkie przyjacielu, każda wskazówka jest dla mnie na wagę złota. Przestudiuje dany artykuł. Wielkie dzięki :)

0

Nie ma za co :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1