AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Tonausgabe komplett abschalten
Thema durchsuchen
Ansicht
Themen-Optionen

Tonausgabe komplett abschalten

Ein Thema von yankee · begonnen am 14. Nov 2006 · letzter Beitrag vom 30. Apr 2007
Antwort Antwort
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

Tonausgabe komplett abschalten

  Alt 14. Nov 2006, 22:24
Hi @ll,

ich will von Windows den kompletten Ton ausschalten... Also so, wie wenn man beim Hauptlautstärkeregler auf "Ton aus" klickt...
Das geht doch bestimmt über die WinAPI...
Aber wie?
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Tonausgabe komplett abschalten

  Alt 15. Nov 2006, 00:47
Ein Fall für die Mixer-Controls, MSDN-Library durchsuchenmixerOpen, etc.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Tonausgabe komplett abschalten

  Alt 15. Nov 2006, 07:22
ich hab den Ton bisher so abgeschalten in einem meiner Programme:
Delphi-Quellcode:
class function TDeskSwitcher.SetMute(AMute: Boolean): Boolean;
  function GetMasterMute(AMixer: hMixerObj; var AMixerControl: TMixerControl): Boolean;
  var LMixerLine: TMixerLine;
      LMixerLineCtrls: TMixerLineControls;
  begin
    ZeroMemory(@LMixerLine, SizeOf(LMixerLine));
    LMixerLine.cbStruct := SizeOf(LMixerLine);
    LMixerLine.dwComponentType := MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
    if mixerGetLineInfo(AMixer, @LMixerLine, MIXER_GETLINEINFOF_COMPONENTTYPE) = MMSYSERR_NOERROR then
    begin
      ZeroMemory(@LMixerLineCtrls, SizeOf(LMixerLineCtrls));
      LMixerLineCtrls.cbStruct := SizeOf(LMixerLineCtrls);
      LMixerLineCtrls.dwLineID := LMixerLine.dwLineID;
      LMixerLineCtrls.cControls := 2;
      LMixerLineCtrls.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE;
      LMixerLineCtrls.cbmxctrl := SizeOf(AMixerControl);
      LMixerLineCtrls.pamxctrl := @AMixerControl;
      result := MMSYSERR_NOERROR = mixerGetLineControls(AMixer, @LMixerLineCtrls, MIXER_GETLineCONTROLSF_ONEBYTYPE);
    end else
      result := False;
  end;
var LMasterControl: TMixerControl;
    LDetails: TMixerControlDetails;
    LBoolDetails: TMixerControlDetailsBoolean;
begin
  if GetMasterMute(0, LMasterControl) then
  begin
    with LDetails do
    begin
      cbStruct := SizeOf(LDetails);
      dwControlID := LMasterControl.dwControlID;
      cChannels := 1;
      cMultipleItems := 0;
      cbDetails := SizeOf(LBoolDetails);
      paDetails := @LBoolDetails;
    end;
    LongBool(LBoolDetails.fValue) := AMute;
    result := MMSYSERR_NOERROR = mixerSetControlDetails(0, @LDetails, MIXER_SETCONTROLDETAILSF_VALUE);
  end else
    result := False;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
15. Nov 2006, 07:39
Dieses Thema wurde von "SirThornberry" von "Windows API / MS.NET Framework API" nach "Multimedia" verschoben.
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#5

Re: Tonausgabe komplett abschalten

  Alt 15. Nov 2006, 16:58
Zitat von SirThornberry:
ich hab den Ton bisher so abgeschalten in einem meiner Programme:
Super

Nur dass class davor weg und den Funktionsname ändern und alles ist super *gg*.

Und
uses MMSystem;
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Tonausgabe komplett abschalten

  Alt 16. Nov 2006, 05:25
Ja, so kann mans auch machen

Das kannste doch gleich in die CodeLib stellen, wenn Du yankees Änderungen machst und "TDeskSwitcher". entfernst
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
DennisHB

Registriert seit: 25. Aug 2003
Ort: Bremen
58 Beiträge
 
Delphi 6 Personal
 
#7

Re: Tonausgabe komplett abschalten

  Alt 16. Nov 2006, 06:17
Gibt es auch eine Möglichkeit einzelnen Programmen/DLLs zu Muten

ich würde gerne Flash(.swf) dauerhaft stumm schalten (Adobe/Macromedia bietet diese Einstellung leider nicht) ebenso alles andere was im Browser geöffnet wird (Sprich Firefox stumm schalten / mein Soundblocker greift leider nicht alles)

2 Spiele würd ich gleich noch mit auf die Liste setzen

also kann man einer Anwendung verbieten nen Muks zu machen?
WinAmp sollte aber weiter hörbare Musik von sich geben können
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Tonausgabe komplett abschalten

  Alt 28. Mär 2007, 00:51
Zitat von DennisHB:
Gibt es auch eine Möglichkeit einzelnen Programmen/DLLs zu Muten

ich würde gerne Flash(.swf) dauerhaft stumm schalten (Adobe/Macromedia bietet diese Einstellung leider nicht) ebenso alles andere was im Browser geöffnet wird (Sprich Firefox stumm schalten / mein Soundblocker greift leider nicht alles)

2 Spiele würd ich gleich noch mit auf die Liste setzen

also kann man einer Anwendung verbieten nen Muks zu machen?
WinAmp sollte aber weiter hörbare Musik von sich geben können
In Vista kannst du jedem Programm die eigene Lautstaerke vorgeben oder auch Muten!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
hw24

Registriert seit: 18. Feb 2005
Ort: Outer Space
21 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Tonausgabe komplett abschalten

  Alt 30. Apr 2007, 13:01
Hi Leuts,

dieses MasterMute Dings hab ich bisher auch benutzt, ist aber unter Vista leider alles Banane
Ich krieg Windows nicht dazu, die Lautsprecher abzuschalten, auch das Systray-Icon reagiert nicht.

Was funktioniert, ist die Abschaltung über das Keyboard ,
Es muss doch möglich sein, irgendwie diese APPCOMMAND_VOLUME_MUTE Message auch per Programm zu generieren und an .... wen eigentlich zu senden.

Hat da irgendwer der Experten einen Tip ?
Bevor hier jemand vorschnell antwortet: Unter XP läuft alles wie hier beschrieben, es geht hier NUR um Win Vista !

Gruß, Harry
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 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