| |
Visual-Basic EinsteigerSystem-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 06.05.18 04:01 |
| Hallo,
ich habe eine kurze Frage, denn alles was ich dazu gegoogelt habe, hat nicht funktioniert oder war extrem komplex.
Gibt es einen einfache weg, den System-Sound anzuschalten? In meinem VB6-Programm wird etwas vorgelesen. Das macht natürlich nur Sinn, wenn der Nutzer das auch hören kann - sprich, wenn der Sound nicht stumm geschaltet ist und eine bestimmte Lautstärke hat.
Gibt es einen einfachen (also auch für Amateure verständlichen) Code, mit dem ich das sicherstellen kann, bevor ich die akustische Textwiedergabe starte?
Danke schon mal vorab für jeden, der hilft oder es versucht!
Gruß
Magico
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Franki | Datum: 07.05.18 02:03 |
| Hallo,
das wird nicht funktionieren, denn die Benutzereinstellungen am jeweiligen Rechner haben Priorität.
Weise doch den User darauf hin, dass er die Einstellungen für die Lautstärke entsprechend einstellen muss damit er was hören kann und nur so dein Programm sinnvoll nutzen kann. Das versteht jeder User.
Es gibt natürlich auch Gegenbeispiele z.B. Autoradio: Das kann man stumm stellen und Verkehrsdurchsagen werden trotzdem angesagt (TP) Wenn du so was machen möchtest, dann bräuchstest du sehr tiefe Eingriffe in die Rechner des Users (mit entsprechenden Berechtigungen) aber wie bei meinem Beispiel bräuchtest du dann immer noch die Zustimmung, denn TP kann bei jedem Autoradio aktiviert oder deaktiviert werden. Und das ist auch gut so, denn der User hat letztendlich die Entscheidungsfreiheit was er hören möchte und was nicht.
Gruß
Frank | |
Re: System-Sound anschalten - geht das ?! ... JA das geht | | | Autor: Eremit | Datum: 07.05.18 15:44 |
| Hallo V A T,
... ja das geht eigentlich "gaaanz einfach" mit dem Keyboard Event .... allerdings habe ich leider noch kein Lösung gefunden den momentanen Zustand abzufragen
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub MUTE()
KeybdEvent 173, 0, 0, 0
KeybdEvent 173, 0, 2, 0
End Sub Habe im Forum Fortgeschrittene eine Anfrage gestellt "Aktuellen ( Master ) mute abfragen
... aber leider noch keinerlei Antworten
Dir alles Gute und viel Erfolg
The Eremit | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Eremit | Datum: 07.05.18 15:48 |
| ... sorry da war ich etwas zu voreilig und hätte erst mal ALLES lesen sollen ... sorry | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Eremit | Datum: 07.05.18 18:36 |
| Hallo V A T,
... meine Wenigkeit nochmal ... hab da was für Dich gefunden, was all Deine Ansprüche
erfüllen sollte
" ... - sprich, wenn der Sound nicht stumm geschaltet ist und eine bestimmte Lautstärke hat."
http://nirsoft.net/cmp/nircmd.html ... freeware
lade Dir die NirCmd.dll herunter und auch den 2. download mit einem vb beispiel
diese *.dll beinhaltet folgende funktionen
Mute System sound und Unmute system sound
... funktioniert besser als mein vorheriges beispiel mit keybd_event da hier
die funktion mute NUR stumm schaltet und nicht "auch wieder laut schaltet"
daher 2 unterschiedliche functionen Mute/UNmute
Weiters lassen sich mit dieser *.dll auch die Lautstärke stufenweise lauter/leiser stellen
NACHTEIL ... Du lernst leider nicht wirklich was dazu wenn Du diese *.dll verwendest
( aber manchmal will man vielleicht auch gar nicht ALLES soooo gnau "wissen" )
... sollten noch fargen hierzu auftauchen, melde Dich einfach
Frohes schaffen
The Eremit | |
Re: System-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 10.05.18 19:22 |
| Hallo Franki, visualix und Eremit,
vielen Dank für Eure Unterstützung! Ich war ein paar Tage unterwegs, schaue jetzt wieder rein und sehe eure Antworten auf meine Frage - Hammer, so viel Infos und so schnell!
Ich werde mir nun alles in Ruhe anschauen und dann inhaltlich antworten. Wollte nur vorab schon mal einen herzlichen Dank sagen!!! Ich weiß Eure uneigennützige Unterstützung über dieses super Forum wirklich zu würdigen.
Gruß
Magico
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: System-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 10.05.18 19:57 |
| Hallo Eremit,
danke für Deine Unterstützung! Hört sich ja erstmal vielversprechend an!
Wie du ja schon gemerkt hast geht es mir primär darum sicherzustellen, dass der Ton AN ist und eine bestimmte Lautstärke hat (d.h., dass er nicht so niedrig ist, dass er zwar an ist, aber der User trotzdem nix hört). AUSschalten ist also nicht mein Ziel.
Der zweite Lösungsansatz passt also besser: Ich habe mir deshalb mal die dll und das Beispielprojekt runtergeladen und ausprobiert:
- Was funktioniert ist Mute ein/aus.
- Was nicht funktioniert ist die Lautstärke auf einen bestimmten Wert zu setzen, weil sie zwar nicht unmute, aber so niedrig ist, dass man trotzdem nix hört.
Aber das ist immerhin schon mal ein Teilerfolg - Danke!
Eine Frage aber noch vom Amateur. Das Ganze funktioniert dummerweise nur, wenn ich die DLL-Datei im gleichen Ordner liegen habe. Sowohl beim Programmcode, als auch, wenn ich eine exe draus mache. Wenn ich meine fertige exe-Datei aber später weitergeben möchte, will ich doch nicht die dll mitgeben müssen. Gibt es da einen Trick?!
Gruß
magico
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Franki | Datum: 11.05.18 01:08 |
| Hallo,
Zitat: | | Eine Frage aber noch vom Amateur. Wenn ich meine fertige exe-Datei aber später weitergeben möchte, will ich doch nicht die dll
mitgeben müssen. Gibt es da einen Trick?! | |
Wenn dein Programm eine dll braucht, dann ist es notwendig, dass diese DLL beim User bzw. dessem Rechner auch vorhanden ist. Wenn die DLL, wie in deinem Fall, nicht Bestandteil von Windows ist musst du halt ein Setup erstellen (ist sowieso der bessere und übliche Weg) damit die DLL danach auch beim User vorhanden ist (Bei ActiveX Dlls auch registriert ist).
Was spricht dagegen die DLL weiter zu geben?
Gruß
Frank | |
Re: System-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 12.05.18 02:42 |
| Hallo Franki,
dagegen spricht, dass es unpraktisch und fehleranfällig ist, wenn ich neben der exe.datei noch (im Extremfall) einen Haufen dlls weitergeben muss. Das würde ich gerne vermeiden.
Das mit der Installationsroutine wäre wahrscheinlich die sinnigste Lösung in einem solchen Fall, aber damit habe ich bisher noch gar keine Erfahrungen gesammelt. Muss ich aber mal versuchen, wenn die Zeiut es mal hergibt...
Danke für Deine Erläuterungen, ich habe wieder etwas gelernt.
MfG
Magico
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Franki | Datum: 12.05.18 03:46 |
| Hallo,
Zitat: | |
dagegen spricht, dass es unpraktisch und fehleranfällig ist,
wenn ich neben der exe.datei noch (im Extremfall) einen
Haufen dlls weitergeben muss. Das würde ich gerne vermeiden. | |
Genau das Gegenteil ist der Fall. Nichts ist/war bei VB.Classic Programmen fehleranfälliger als nur eine Exe weiterzugeben wo dann auf dem Zielrechner die Voraussetzungen fehlen und sie nicht einwandfrei funktioniert.
Jeder Rechner ist anders, es können unterschiedliche Betriebssysteme (32/64 bit, in unterschiedlichem Stand in Sachen WindowsUpdate) vorhanden sein, unterschiedliche Userkonfigurationen, unterschiedliche (Zusatz)Steuerelemente usw. usw. Da kann bzw. konnte man sich nie drauf verlassen und wird es auch nie können...
Zitat: | |
Das mit der Installationsroutine wäre wahrscheinlich die
sinnigste Lösung in einem solchen Fall, aber damit habe ich
bisher noch gar keine Erfahrungen gesammelt. Muss ich aber
mal versuchen, wenn die Zeiut es mal hergibt...
| |
Solltest du dich dringend mit beschäftigen, denn nur so bist du auf der sicheren Seite, dass dein EXE auch wirklich funktioniert auf anderen Rechnern.
Und am Anfang braucht das gar nicht so viel Zeit, der Setup Assistent ist ja vorhanden, da brauchst du mehr oder weniger am Anfang nur durch zu klicken. Klar ist der auch nicht mehr so ganz zeitgemäß, aber es ist ein Anfang.
Wenn du mehrere Rechner hast, kannst du das ja auch da mal ausprobieren.
Gruß und weiterhin viel Erfolg,
Frank | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Eremit | Datum: 13.05.18 23:21 |
| Hallo V A T,
... bist Du mit der nirCmd.dll schon weiter gekommen ?
... also ... mute/unmute funktioniert einwandfrei ... ja?
... habe mir das mit dem "Einstellen der Lautstärke" nochmal angesehen bzw. getestet
und Du hast recht die Beschreibung is FLASCH ... lauter/leiser stellen funktioniert nicht
so wie beschrieben aber sehr ähnlich
hier mal wie es bei mir funktioniert hat:
DoNirCmd "setsysvolume 65535" ' ... volle Lautstärke ( 100% )
DoNirCmd "setsysvolume " & CStr(CLng(65535 * 0.75)) ' Lautstärke auf 75%
' drosseln (leiser stellen)
DoNirCmd "setsysvolume " & CStr(CLng(65535 * 0.5)) ' Lautstärke auf 50%
' drosseln ... u.s.w. ... hoffe das ist hilfreich
Mit freundlichen Grüßen
the Eremit | |
Re: System-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 14.05.18 17:55 |
| Hallo Eremit,
danke für deine engagierte und konstruktive Unterstützung!
"... also ... mute/unmute funktioniert einwandfrei ... ja?"
-> Kann ich bestätigen!
Deinen modifizierten Ansatz für Lauter/Leiser teste ich noch und gebe dann ein Feedback.
Gruß
Magico
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
Re: System-Sound anschalten - geht das ?! | | | Autor: Franki | Datum: 15.05.18 02:09 |
| Hallo,
Zitat: | |
- Was ich meinte ist, dass die Lösung neben der
exe auch noch einzelnen DLLs weiterzugeben, zwar besser ,
aber ebenfalls fehleranfällig ist. | |
Nein, die Fehleranfälligkeit ist da zwar nicht gleich 0 aber sagen wir mal zu 99% sicherer wenn man alle benötigten Dateien mitliefert und bei Bedarf durch ein Setup beim Zielrechner installiert falls notwendig.
Zitat: | |
Wenn man das durch die Installationsroutine auflösen kann,
dann muss ich mich da unbedingt mal mit beschäftigen. | |
Ja kann man und nur dadurch kann man es.
Das ist schon seit Bestehen von Windows so und wird auch immer so bleiben...
Im Zeitalter von "always on" ist dieses Problem zwar etwas in Vergessenheit geraten aber nur vordergründig. Du kannst bei deinen Projekten ja auch Systemvoraussetzungen angeben, bei .NET Anwendungen wird dann halt automatisch die notwendige Version des Frameworks aus dem Internet geladen (und installiert).
Um auf der möglichst sicheren Seite zu sein sollte man bei VB6 Programmen immer durch ein Setup sicher stellen, dass alle notwendigen Dinge die das eigene Programm braucht auf dem Zielrechner installiert werden. Wenn schon vorhanden, dann wird das beim Setup ja angezeigt.
Was auch ganz wichtig ist, ist die Tatsache, dass du nicht wissen kannst, was der Zielrechner so hat. Das kann Version X von Windows sein, 32 oder 64 bit Betriebssystem usw. usw. Aber das ist ein anderes Thema...
Gruß
Frank | |
Re: System-Sound anschalten - geht das ?! | | | Autor: V A T | Datum: 17.05.18 22:25 |
| Okay, vielen Danke für Deine Unterstützung!
Vielen Dank an alle in diesem Forum, welche mir Ihre Zeit schenken und sich mit meinen Problemen befassen! Ich weiß das ernsthaft zu schätzen und danke allen, die sich mit dieser Frage befassen herzlich!!! | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|