Autohotkey: Scripte kombinieren

C

Cave Johnson

Gast
Hi,

ich habe zwei Scripte um zwischen zwei Soundkarten umzuschalten. D.h. das eine Script aktiviert immer die eine Soundkarte, das andere Script immer die andere.

Lässt sich das kombinieren? Man müsste eigentlich nur prüfen, welche Soundkarte gerade aktiv ist und dann die jeweils andere aktivieren.

Die Scripte sind identisch bis auf {DOWN X}. Im einen Script steht dort {DOWN 2}, im anderen {DOWN 5}.
Code:
Run, RunDll32.exe shell32.dll`,Control_RunDLL mmsys.cpl`,`,0
WinActivate, Sound
WinWaitActive, Sound, , 2
if ErrorLevel
{
 MsgBox, Sound Window not found!
 return
}
ControlSend, SysListView321, [B]{DOWN X}[/B], Sound
ControlSend, Button2, {DOWN 2}{ENTER}, Sound
WinClose, Sound

Send #{p 3}
 
das ganze gibts schon fertig als AutoIT Script.

Code:
Dim $var1
Run("Rundll32 Shell32.dll,Control_RunDLL mmsys.cpl")
WinWaitActive("Sound", "", "2")
Send("{DOWN}")
Send("{DOWN}")
$var1=ControlCommand("Sound", "&Als Standard", "Button2", "IsEnabled", "")

Select
Case $var1=1
	ControlCommand("Sound", "&Als Standard", "Button2", "Check", "")
	TraySetIcon("C:\Windows\system32\mmres.dll", -2)
Case Else
	Send("{DOWN}{DOWN}")
	ControlCommand("Sound", "&Als Standard", "Button2", "Check", "")
	TraySetIcon("C:\Windows\system32\mmres.dll", -7)
EndSelect


ControlClick("Sound", "&Eigenschaften", 1003)
WinWaitActive("Eigenschaften von", "", "2")
$str=ControlGetText("Eigenschaften von","","Edit1")
ControlClick("Eigenschaften von", "OK", 1)
ControlClick("Sound", "OK", 1)

TrayTip($str," ", 5)
Sleep(3000)

Das ist mein Script. Bei mir ist Wiedergabegerät 1 das zweite Element von oben (deswegen oben 2x DOWN). Wiedergabegerät 1 ist das vierte Element von oben (deswegen im Else-Case noch 2x DOWN).
Damit kann ohne Problem wechseln. Solltest du den TrayTip nicht haben wollen, entfernst du einfach die letzten beiden Zeilen und die TraySetIcon-Befehle in den beiden Cases.
Wenn du eine fertig compilierte .exe brauchst, sag Bescheid.

Gruß,
Fireball89
 
Ich möchte auch 2 Scripte kombinieren.

Code:
#IfWinActive    ; works in any active window
#d::Run F:\Programme\Downloads
#m::Run E:\Musik
#c::Run C:\Users\Sven\AppData\Local\Google\Chrome\Application\chrome.exe
#i::Run C:\Program Files\Internet Explorer\iexplore.exe
#t::Run C:\Program Files\Thunderbird\thunderbird.exe
#j::Run C:\Program Files\ATS\abs.exe

Code:
#IfWinActive    ; works in any active window
AppsKey:: Return
AppsKey & F9::SendInput {Media_Play_Pause}
AppsKey & F12::SendInput {Volume_Mute}
AppsKey & F11::SendInput {Volume_Up}
AppsKey & F10::SendInput {Volume_Down}
return

Wie geht das? Einfach beides in ein Script kopieren hat nicht geklappt.
 
Zuletzt bearbeitet:
Zurück
Oben