Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2007
madiazg madiazg is offline
Miembro
 
Registrado: sep 2005
Ubicación: Canarias
Posts: 120
Poder: 19
madiazg Va por buen camino
Volumen de mi PC

Hola, buenos días,
mediante este código puedo controlar el nivel del volumen:
Código:
uses 
MMSystem; 
function GetVolumeControl(aMixer: HMixer; componentType, ctrlType: Longint; 
var mxc: TMixerControl): Boolean; 
var 
  mxl: TMixerLine; 
  mxlc: TMixerLineControls; 
  rc: Longint; 
begin 
  Result := False; 
  FillChar(mxl, SizeOf(TMixerLine), 0); 
  mxl.cbStruct := SizeOf(TMixerLine); 
  mxl.dwComponentType := componentType; 
{Obtain a line corresponding to the component type} 
  rc := mixerGetLineInfo(aMixer, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE); 
  if rc = MMSYSERR_NOERROR then 
  begin 
    with mxlc do 
    begin 
      cbStruct := SizeOf(TMixerLineControls); 
      dwLineID := mxl.dwLineID; 
      dwControlType := ctrlType; 
      cControls := 1; 
      cbmxctrl := SizeOf(TMixerLine); 
      pamxctrl := @mxc; 
      pamxctrl^.cbStruct := SizeOf(TMixerControl); 
    end; 
    mixerGetLineControls(aMixer, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE); 
    rc := mixerGetLineControls(aMixer, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE); 
    Result := rc = MMSYSERR_NOERROR; 
  end; 
end; 
function SetVolumeControl(aMixer: HMixer; mxc: TMixerControl; volume: Longint): Boolean; 
var 
  mxcd: TMixerControlDetails; 
  vol: TMixerControlDetails_Unsigned; 
  rc: MMRESULT; 
begin 
  FillChar(mxcd, SizeOf(mxcd), 0); 
  with mxcd do 
  begin 
    cbStruct := SizeOf(TMixerControlDetails); 
    dwControlID := mxc.dwControlID; 
    cbDetails := SizeOf(TMixerControlDetails_Unsigned); 
    paDetails := @vol; 
    cMultipleItems := 0; 
    cChannels := 1; 
  end; 
  vol.dwValue := volume; 
  rc := mixerSetControlDetails(aMixer, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE); 
  Result := rc = MMSYSERR_NOERROR; 
end; 
function InitMixer: HMixer; 
var 
  Err: MMRESULT; 
begin 
  Err := mixerOpen(@Result, 0, 0, 0, 0);  
  if Err <> MMSYSERR_NOERROR then 
  Result := 0; 
end; 
// Example: 
procedure SetMasterVolumeToZero; 
var 
  MyMixerHandle: HMixer; 
  MyVolCtrl: TMixerControl; 
begin 
  MyMixerHandle := InitMixer; 
  if MyMixerHandle <> 0 then 
  try 
    FillChar(MyVolCtrl, SizeOf(MyVolCtrl), 0); 
    if GetVolumeControl(MyMixerHandle, MIXERLINE_COMPONENTTYPE_DST_SPEAKERS, MIXERCONTROL_CONTROLTYPE_VOLUME, MyVolCtrl) then 
    begin 
{The last parameter (0) here is the volume level} 
      if SetVolumeControl(MyMixerHandle, MyVolCtrl, 0) then 
      ShowMessage('Volume should now be set to zero'); 
    end; 
  finally 
    mixerClose(MyMixerHandle); 
  end; 
end; 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
SetMasterVolumeToZero 
end;
Pero lo que no he podido encontrar es la forma de obtener el valor del volumen general cuando lanzo mi aplicación (valor entre 0 y 65535).
¿Alguien sabe como averiguarlo?

Saludos...
Miguel Angel
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Controlar volumen Ezecool Varios 1 16-08-2011 01:48:36
volumen en windows aram2r API de Windows 32 19-02-2008 19:58:58
Trackbar y volumen b2k Varios 2 17-09-2007 12:09:48
Control de Volumen, por fin madriles Varios 3 09-07-2006 10:41:02
Cambio de volumen de un MP3 gesko Varios 1 12-06-2005 13:29:55


La franja horaria es GMT +2. Ahora son las 17:28:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi