PC speaker on x64
От: Feonyf  
Дата: 23.02.10 08:57
Оценка:
Как заставить пищать PC speaker на Win7 x64 ?

С "ужасом" обнаружил что skype не пищит спикером на данной ОС.

Цель простая:
чтобы компьютер пищал при входящем звонке, вне зависимости от настроек уровня громкости.

Beep function
Windows Vista x64 and Windows XP 64-Bit Edition: This function is not supported.

http://msdn.microsoft.com/en-us/library/ms679277%28VS.85%29.aspx
Моя строка построения буста:
.\bjam link=static threading=multi runtime-link=static -j %NUMBER_OF_PROCESSORS% --with-filesystem --with-thread --with-date_time address-model=64
Re: PC speaker on x64
От: basasget  
Дата: 25.02.10 10:55
Оценка:
in VS08
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool Beep(int dwFreq, int dwDuration);

Beep(1000, 500);
// при включенном звуке на ноуте win7home
Re: PC speaker on x64
От: gear nuke  
Дата: 25.02.10 12:08
Оценка:
Здравствуйте, Feonyf, Вы писали:

F>http://msdn.microsoft.com/en-us/library/ms679277%28VS.85%29.aspx


Там имеется ввиду, что нельзя остановить сервис beep

To silence the tone, use the following commands:

...

Windows Vista x64 and Windows XP 64-Bit Edition: This function is not supported.

People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: PC speaker on x64
От: ononim  
Дата: 25.02.10 12:12
Оценка:
GN> Windows Vista x64 and Windows XP 64-Bit Edition: This function is not supported.
GN>[/q]
Вот блин сволочи. То есть придется опять по старинке отключать проводок спикера, если вдруг перееду дома на х64.
Как много веселых ребят, и все делают велосипед...
Re[3]: PC speaker on x64
От: gear nuke  
Дата: 25.02.10 12:16
Оценка:
Здравствуйте, ononim, Вы писали:

O>Вот блин сволочи. То есть придется опять по старинке отключать проводок спикера, если вдруг перееду дома на х64.


Нельзя остановить работающую службу.
Можно запретить запуск.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: PC speaker on x64
От: ononim  
Дата: 25.02.10 12:36
Оценка:
GN>Нельзя остановить работающую службу.
GN>Можно запретить запуск.

sc config beep start= disabled
Terminal Services: The beep is redirected to the client.
Windows Vista x64 and Windows XP 64-Bit Edition: This function is not supported.

это как раз и есть запрет запуска...
впрочем х64 у меня ща под рукой, ща затещу
Как много веселых ребят, и все делают велосипед...
Re[5]: PC speaker on x64
От: ononim  
Дата: 25.02.10 12:44
Оценка:
O>это как раз и есть запрет запуска...
O>впрочем х64 у меня ща под рукой, ща затещу
итак, результаты:
раз:

Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.

C:\Windows\system32>sc stop beep
[SC] OpenService FAILED 1060:

The specified service does not exist as an installed service.


C:\Windows\system32>sc config beep start= disabled
[SC] OpenService FAILED 1060:

The specified service does not exist as an installed service.



два:
%Windir%\SysWOW64\kernel32.dll и %Windir%\System32\kernel32.dll содержат экспортируемые ф-и Beep, тестовая апликуха с таким кодом:
    if (!Beep(1000, 1000))
    {
        printf("beep failed, le=%u\n", GetLastError());
    }

выдает

beep failed, le=2

RIP, system speaker
Как много веселых ребят, и все делают велосипед...
Re[5]: PC speaker on x64
От: gear nuke  
Дата: 25.02.10 13:21
Оценка:
Здравствуйте, ononim, Вы писали:

O>

O>sc config beep start= disabled
O>Terminal Services: The beep is redirected to the client.
O>Windows Vista x64 and Windows XP 64-Bit Edition: This function is not supported.

O>это как раз и есть запрет запуска...

Это есть выборочное цитирование, забыл

net stop beep

People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[6]: PC speaker on x64
От: gear nuke  
Дата: 25.02.10 13:34
Оценка:
Здравствуйте, ononim

Это значит только на Виста так, вот результат sc query на Microsoft Windows [Version 6.1.7100]
SERVICE_NAME: Beep
DISPLAY_NAME: Beep
        TYPE               : 1  KERNEL_DRIVER  
        STATE              : 3  STOP_PENDING 
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: PC speaker on x64
От: ononim  
Дата: 25.02.10 13:39
Оценка:
GN>Это значит только на Виста так, вот результат sc query на Microsoft Windows [Version 6.1.7100]
Ну да, так в мсдне и написано только про висту х64, про win7 там такого не сказано
Наверно не успели запортировать beep.sys на х64 к запланированной дате релиза, и в итоге недоделку обозвали фичей и документировали
Как много веселых ребят, и все делают велосипед...
Re[7]: PC speaker on x64
От: ononim  
Дата: 25.02.10 14:32
Оценка: 9 (1)
GN>Это значит только на Виста так, вот результат sc query на Microsoft Windows [Version 6.1.7100]
GN>
GN>SERVICE_NAME: Beep
GN>DISPLAY_NAME: Beep
GN>        TYPE               : 1  KERNEL_DRIVER  
GN>

На поверку выяснилось, что он-то там есть, но вот только он нифига не beep'ает спикером
И это понятно — 32хбитный beep.sys дергает hal!HalMakeBeep, а в 64Хбитном такого вызова ваще нет, все что он делает — отправляет beep в другое устройства типа колонок или терминального сервера.
Кстати beep.sys в win7 x64 7600 не имеет встроенной подписи, как и другие микрософтовские драйвера — походу микрософт таки сделали поддержку winloader'ом проверку подписи драйвера по каталогу.
Как много веселых ребят, и все делают велосипед...
Re: PC speaker on x64
От: Feonyf  
Дата: 28.02.10 16:39
Оценка:
Кулю USB-телефон тогда.

А вообще интересно: есть ли возможность у 64 разрядной операционной системы пищать через PC speaker ?
Моя строка построения буста:
.\bjam link=static threading=multi runtime-link=static -j %NUMBER_OF_PROCESSORS% --with-filesystem --with-thread --with-date_time address-model=64
Re: PC speaker on x64
От: Feonyf  
Дата: 07.03.10 16:16
Оценка:
Здравствуйте, Feonyf, Вы писали:

F>Как заставить пищать PC speaker на Win7 x64 ?


Скажите уважаемые люди. Есть ли вообще возможность у 64 разрядной операционной системы издавать звук с помощью спикера?
Моя строка построения буста:
.\bjam link=static threading=multi runtime-link=static -j %NUMBER_OF_PROCESSORS% --with-filesystem --with-thread --with-date_time address-model=64
Re[2]: PC speaker on x64
От: ononim  
Дата: 07.03.10 17:00
Оценка:
F>>Как заставить пищать PC speaker на Win7 x64 ?
F>Скажите уважаемые люди. Есть ли вообще возможность у 64 разрядной операционной системы издавать звук с помощью спикера?
думаю да
Как много веселых ребят, и все делают велосипед...
Re[2]: PC speaker on x64
От: Аноним  
Дата: 23.09.11 09:37
Оценка: 7 (2)
Здравствуйте, Feonyf, Вы писали:


F>Есть ли вообще возможность у 64 разрядной операционной системы издавать звук с помощью спикера?


у ОС — благодаря мс теперь нет. Зато у нас — есть =)
берем inpoutx64.dll, и программируем порты таймера напрямую!
у меня на win7 x64 скайп через это звонит, с помощью Skype4com

public class PortAccess
{
[DllImport("inpoutx64.dll", EntryPoint = "Out32")]
public static extern void Output(int adress, int value);

[DllImport("inpoutx64.dll", EntryPoint = "Inp32")]
public static extern int Input(int adress);
}

class Program
{
static void HBeep(int tone, int duration)
{
int div = 1193180 / tone;

PortAccess.Output(0x43, 182);

PortAccess.Output(0x42, div & 0xFF);
PortAccess.Output(0x42, (div >> 8) & 0xFF);

int v = PortAccess.Input(0x61);
PortAccess.Output(0x61, v | 0x03);

System.Threading.Thread.Sleep(duration);

v = PortAccess.Input(0x61);
PortAccess.Output(0x61, v & ~0x03);
}
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.