2017-01-20 10 views
3

для некоторого фона вопроса Ищу сделать другую программу для моего личного рабочего стола окна, который проходит в фоне, что, когда определенный уровень звука обнаружен через гарнитуру он автоматически выведет пользователя из системы.Автоматически Выход из Windows, когда уровень шума достиг

Его Windows 10 ПК. У меня есть приличный опыт в простой C, но мне не хватает знаний для создания такой программы. Программа должна автоматически запускаться при входе в систему и выполнять в фоновом режиме, чтобы избежать обнаружения.

Я действительно в тупике, я оглянулся и спросил моих друзей Comp Sci, и они тоже не знали.

[Причина, по которой я пытаюсь сделать эту программу, у меня есть младший брат, который играет на моем компьютере со своими друзьями в Интернете (Skype, Discord, Hangouts и т. Д.), И он становится очень громким, часто кричит и кричать, и сильным смехом. Это стало большой проблемой в семье для моей семьи, поскольку его можно услышать с нескольких этажей и комнат, особенно ночью. Говорить ему тихо, и ограничение его привилегий больше не работает, так как он не считает, что он слишком громкий.]

+0

Написание этого в C будет больно. Выберите что-то более высокоуровневое с хорошей поддержкой Windows. –

+2

Найти «Clapper» - установить его на соответствующий уровень – KevinDTimm

+0

Это не должно быть C, я только что упомянул об этом, потому что это и Python - это только два языка программирования, которые я знаю. Меньше для Python. – Strivous

ответ

-2

Хотя это не срабатывает автоматически из-за уровней громкости, вы можете использовать другое устройство в своей сети для удаленного выключения компьютера, на котором он включен. Для Windows 10 этапы могут немного отличаться, но вы должны понять это. Обратите внимание, что если вы все еще хотите запустить его с помощью тома, это руководство по-прежнему будет полезно, так как оно показывает, как сделать часть завершения работы.

http://www.online-tech-tips.com/computer-tips/remote-shutdown-command/

Проще говоря, шаги следующим образом (прочитать руководство, так как это более конкретно, с картинками):

1. Включить удаленное выключение на целевом компьютере

  • Панель управления, центр сети и общего доступа, изменение настроек расширенного общего доступа «Частное» включение «Включить совместное использование файлов и принтеров» [more info]
  • Изменение реестра (сохраните резервную копию реестра первый) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  • добавить новый параметр DWORD LocalAccountTokenFilterPolicy со значением 1

2.Создайте пакетный файл, который будет выключения/перезагрузки компьютера

  • Это может быть на целевом компьютере, если вы собираетесь запустить его с помощью аудио, в противном случае используйте команду дистанционного выключения:
  • shutdown /m \\computername /r /f
    • /r - перезагрузить компьютер
    • /f - программы силы немедленно закрыть

Если вы попробуете эти шаги и все еще получить «доступ запрещен», вы можете попробовать this solution:

net use \\<computer> 
shutdown -r -m \\<computer name> 
1

Похоже FFmpeg volumedetect может сделать тяжелый подъем на самом деле обнаружения уровня звука. Например, пробуя на моем MBP (вы должны изменить устройство ввода для вашей машины Windows):

$>ffmpeg -hide_banner -f avfoundation -i "none:0" -af "volumedetect" -t 2 -f null /dev/null 

Input #0, avfoundation, from 'none:0': 
    Duration: N/A, start: 316943.850567, bitrate: 2822 kb/s 
    Stream #0:0: Audio: pcm_f32le, 44100 Hz, stereo, flt, 2822 kb/s 
Output #0, null, to '/dev/null': 
    Metadata: 
    encoder   : Lavf57.62.100 
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s 
    Metadata: 
     encoder   : Lavc57.75.100 pcm_s16le 
Stream mapping: 
    Stream #0:0 -> #0:0 (pcm_f32le (native) -> pcm_s16le (native)) 
Press [q] to stop, [?] for help 
size=N/A time=00:00:02.00 bitrate=N/A speed=0.996x 
video:0kB audio:345kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] n_samples: 178176 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] mean_volume: -60.3 dB 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] max_volume: -29.9 dB 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_29db: 4 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_30db: 0 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_31db: 6 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_32db: 10 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_33db: 18 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_34db: 10 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_35db: 12 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_36db: 36 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_37db: 42 
[Parsed_volumedetect_0 @ 0x7f8ba8726860] histogram_38db: 48 

Это запускает FFmpeg от источника входного сигнала микрофона в течение 2 секунд и создает гистограмму объемов аудио (децибел), а также средний и максимальный уровни громкости (именно этого вы и хотите).

Возможно, вы можете сделать эквивалент, используя ffmpeg в качестве библиотеки, и вставить его в свое приложение по своему выбору.