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

Wyłączenie komputera, gdy zostanie uruchomiony dzwięk.
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
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 :)

Kopiuj
 
#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();
                         }
}
fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
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)

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
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

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

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

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
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ł ?

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
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.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
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.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

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

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
0

Nie ma za co :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.