Ich möchte gerne für Mumble (ein programm wie Teamspeak) ein kleines Script schreiben was die lautstärke von Winamp runterregelt während jemand spricht. sobald jemand spricht wird das Symbol bei dem entsprechenden user rot. nun wollte ich mit PixelSearch nach dieser farbe suchen lassen und wenn er sie findet dann Winamp leiser drehen, nur wie kann ich PixelSearch bei einem minimierten fenster benutzen?
Mumble
-
- [ offen ]
-
hofi02 -
21. Juni 2009 um 12:33 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
PixelSearch funzt nicht bei minimierten Fenstern .
-
wie könnte ich den sonnst auslesen ob gerade jemand spricht oder nicht?
-
Vieleicht über die Memory
-
Über den speicher hab ich versucht aber bin nicht wirklich zu dem ergebnis gekommen was ich wollte
Ab windows Vista kann man ja für jedes Programm einzeln die lautstärke regeln, gibts da fillt ne möglichkeit mit autoit auszulesen wie der aktuelle lautstärkepegel von einem programm ist und wenn dieser z.b eine bestimmte grenze überschreitet dann die anderen programme leiser/stumm stellt?
-
Es gibt ja ein audio UDF da könnte es drin sein schau einfach ma rein

-
die hab ich mir auch schon mal angegugt die kann nur die master volume regeln
-
keiner ne idee?
-
Ich wüsste was , gibt es bei Winmap z.B. Tastenkombinationen für die Lautstärke ?
Bei manchen Programmen klappte dies hier.
[autoit]
[/autoit][autoit][/autoit][autoit]
Func DirectSend($title, $key, $cid = "")
Switch $key
Case "{F1}"
$k = 0x70
Case "{F2}"
$k = 0x71
Case "{F3}"
$k = 0x72
Case "{F4}"
$k = 0x73
Case "{Enter}"
$k = 0x0D
Case Else
$k = AscW($key)
EndSwitchDllCall("User32.dll", "int", "PostMessageA", "hwnd", ControlGetHandle($title, "", $cid), "int", 0x100, "int", $k, "int", 0)
[/autoit][autoit][/autoit][autoit]
DllCall("User32.dll", "int", "PostMessageA", "hwnd", ControlGetHandle($title, "", $cid), "int", 0x101, "int", $k, "int", 0)EndFunc
[/autoit]F1 - Enter , kannst du ja ändern , dass ist ein beispiel wie man es machen könnte

die Virtual key codes ,bekommst du hier her *Klick mich*
(Virtual key codes ist das hier)
Case "{Enter}"
$k = 0x0DSprich Enter , wäre 0x0D . 0x muss immer davor stehen danach kommt der Virtual Key Code.
Hoffe konnte helfen , da ich kein Winmap habe , kann ich es dir nicht besser zusammen basteln. -
ja aber ich muss ja noch irgendwie auslesen können ob gerade jemand im mumble etwas sagt sonnst bringt mir das ja nicht so viel
-
Konnte es 1.nicht mit Winmap testen

Du brauchst dann noch die Farbe von den Rotenteil aus Mumble & deine Taste müsstest du dir raussuchen was er dan drücken soll.
Hoffe das es klappt & dir hilft.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{ESC}" ,"_Exit")$title = "Fenster Title"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$cid = "Die Control Id"
$Farbe = "0x525252"$COORD = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $Farbe)
[/autoit] [autoit][/autoit] [autoit]
If Not @error Then
MouseMove($COORD[0], $COORD[1])
DirectSend()
EndIfFunc DirectSend()
[/autoit] [autoit][/autoit] [autoit]DllCall("User32.dll", "int", "PostMessageA", "hwnd", ControlGetHandle($title, "", $cid), "int", 0x100, "int", 0x13, "int", 0)
[/autoit] [autoit][/autoit] [autoit]
DllCall("User32.dll", "int", "PostMessageA", "hwnd", ControlGetHandle($title, "", $cid), "int", 0x101, "int", 0x13, "int", 0)
;= Hier ist jetzt jetzt 0x13 (13 PAUSE key)EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncWhile 1
[/autoit]
WEnd -
pixel search funkt ja leider nur wenn das fenster sichtbar ist, also es nicht verdeckt oder minimiert ist =(
aber danke für die hilfe
