Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Вниз

PlaySound из Windows Service под Windows 2008 Server   Найти похожие ветки 

 
DVM ©   (2011-04-28 12:56) [0]

Возникла необходимость дать службе возможность издавать звук. Зачем - долго объяснять, но вот надо и все. Само собой, начиная с Windows Vista это не получается сделать.
Вариант с созданием отдельного приложения, запускаемого на десктопе залогиненного пользователя и взаимодействующего со службой (что вобщем то является идеологически правильным) отпадает, так служба запущена на сервере и там нет залогиненных пользователей.

Может у кого есть какие мысли как заставить сервис издать звук?
Если коротко, то это своего рода оповещение о неполадках.


 
clickmaker ©   (2011-04-28 13:17) [1]

> так служба запущена на сервере и там нет залогиненных пользователей

а кто тогда слушатель? или это для развлечения одмина, запертого в серверной? )


 
DVM ©   (2011-04-28 13:50) [2]


> а кто тогда слушатель? или это для развлечения одмина, запертого
> в серверной? )

Скорее для привлечения админа или кого-то подобного ибо звук от сервера выведен в другое помещение.


 
Вариант   (2011-04-28 13:59) [3]


> DVM ©   (28.04.11 12:56)

Не пробовал издавать звуки из под сервиса, возможно поможет это ->
http://www.microsofttranslator.com/bv.aspx?from=ru&to=en&a=http%3A%2F%2Fsupport.microsoft.com%2Fkb%2F255584%2Fen-us%3Ffr%3D1

И второй вариант, возможно просто использовать waveOutOpen и т.д.???

PS:Кстати мы для привлечения админа шлем ему SMS(у нас есть такая возможность), email и сообщение через net send


 
OW ©   (2011-04-28 13:59) [4]


> Может у кого есть какие мысли

может, письмо/смс?


 
Inovet ©   (2011-04-28 14:20) [5]

> [3] Вариант   (28.04.11 13:59)
> waveOutOpen и т.д.???
>
> PS:Кстати мы для привлечения админа шлем ему SMS(у нас есть
> такая возможность), email и сообщение через net send

В колонкак и в текстовых сообщениях: "Вставай проклятьем заклеймённый". Вобщем, действительно при наличии сети (а зачем без неё сервер), как-то неправильно тянуть звуковые провода в другое помещение, опять же все могут быть на обеде или дома.


 
Anatoly Podgoretsky ©   (2011-04-28 14:22) [6]

> DVM  (28.04.2011 12:56:00)  [0]

И там некому слушать!


 
Anatoly Podgoretsky ©   (2011-04-28 14:23) [7]

> OW  (28.04.2011 13:59:04)  [4]

Курьерской службой


 
Empleado ©   (2011-04-28 14:26) [8]


> DVM ©   (28.04.11 12:56)  

Попробуй погонять сервис от имени какого-нибудь специально созданного пользователя, имеющего достаточно привилегий на этом сервере.
И можно проверить также, запущены ли на сервере сервисы работы со звуком.


 
Медвежонок Пятачок ©   (2011-04-28 14:33) [9]

Может у кого есть какие мысли как заставить сервис издать звук?

Если служба начнет печатать текст обращения к админу на чешском телеграфном аппарате Т-100, то админ реально сможет это услышать


 
clickmaker ©   (2011-04-28 14:33) [10]

> Курьерской службой

голубиной почтой, а голубя натренировать на звук


 
Медвежонок Пятачок ©   (2011-04-28 14:40) [11]

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

вариант: ниточка переводи стрелки часов с кукушкой на 23:00


 
OW ©   (2011-04-28 14:45) [12]


> выдвинуть лоток цидирома.
> к лотку привязать ниточку.
> ниточка

открывает решетку клетки и голубь полетел..


 
clickmaker ©   (2011-04-28 14:48) [13]

> выдвинуть лоток цидирома

задвинуть лоток сидирома с предустановленной чашкой кофе
кофе проливается на клетку с попугаем
попугай орет в микрофон "серррвер накрывается, кррретины!"
звук от микрофона выведен в нужные места офиса


 
DVM ©   (2011-04-28 15:20) [14]


> PS:Кстати мы для привлечения админа шлем ему SMS(у нас есть
> такая возможность), email и сообщение через net send

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

SMS хорошо бы, но админы разные, телефоны разные, не совсем подходит.
Нужен постоянный и длительный раздражитель :)


> выдвинуть лоток цидирома.
> к лотку привязать ниточку.
> ниточка дергает тумблер.
> тумблер включает бумбокс.

Хотелось бы без создания различных доп девайсов, а так конечно можно взять сирену, скоммутировать тем или иным образом с компьютером и т.д. Но хотелось бы обойтись программным способом.

Пока наилучший пришедший в голову вариант - звонить на IP телефон админа из службы (благо IP телефония используется).


 
clickmaker ©   (2011-04-28 15:27) [15]

а как-нибудь через CreateProcessAsUser нельзя извратиться?


 
DVM ©   (2011-04-28 15:28) [16]


> Вариант   (28.04.11 13:59) [3]

Посмотрел по ссылке. Скорее всего не поможет, ибо:
1) Статья 2006 года, висты еще не было вроде.
2) Под XP звук из сервиса есть!
3) Моя служба не LOCALSYSTEM и не может ей быть, иначе она не сможет мониторить то, что мониторит. Служба запускается от имени определенного пользователя, так что в профиле его все прописано правильно насчет звуковых устройств. Эта же служба запущенная как консольное приложение звук прекрасно под этим же пользователем издает.


 
Вариант   (2011-04-28 15:36) [17]


> DVM ©   (28.04.11 15:28) [16]

Ок, буду  знать, что не поможет - отрицательный результат - тоже результат. А что насчет waveOutXXX???

Или хочется таки одной командой вывести звук?


 
DVM ©   (2011-04-28 15:43) [18]


> Вариант   (28.04.11 15:36) [17]


> А что насчет waveOutXXX???

Я пока искал, натыкался на обсуждения различных метов вывода звука, там и DirectSound пробовали - безрезультатно. Думаю PlaySound сводится к тем же более низкоуровневым функциям.

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


 
DiamondShark ©   (2011-04-28 16:10) [19]


> DVM ©   (28.04.11 15:28) [16]
>  Скорее всего не поможет, ибо:

Т.е., теоретизировать лучше, чем проверить?


> Служба запускается от имени определенного пользователя,
> так что в профиле его все прописано правильно насчет звуковых
> устройств. Эта же служба запущенная как консольное приложение
> звук прекрасно под этим же пользователем издает.

При интерактивном и неинтерактивном входе реестры могут какбэ немного отличаться.
Дамп нужной ветки реестра в двух случаях решил бы это однозначно.
Но теоретизировать лучше.


> Думаю PlaySound сводится к тем же более низкоуровневым функциям.

К тем же, да не совсем. PlaySound работает с устройством по умолчанию, а в waveOutXXX устройство можно явно указать.

Ну и, разумеется, код никто никому не покажет.


 
DVM ©   (2011-04-28 16:14) [20]


> DiamondShark ©   (28.04.11 16:10) [19]


> Ну и, разумеется, код никто никому не покажет.

Код чего ты хочешь увидеть? Вызова PlaySound? Службы? Какой код?


> Т.е., теоретизировать лучше, чем проверить?

Я проверю, не переживай.


 
DVM ©   (2011-04-28 16:17) [21]


> DiamondShark ©   (28.04.11 16:10) [19]



> При интерактивном и неинтерактивном входе реестры могут
> какбэ немного отличаться.

Проверял? Или теоретизируешь?


 
DiamondShark ©   (2011-04-28 16:18) [22]


> DVM ©   (28.04.11 16:14) [20]

Вызова PlaySound.
С результатами диагностики.


> Я проверю, не переживай.

Гы. Мне вообще-то пофиг. Проблема у тебя, а не у меня.
Но за пол-дня ты так и не проверил, исключительно из философских соображений.


 
DiamondShark ©   (2011-04-28 16:20) [23]


> DVM ©   (28.04.11 16:17) [21]

Тебе зарплату за работающие программы платят, или за "поймай на слове чувака с форума"?


 
Jan   (2011-04-28 16:49) [24]

Пишем приложение, которое запускает звук и по событию, событие порождаем из сервиса. А вообще сама постановка задачи - бред)


 
DVM ©   (2011-04-28 17:11) [25]


> Jan   (28.04.11 16:49) [24]


> Пишем приложение, которое запускает звук и по событию, событие
> порождаем из сервиса.

Нет залогиненного пользователя, нет интерактивной сессии, этому приложению негде исполняться со звуком точно так же как и сервису.


 
sniknik ©   (2011-04-28 17:32) [26]

> А вообще сама постановка задачи - бред)
да ну?
представь кучу стоек с серверами, мониторов нет, где то "глюк" (позвонили клиенты сказали сайт/что то х.з. что ...  не работает... а у тебя все ок, пингуется, т.е. проблема где то в приложении, и предположим приложение твое...), "идти на звук" гораздо удобнее чем считать стойки/читать таблички с номерами серверов.


 
DVM ©   (2011-04-28 17:50) [27]


> DiamondShark ©   (28.04.11 16:18) [22]


> Вызова PlaySound.
> С результатами диагностики.

Ну тут все проще простого. PlaySound ошибки не выдает, т.е результат ее исполнения TRUE. Просто звука нет. Попробую переделать на waveOutXXX, но что-то мне подсказывает, что не в этом дело.


procedure TPlaySoundThread.Execute;
begin
 while not Terminated do
   begin
     try
       ....
       Win32Check(PlaySound(PChar(SoundFile), 0, SND_FILENAME or     SND_NOWAIT));
       ....
     except
       on e: Exception do
         Logger.Error(e.ClassName + " : " + e.Message);
     end;
   end;
end;


 
clickmaker ©   (2011-04-28 18:03) [28]

флаг SND_SYSTEM не поможет?


 
Jeer ©   (2011-04-28 18:10) [29]

Вывести сигнал на порт.
Службе не возбраняется делать это.


 
DiamondShark ©   (2011-04-28 18:12) [30]


> DVM ©   (28.04.11 17:50) [27]
> Ну тут все проще простого. PlaySound ошибки не выдает

И не выдаст в таком варианте. Добавь SND_NODEFAULT.

Как на счёт доступности файла? Попробуй его открыть с логированием результата.

У меня нет висты и выше под рукой, сам проверить не могу.
Если с результатом и с доступом к файлу всё ок, может флажок SND_SYSTEM поможет.


 
Inovet ©   (2011-04-28 18:51) [31]

А флаг SERVICE_INTERACTIVE_PROCESS к выводу звука имеет отношение?


 
DiamondShark ©   (2011-04-28 19:06) [32]


> Inovet ©   (28.04.11 18:51) [31]
> А флаг SERVICE_INTERACTIVE_PROCESS к выводу звука имеет
> отношение?

Абсолютно никакого.


 
Jan   (2011-04-28 21:08) [33]


> да ну?
> представь кучу стоек с серверами, мониторов нет, где то
> "глюк" (позвонили клиенты сказали сайт/что то х.з. что .
> ..  не работает... а у тебя все ок, пингуется, т.е. проблема
> где то в приложении, и предположим приложение твое...),
> "идти на звук" гораздо удобнее чем считать стойки/читать
> таблички с номерами серверов

там другая ситуация - нужно просто подать знак, если что-то не так судя по описанию автора

> Нет залогиненного пользователя, нет интерактивной сессии,
>  этому приложению негде исполняться со звуком точно так
> же как и сервису

пожно спикером попищать, выдать управляющий сигнал на lpt/com, а там ключ с реле присобачить


 
DVM ©   (2011-04-28 22:24) [34]


> DiamondShark ©   (28.04.11 18:12) [30]


> И не выдаст в таком варианте. Добавь SND_NODEFAULT.

то же самое, PlaySound ошибок не возвращает. Звука нет.


> Как на счёт доступности файла? Попробуй его открыть с логированием
> результата.

Файл доступен 100%. Служба запущена от имени того же самого пользователя, от которого я ее запускаю как консольное приложение, в режиме консольного приложения звук есть. На всякий случай проверил - есть доступ.


> У меня нет висты и выше под рукой, сам проверить не могу.
>
> Если с результатом и с доступом к файлу всё ок, может флажок
> SND_SYSTEM поможет.

Не, тоже не помог. Тишина, ошибок нет.


> Inovet ©   (28.04.11 18:51) [31]
> А флаг SERVICE_INTERACTIVE_PROCESS к выводу звука имеет
> отношение?

Этот флаг теперь вообще мало что меняет, если вообще что меняет.


> пожно спикером попищать, выдать управляющий сигнал на lpt/com,
>  а там ключ с реле присобачить

Спикер тоже из службы молчит :)


 
Eraser ©   (2011-04-28 22:34) [35]

>
>
> [0] DVM ©   (28.04.11 12:56)

в висте полностью переделали звуковую архитектуру в очередной раз, так что подозреваю, что прямого решения нет. самое простое - запускать процесс воспроизводящий звук в нужной терминальной сесии. Вот пример http://rouse.drkb.ru/winapi.php#servicenotifyer


 
DVM ©   (2011-04-28 22:43) [36]


> Eraser ©   (28.04.11 22:34) [35]


> самое простое - запускать процесс воспроизводящий звук в
> нужной терминальной сесии

Для этого эту сессию надо организовать. На сервере нет залогиненных пользователей как я уже говорил, нет доступной терминальной сессии откуда бы я мог с помощью отдельного процесса вывести звук.


 
Inovet ©   (2011-04-28 22:53) [37]

Виндоус звук выдаёт ещё до логина, значит можно, только какой своей частью она это делает.


 
Rouse_ ©   (2011-04-28 23:03) [38]


> Но, этого как показывает практика, недостаточно. Дежурный
> администратор может уснуть, отключить у себя эту клиентскую
> программу или забыть ее запустить, отойти и т.д.

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


 
Rouse_ ©   (2011-04-28 23:07) [39]

Ну и до кучи NetMessageBufferSend глобально должен разбудить заспанного админа.


 
sniknik ©   (2011-04-28 23:10) [40]

> нужно просто подать знак
в чем бредовость "подания" знака звуком? заодно и амина "закемарившего" разбудит...
и, да, можно по сети послать команду на рабочую станцию... ну, а если это неполадки сети.
и да может можно чего то другое придумать (типа лотка жмущего )

p.s. честно, достает уже. советы от даже не пытающихся вникнуть/представить ситуацию, но заявляющих, утрировано "автор сам дурак. раз делает не так как делал бы они... если бы могли".
сам недавно был в практически такой же ситуации.
http://delphimaster.net/view/1-1297432020/

> в нужной терминальной сесии.
и где же ты сессия когда ты так нужна... :)
> [0] служба запущена на сервере и там нет залогиненных пользователей.

> писискрипер же есть в наличии
> Спикер тоже из службы молчит :)

> NetMessageBufferSend
а сети к примеру нет. отвалилась. о чем и нужно посигналить...


 
DVM ©   (2011-04-28 23:13) [41]


> Rouse_ ©   (28.04.11 23:03) [38]


> он по идее всегда при правильном подходе бибикить должен.

не бибикает, проверено или подход у меня (Windows.Beep) неверный.


 
sniknik ©   (2011-04-28 23:23) [42]

> не бибикает
а, Windows Audio? оно же само служба. в XP по крайней мере.

uses
 MMSystem;

sndPlaySound("C:\Windows\Media\Windows XP - восклицание.wav", SND_NODEFAULT or SND_ASYNC or SND_LOOP);


 
Rouse_ ©   (2011-04-28 23:24) [43]


> или подход у меня (Windows.Beep) неверный.

Сбилди на FASM вот это и стартуй как сервис (ток с флагом драйвера), драйвер загрузется бикнет и выгрузится.
format PE DLL native 4.0 at 10000h
entry DriverEntry

include "macro/struct.inc"
include "macro/proc32.inc"
include "KMD/KMD.inc"

section ".text" code readable executable notpageable

proc DriverEntry lpDriverObject, lpusRegistryPath
       mov ah,2
       mov dl,7
       int 21h
       mov     [eax + DRIVER_OBJECT.DriverUnload], DriverUnload
       mov     eax, STATUS_SUCCESS
       ret
endp

proc DriverUnload lpDriverObject
       ret
endp

section ".data" data readable writeable notpageable

section ".rdata" data readable notpageable

section "INIT" import code discardable executable readable writeable

section ".reloc" fixups data readable discardable


 
Rouse_ ©   (2011-04-28 23:26) [44]

точнtt

      push eax
      mov ah,2
      mov dl,7
      int 21h
      pop eax


 
Eraser ©   (2011-04-28 23:26) [45]

> [36] DVM ©   (28.04.11 22:43)

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


 
Rouse_ ©   (2011-04-28 23:30) [46]

Кстати, даже самому ничего делать не надо, уже все давно написано за нас, оть тебе заголовочник для устройства. Открывай его по символьной ссылке и вызывай DeviceIOCall

http://www.koders.com/c/fidFEC3527B9D951559D62722A9C0C603863106CA9B.aspx


 
DVM ©   (2011-04-28 23:31) [47]


> sniknik ©   (28.04.11 23:23) [42]


> а, Windows Audio? оно же само служба. в XP по крайней мере.

не взлетит


 
Rouse_ ©   (2011-04-28 23:54) [48]

Как-то так:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, GSListView, StdCtrls;

type
 TForm1 = class(TForm)
   GSListView1: TGSListView;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

const
 ntdll = "ntdll.dll";

type
 UNICODE_STRING = record
   Length: WORD;
   MaximumLength: WORD;
   Buffer: PWideChar;
 end;
 PUNICODE_STRING = ^UNICODE_STRING;

 OBJECT_ATTRIBUTES = record
   Length: ULONG;
   RootDirectory: THandle;
   ObjectName: PUNICODE_STRING;
   Attributes: ULONG;
   SecurityDescriptor: Pointer;
   SecurityQualityOfService: Pointer;
 end;
 POBJECT_ATTRIBUTES = ^OBJECT_ATTRIBUTES;

 IO_STATUS_BLOCK = record
   case integer of
     0:
      (Status: DWORD);
     1:
      (Pointer: Pointer;
       Information: ULONG);
 end;
 PIO_STATUS_BLOCK = ^IO_STATUS_BLOCK;

 BEEP_SET_PARAMETERS = record
  Frequency,
  Duration: DWORD;
 end;

 function ZwOpenFile(FileHandle: PHANDLE; DesiredAccess: ACCESS_MASK;
   ObjectAttributes: POBJECT_ATTRIBUTES; IoStatusBlock: PIO_STATUS_BLOCK;
   ShareAccess: ULONG; OpenOptions: ULONG): DWORD; stdcall; external ntdll;

 procedure RtlInitUnicodeString(
   DestinationString : PUNICODE_STRING;
   SourceString : LPCWSTR); stdcall; external ntdll;

function GetCtlCode: Integer;
const
 FILE_DEVICE_BEEP = $00000001;
 METHOD_BUFFERED = $00000000;
 FILE_ANY_ACCESS = $00000000;
begin
 Result:=
    (FILE_DEVICE_BEEP shl 16) or
    (FILE_ANY_ACCESS shl 14) or METHOD_BUFFERED;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
 OBJ_CASE_INSENSITIVE         = $00000040;
 FILE_SYNCHRONOUS_IO_NONALERT = $00000020;
 FILE_READ_DATA = 1;
var
 hDeviceHandle: THandle;
 US: UNICODE_STRING;
 OA: OBJECT_ATTRIBUTES;
 IO: IO_STATUS_BLOCK;
 NTSTAT, dwReturn: DWORD;
 BSP: BEEP_SET_PARAMETERS;
begin
 RtlInitUnicodeString(@US, StringToOleStr("\Device\Beep"));
 FillChar(OA, SizeOf(OBJECT_ATTRIBUTES), #0);
 OA.Length := SizeOf(OBJECT_ATTRIBUTES);
 OA.ObjectName := @US;
 OA.Attributes := OBJ_CASE_INSENSITIVE;
 NTSTAT := ZwOpenFile(@hDeviceHandle, FILE_READ_DATA or SYNCHRONIZE,
   @OA, @IO, FILE_SHARE_READ or FILE_SHARE_WRITE or
   FILE_SHARE_DELETE, FILE_SYNCHRONOUS_IO_NONALERT);
 if NTSTAT = 0 then
 try
   BSP.Frequency := 1000;  // < тут сам подбирай
   BSP.Duration := 300;    // < тут сам подбирай
   DeviceIoControl(hDeviceHandle, GetCtlCode,
         @BSP, SizeOf(BEEP_SET_PARAMETERS),
         nil, 0, dwReturn, nil)
 finally
   CloseHandle(hDeviceHandle);
 end;
end;

end.


 
DVM ©   (2011-04-29 00:06) [49]


> Rouse_ ©   (28.04.11 23:54) [48]

Из службы все равно нет звука, только что проверил под Windows 7. Из консольного приложения звук есть.


 
Иксик ©   (2011-04-29 00:38) [50]

http://stackoverflow.com/questions/2143439/play-wave-file-from-a-windows-service-c


 
Jan   (2011-04-29 01:25) [51]


> в чем бредовость "подания" знака звуком?

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

> амина "закемарившего" разбудит

все можно сделать передавая данные о состоянии сервера по сети и настроив на другой стороне клиента для обработки событий. либо отсылая email/sms как уже писали

> и, да, можно по сети послать команду на рабочую станцию.
> .. ну, а если это неполадки сети

клиентская часть может общаться с сервером, соответственно если сервер не отвечает тоже дудим в дуду

ps: DRM, а почему дудеть не может сама юзверская машина (на которой стоит клиент, который общается с сервером)? причем можно установить клиента на несколько разных машин, кричать будет с разных мест:)


 
DVM ©   (2011-04-29 07:31) [52]


> Jan   (29.04.11 01:25) [51]


>  почему дудеть не может сама юзверская машина (на которой
> стоит клиент, который общается с сервером)?

Она может и она дудит, но:

1) Админ убавит звук и привет дуделка
2) Проблема может быть с сетью и привет связь
3) Еще 1000 и 1 человеческий фактор-отмазка (повис комп я не слышал, повисла программа не продудела, не работает звуковая звука не было и т.д.)

Люди, все эти варианты многократно обговаривались, вы не думайте что все это не проверялось на деле - вариант с сигнализацией сервером - самый надежный.


 
Anatoly Podgoretsky ©   (2011-04-29 07:47) [53]

> DVM  (29.04.2011 07:31:52)  [52]

Как будто этиже отмазки не смогут применить к серверу.


 
sniknik ©   (2011-04-29 08:16) [54]

> Как будто этиже отмазки не смогут применить к серверу.
труднее будет... вот что это будет за отмазка "выключил колонки", если эти колонки единственное для чего предназначены "продудеть об ошибке"... т.е. это уже не на автомате, поиграл и выключил, это уже саботаж.  
да и логи должны быть, в отличие от клиента (там если реально выключить/снять программу клиента логов не будет). проще проверяется.
и т.д.

p.s. реально не на то усилия направляете...


 
boriskb ©   (2011-04-29 09:31) [55]


> p.s. реально не на то усилия направляете...


Соглашусь.
Это очень частая ситуация, к сожалению

Вспомните ветку примерно 5-летней давности: "К жене приехала подруга и по ночам сидит в инете - спать не дает. Как программно  уменьшить звук/запретить и т.п."

По-моему из той же серии.

Шибко умные :)))


 
Вариант   (2011-04-29 09:44) [56]


> to DVM ©  


Я проверил с waveOutXXX функциями под Windows 7 из сервиса. Звук есть.


 
DVM ©   (2011-04-29 10:11) [57]


> Вариант   (29.04.11 09:44) [56]

Хорошая новость, сейчас и я попробую тогда. Спасибо.


 
sniknik ©   (2011-04-29 10:13) [58]

> под Windows 7 из сервиса. Звук есть.
наверное потому, что не сервер... на серверах дефаултные права по другому задают.
как то, тоже "парился", нужно было "убить" процесс из под сервиса, все работало, в той же программе (запускалась в 2 вариантах, от параметра), тем же кодом (одна ветка отрабатывала), тем же юзером... программой "убивало"  сервисом нет (именно на сервере, на рабочей станции и там и там работало).
решилось админскими методами, они что то в политиках настраивали... там у сервисов "подъем" прав до дебага был не разрешён, а без этого и "убийство" процесса.


 
DVM ©   (2011-04-29 10:50) [59]

Да, действительно, под Windows 7 звук из сервиса, через waveOutXXX получается выдать.
Сейчас попробую на Windows Server 2008.


 
DVM ©   (2011-04-29 10:54) [60]

Под Server 2008 waveOutXXX, тоже сработало. Всем помогавшим большое спасибо!
Ошибался я насчет waveOutXXX.


 
Anatoly Podgoretsky ©   (2011-04-29 11:17) [61]

> boriskb  (29.04.2011 09:31:55)  [55]

Какое из той, совсем из противоположно, у него вообще тихий звук.
Я бы решал проблему через сетевое взаимодействие, еще и надежнее.


 
boriskb ©   (2011-04-29 11:26) [62]


> Я бы решал проблему ...


:)

А я бы решал как у Жванецкого один персонаж "Дадим по башке и отыграем своё"

Вот когда этот "провод что из серверной к динамикам идет"  окажется перекушенным/ передавленным (случайно конечно :) ) тогда и придется возвращаться к проблемме.
А почему нет? СМС не помогант, почта не помогает, он не не услышал/вышел/не заметил/не обратил внимания/ заснул и т.п. что мешаеет ему так же и со звуком поступить?
:))


 
Anatoly Podgoretsky ©   (2011-04-29 11:40) [63]

> boriskb  (29.04.2011 11:26:02)  [62]

Что мешает это сделать на сервере, что ему мешает так поступить, если
надежда на пищалку, то надежда услышать в другой комнате вообще мизерная


 
DiamondShark ©   (2011-04-29 12:10) [64]


> Но раз уж так хочецо - писискрипер же есть в наличии, он
> по идее всегда при правильном подходе бибикить должен.

Всё совсем наоборот.
Именно писискрипер, т.е. девайс на базе 8253/8254 или его эмуляция, в современных матерях встречается чуть более, чем никогда. Пипикалка какая-то есть, но реализована она совсем другими механизмами. Обращаться с ним умеет только БИОС, стандартный драйвер виндос с ним не работает, а на замену такой мелочи производители матерей могут и забить болтЪ.
И это, как ни печально, тенденция.
Так что приходится постепенно привыкать к мысли, что чем дальше в лес, тем ну его нафиг этот пикер.


 
Jan   (2011-04-29 17:41) [65]


> Админ убавит звук и привет дуделка

можно возвращать уровень звука из клиентской программы)

Проблема может быть с сетью и привет связь

аналогично. через какой-то промежуток времени сервер не отвечает - гудим из клиента

> Еще 1000 и 1 человеческий фактор-отмазка

ну вам виднее:)


 
Jan   (2011-04-29 17:42) [66]


> Вот когда этот "провод что из серверной к динамикам идет"
>  окажется перекушенным/ передавленным (случайно конечно
> :) ) тогда и придется возвращаться к проблемме

хуже если через него статика пойдет


 
Rouse_ ©   (2011-04-29 18:56) [67]


> > Админ убавит звук и привет дуделка

Ничто не мешает админу отрубить колонки и бибикалку :)
На всех моих тачках именно так кстати и сделано :)


 
Anatoly Podgoretsky ©   (2011-04-29 19:22) [68]

> Rouse_  (29.04.2011 18:56:07)  [67]

Ничто не мешает уволить админа.


 
Rouse_ ©   (2011-04-29 20:38) [69]

Так я про это с самого начала и сказал - проблема административного характера :)
Если описать задачу, то ТЗ должно быть поставлено так: как программно разбудить админа?


 
sniknik ©   (2011-04-29 21:24) [70]

> так: как программно разбудить админа?
скорее так: обратить внимание, даже того который этого не хочет.

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



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.69 MB
Время: 0.004 c
2-1305069229
Sevenfold
2011-05-11 03:13
2011.08.21
Динамический двунаправленный список (Рандом)


15-1303982784
Дмитрий Тимохов
2011-04-28 13:26
2011.08.21
Как отключить в BPL добавление VersionInfo?


15-1303981198
MDFE
2011-04-28 12:59
2011.08.21
Розовый слоник


2-1305114003
Max
2011-05-11 15:40
2011.08.21
все про Excel


15-1304540245
Новичок
2011-05-05 00:17
2011.08.21
Получить URL картинки на которую наведен курсор мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский