Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Systemlautstärke verändern + Mute deaktivieren (https://www.delphipraxis.net/106849-systemlautstaerke-veraendern-mute-deaktivieren.html)

Zacherl 17. Jan 2008 16:48


Systemlautstärke verändern + Mute deaktivieren
 
Hey,

ich möchte über Delphi die Lautstärke vom Wave Ausgangs und die allgemeine Lautstärke des Systems kontrollieren. (Lautstärke und Wave im Windows Mixer).
Zudem soll fals aktiviert bei beiden Kanälen das Mute deaktiviert werden.

Einige Beispiele habe ich schon gefunden, allerdings ist es nie genau das was ich suche. Hat da jemand noch was für mich?

Gruß

bitsetter 18. Jan 2008 00:41

Re: Systemlautstärke verändern + Mute deaktivieren
 
Hi,

keine Ahnung, was du nun gefunden hast und für welches OS. Lautstärkeregler für LineIn Haupt Lautstärke Regeln Tonausgabe komplett abschalten Unter Vista funktioniert angeblich ja nicht mehr alles.

chest3rs 22. Jan 2008 08:24

Re: Systemlautstärke verändern + Mute deaktivieren
 
Hallo Zacherl,

Delphi-Quellcode:
uses
  MMSystem;

procedure SetVolumeMute(Enabled: Boolean);
var
  hMix : HMIXER;
  mxlc : MIXERLINECONTROLS;
  mxcd : TMIXERCONTROLDETAILS;
  mcdb : MIXERCONTROLDETAILS_BOOLEAN;
  mxc : MIXERCONTROL;
  mxl : TMIXERLINE;
  intRet, nMixerDevs : Integer;
begin
  nMixerDevs := mixerGetNumDevs();
  if (nMixerDevs < 1) then Exit;
  intRet := mixerOpen(@hMix,0,0,0,0);
  if (intRet = MMSYSERR_NOERROR) then
  begin
    mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
    mxl.cbStruct       := SizeOf(mxl);
    intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE);
    if (intRet = MMSYSERR_NOERROR) then
    begin
      FillChar(mxlc, SizeOf(mxlc),0);
      mxlc.cbStruct     := SizeOf(mxlc);
      mxlc.dwLineID     := mxl.dwLineID;
      mxlc.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE;
      mxlc.cControls    := 1;
      mxlc.cbmxctrl     := SizeOf(mxc);
      mxlc.pamxctrl     := @mxc;
      intRet := mixerGetLineControls(hMix, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE);
      if (intRet = MMSYSERR_NOERROR) then
      begin
        FillChar(mxcd, SizeOf(mxcd),0);
        mxcd.cbStruct   := SizeOf(TMIXERCONTROLDETAILS);
        mxcd.dwControlID := mxc.dwControlID;
        mxcd.cChannels  := 1;
        mxcd.cbDetails  := SizeOf(MIXERCONTROLDETAILS_BOOLEAN);
        mxcd.paDetails  := @mcdb;
        mcdb.fValue     := Ord(Enabled);
        intRet := mixerSetControlDetails(hMix, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE);
        if (intRet <> MMSYSERR_NOERROR) then ShowMessage('SetControlDetails Error');
      end else ShowMessage('GetLineInfo Error');
    end;
    intRet := mixerClose(hMix);
  end;
end;

Grisu_Lychen 8. Mär 2010 20:13

Re: Systemlautstärke verändern + Mute deaktivieren
 
Hallo die letzte Antwort ist zwar schon einige Zeit her aber ich versuch es trotzdem mal.
Der Code oben funktioniert super aber ich würde gern nicht den Kanal vom Delphi Programm muten sondern einen anderen bzw. mehrere andere.
Ziel meines Proggies soll sein:
Bei einem Alarm Musik und ähnliches abschalten und Funk aufschalten.

Hab schon Stunden gegoogelt und immer wenn ich dachte ich hab es musst ich feststellen das es doch nicht für Win7 ist.

Ich hoffe ihr könnt mir helfen.

LG Grisu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz