ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

11.02.2010, 16:33
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Подскажите пожалуйста как програмно (через Delphi) включить микрофон?
Например по умолчанию там стоит галочка Выкл.
Как её включить? Нигде пример реализации найти не могу.
|
|
|

11.02.2010, 17:41
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Сообщение от Nightmarе
Подскажите пожалуйста как програмно (через Delphi) включить микрофон?
Например по умолчанию там стоит галочка Выкл.
Как её включить? Нигде пример реализации найти не могу.
Slesh когда-то писал "MicSpy". Типа прослушка через микрофон. Поищи по форуму, может тебе поможет. Там вроде были исходы, а может и нет...
|
|
|

11.02.2010, 17:59
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
я про прослушку спрашивал?
|
|
|

11.02.2010, 18:20
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Подскажите пожалуйста как програмно (через Delphi) включить микрофон?
Например по умолчанию там стоит галочка Выкл.
Как её включить? Нигде пример реализации найти не могу.
Вот, держи, модуль AMixer.pas
Создаёшь класс TAudioMixer, потом в свойстве Destinations переходишь на первый Destination(воспроизведение), там ищешь в массв-свойстве Connections микрофон(по типу) и потом как только соединение найдёшь вызываешь <созданы_миксер>.setMute(destionation , connection, true); destionation - обычно в 0(воспроизведение), connection - индекс нйденого микрофона.
http://slil.ru/28632240
|
|
|

11.02.2010, 18:35
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Сообщение от Jingo Bo
Вот, держи, модуль AMixer.pas
Создаёшь класс TAudioMixer, потом в свойстве Destinations переходишь на первый Destination(воспроизведение), там ищешь в массв-свойстве Connections микрофон(по типу) и потом как только соединение найдёшь вызываешь <созданы_миксер>.setMute(destionation , connection, true); destionation - обычно в 0(воспроизведение), connection - индекс нйденого микрофона.
http://slil.ru/28632240
У меня так:
procedure TForm1.Button1Click(Sender: TObject);
var
lol:TAudioMixer;
begin
lol:=TAudioMixer.Create(nil);
lol.Destinations. Connections
end;
Отсутствует Connections ;(
|
|
|

11.02.2010, 18:51
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
То есть через это конкретно микрофон не включить? а только наобум пробовать?
Вот такой код:
var
lol:TAudioMixer;
begin
lol:=TAudioMixer.Create(nil);
lol.SetMute(0,1,false);
end;
включает синтезатор (режим true его отключает), а чтобы включить микрофон это надо цифры наобум чтоли втыкать и никак не узнать точное расположение микрофона?
|
|
|

11.02.2010, 19:08
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
nightmare, вообщем смотри тут:
forum.delphiarea.com/viewtopic.php?p=1725#1725
там достаточно понятно объяснили как включать микрофон
Последний раз редактировалось wolmer; 11.02.2010 в 19:11..
|
|
|

11.02.2010, 19:21
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
procedure MicMute(Value : Boolean);
Var ta : TAudioMixer;
i, j : Integer;
finded : Boolean;
begin
try
ta := TAudioMixer.Create(nil);
ta.MixerId := 0;
finded := false;
for i := 0 to ta.Destinations.Count - 1 do
Begin
if UpperCase(Copy(ta.Destinations.Destination[i].Data.szName, 1, 6)) = 'VOLUME' then
for j := 0 to ta.Destinations.Destination[i].Connections.Count - 1 do
if ta.Destinations.Destination[i].Connections.Connection[j].Data.dwComponentType = 4099 then
Begin
finded := true;
Break;
end;
if finded then Break;
end;
if finded then
ta.SetMute(i, j, Value) else
ShowMessage('Ìèêðîôîí íå íéäåí');
finally
ta.Free;
end;
end;
Вот так
|
|
|

11.02.2010, 19:36
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Jingo Bo, к сожалению данный код у меня не работает ;(
|
|
|

11.02.2010, 19:43
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 97
Провел на форуме: 604635
Репутация:
15
|
|
Я у себя кстати не проверял  Может накосячил, щас проверю. Кстати а на запись или воспроизведение надо?
Правка : всё прекрасно работает, если тебе не на вопроизведение а на запись, то поменяй строчку
if UpperCase(Copy(ta.Destinations.Destination[i].Data.szName, 1, 6)) = 'VOLUME' then
на
if UpperCase(Copy(ta.Destinations.Destination[i].Data.szName, 1, 6)) = 'RECORD' then
Последний раз редактировалось Jingo Bo; 11.02.2010 в 19:48..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|