Kingfisher OK
Rear Admiral
- Registriert
- Dez. 2007
- Beiträge
- 5.165
Die Idee und Initiative dieser FAQ gilt dem User I N X S. Vielen Dank für eine sehr tolle Grundlage/Einführung in das Programm
Übersicht:
FAQ:
Servus,
wollte nur mal mein Wissen mit euch teilen, da ich ewig lang nach einem Tool gesucht habe, bei dem man in kürzester Zeit sein Standard Wiedergabegerät (Gerät auf dem standardmäßig alle Audiosignale wiedergegeben werden) wechseln kann.
Hintergrund ist, dass ich mein PC-Lautsprechersystem über Klinke angeschlossen habe, meine Hifi Anlage digital über SPDIF und mein Headset ist über meine Logitech G110 angeschlossen.
Dementsprechend werden alle 3 Wiedergabegeräte einzeln im Soundmenü angezeigt:
<-- Von oben nach unten -> Lautsprecher, HiFi-Anlage, Headset
Das Problem Nr 1:
Ist es beispielsweise Abends, möchte ich über die Kopfhörer hören. Um dazu nicht jedesmal die Soundeinstellungen öffnen zu müssen, muss eine automatisierte Lösung zum Wechseln her.
Neben Vista Audiochanger gibt es noch viele weitere Alternativprogramme, die mir aber leider allesamt nicht zugesagt haben.
Also musste eine andere Lösung her.
Die Idee:
Man erstellt ein Makro ==> Eine fest vorgegebene Abfolge mehrerer "Arbeitsschritte" die der Computer ausführt
Wenn man das Soundgeräte Fenster geöffnet hat, lassen sich die notwendigen Schritte alle per Tastatur ausführen. Möchte man zum Beispiel das Spdif Gerät auswählen, muss man zwei mal die Pfeiltaste [nach unten] drücken, den Knopf "Als Standard" kann man per [Tab] anwählen - die perfekte Vorraussetzung um ein Makro zu schreiben.
Dieses Makro muss dann nur noch als ausführbare Datei (.exe) gespeichert werden, und der Soundgerätewechsel erfolgt komplett automatisch.
Ich überlegte also, mit welchem Programm ich so ein Makro schreiben kann.
Die Lösung:
AutoIt kann z.b. Tastendrücke simulieren oder bestimmte Schaltflächen nach ihrem Status abfragen usw.
Das Problem Nr. 2:
Wie bei vielen Programmen, gibt es auch in den Soundeinstellungen das Problem der grau hinterlegten Schaltflächen. Diese lassen sich unter bestimmten Bedingungen nicht anklicken. Warum das ein Problem darstellt, versuche ich anhand des folgenden Beispiels zu erklären:
Die Entwicklung des Makros:
Die ersten Codezeilen sind recht einfach.
Als erstes müssen die Soundeinstellungen geladen werden und warten bis diese geöffnet sind:
Dann schicken wir eine beliebige Anzahl an "Pfeiltaste nach unten" um zu unserem gewünschten Wiedergabegerät zu navigieren. Für mich entspricht das genau einmal [DOWN], da das Wiedergabegerät an oberster Stelle steht:
So jetzt müssten wir prüfen, ob das Feld "Konfigurieren" aktiv ist. Das könnte man mit einer "If Abfrage" machen. Die Funktion dazu heisst "ControlEnable"
Nur wie fragen wir den Button genau ab?
Dazu gibt es ein kleines Tool namens "WindowInfo" - zu finden im Installations Ordner (Bei Windows 7: C:\Program Files (x86)\AutoIt3\Au3Info.exe)
Um die ID der entsprechenden Schaltfläche herauszufinden, klicken wir unter "Finder Tool" auf das Fadenkreuz und ziehen es auf den entsprechenden Button ("Konfigurieren"). Hier lassen sich jetzt einige Informationen entnehmen, unter anderem auch die Button-ID
Um die ID zu entnehmen müssen wir folgendes anklicken:
Die fertigen Schritte in der Übersicht:
So und das gleiche nochmal für den Button "Als Standard". Wenn der Knopf aktiv ist, und das angewählte Soundgerät nicht schon das Standardgerät ist, werden 2 weitere Befehle gesendet: TAB und ENTER:
Letztendlich wird das Fenster geschloßen
Damit haben wir alle Schritte in unserem Makro gespeichert. Ich habe den vollständigen Code noch einmal hier unten notiert:
Die ganze Vorgehensweise könnt ihr für weitere Soundgeräte wiederholen und als einzelne Makros abspeichern (wie man nun ausführbare .exe Dateien erstellt, lest ihr am besten unten bei "Ergänzungen").
Wenn ihr Anfragen nach individuellen Scripts habt, euch aber nicht zutraut sowas selbst zu schreiben, dann nehme ich das gerne als Herausforderung!
Ergänzungen
Wie oben schon beschrieben, sollte die Datei für eine einwandfreie Funktion als .exe gespeichert werden, damit diese als eigenständiges Programm arbeiten kann und nicht zusätzlich das Öffnen des AutoIt Editors benötigt --> Zeit- und Resourcenersparnis.
Um eine fertig programmierte .au3 Datei in eine .exe Datei zu wandeln, muss in der Programierebene von AutoIt nur [F7] gedrückt werden. Eine ausführbare Exe wird im selben Ordner gespeichert, in welchem sich auch die .au3 Datei befindet.
Zusätzlich empfiehlt es sich, alle Dateien in einem Ordner abzuspeichern, ich nannte diesen "Soundeinstellungen":
Wenn in diesem Ordner dann die .exe Datei erstellt wurde, kann man per rechter Maustaste --> Senden an --> Desktop eine Verknüpfung auf dem Desktop erstellen, was natürlich nicht zwingend notwendig ist:
Um nun eine Tastenkombination für ein Profil zu erstellen, wählt man rechte Maustaste --> Einstellungen auf die Verknüpfung:

In dem geöffneten Fenster kann nun einmal die gewünschte Tastenkombination eingegeben werden, sowie ein eigenes Icon gewählt werden, um das Shortcut optisch aufzuwerten:
Wer allerdings seine Verknüpfung mit einem .jpeg, .png etc. Foto aufwerten möchte, wird feststellen, dass die genannten Dateiformate nicht kompatibel sind.
Auf dieser Seite ist es möglich, seine Lieblingsfotos in eine .ico Datei wandeln zu lassen.
Fertiggestellt sieht das dann so aus:
Über den Logitech Makro Manager, kann man nun die "G-Tasten" mit den zuvor festgelegten Tastenkombinationen belegen und bennenen.
Gruß
Kingfisher OK
Übersicht:
FAQ:
Servus,
wollte nur mal mein Wissen mit euch teilen, da ich ewig lang nach einem Tool gesucht habe, bei dem man in kürzester Zeit sein Standard Wiedergabegerät (Gerät auf dem standardmäßig alle Audiosignale wiedergegeben werden) wechseln kann.
Hintergrund ist, dass ich mein PC-Lautsprechersystem über Klinke angeschlossen habe, meine Hifi Anlage digital über SPDIF und mein Headset ist über meine Logitech G110 angeschlossen.
Dementsprechend werden alle 3 Wiedergabegeräte einzeln im Soundmenü angezeigt:

Das Problem Nr 1:
Ist es beispielsweise Abends, möchte ich über die Kopfhörer hören. Um dazu nicht jedesmal die Soundeinstellungen öffnen zu müssen, muss eine automatisierte Lösung zum Wechseln her.
Neben Vista Audiochanger gibt es noch viele weitere Alternativprogramme, die mir aber leider allesamt nicht zugesagt haben.
Also musste eine andere Lösung her.
Die Idee:
Man erstellt ein Makro ==> Eine fest vorgegebene Abfolge mehrerer "Arbeitsschritte" die der Computer ausführt
Wenn man das Soundgeräte Fenster geöffnet hat, lassen sich die notwendigen Schritte alle per Tastatur ausführen. Möchte man zum Beispiel das Spdif Gerät auswählen, muss man zwei mal die Pfeiltaste [nach unten] drücken, den Knopf "Als Standard" kann man per [Tab] anwählen - die perfekte Vorraussetzung um ein Makro zu schreiben.
Dieses Makro muss dann nur noch als ausführbare Datei (.exe) gespeichert werden, und der Soundgerätewechsel erfolgt komplett automatisch.
Ich überlegte also, mit welchem Programm ich so ein Makro schreiben kann.
Die Lösung:
AutoIt kann z.b. Tastendrücke simulieren oder bestimmte Schaltflächen nach ihrem Status abfragen usw.
Das Problem Nr. 2:
Wie bei vielen Programmen, gibt es auch in den Soundeinstellungen das Problem der grau hinterlegten Schaltflächen. Diese lassen sich unter bestimmten Bedingungen nicht anklicken. Warum das ein Problem darstellt, versuche ich anhand des folgenden Beispiels zu erklären:
Um von einer Schaltfläche hier auf "Als Standard" zu kommen muss 2 mal die [TAB] Taste gedrückt werden. Die Markierung springt dann von "Konfigurieren" auf "Als Standard" - perfekt.
Doch ist jetzt die Schaltfläche "Als Standard" grau hinterlegt, Springt die Markierung von "Konfigurieren" auf "Eigenschaften". Da das Makro als nächsten Schritt die [ENTER] Taste drücken wird, würden wir bei den Eigenschaften landen - schlecht.
Um solchen unvorhersehbaren Konstellationen entgegenzuwirken, muss irgendwie geprüft werden ob der Button "Als Standard" aktiv ist. Gleiches gilt natürlich für die Schaltfläche "Konfigurieren".
Doch ist jetzt die Schaltfläche "Als Standard" grau hinterlegt, Springt die Markierung von "Konfigurieren" auf "Eigenschaften". Da das Makro als nächsten Schritt die [ENTER] Taste drücken wird, würden wir bei den Eigenschaften landen - schlecht.

Die Entwicklung des Makros:
Die ersten Codezeilen sind recht einfach.
Als erstes müssen die Soundeinstellungen geladen werden und warten bis diese geöffnet sind:
Code:
Run("c:\windows\system32\control.exe mmsys.cpl")
WinWaitActive("Sound")
Code:
send("{DOWN}")
Nur wie fragen wir den Button genau ab?
Dazu gibt es ein kleines Tool namens "WindowInfo" - zu finden im Installations Ordner (Bei Windows 7: C:\Program Files (x86)\AutoIt3\Au3Info.exe)

Um die ID der entsprechenden Schaltfläche herauszufinden, klicken wir unter "Finder Tool" auf das Fadenkreuz und ziehen es auf den entsprechenden Button ("Konfigurieren"). Hier lassen sich jetzt einige Informationen entnehmen, unter anderem auch die Button-ID

Um die ID zu entnehmen müssen wir folgendes anklicken:
Registerkarte "Control" --> 6. von oben ist die ID
Wir sehen, die ID ist 1001. Die Schaltfläche "Als Standard" hat hingegen die ID 1002, überrascht?

Die fertigen Schritte in der Übersicht:
- Soundfenster wird geöffnet
- PC wartet, bis das Fenster offen ist
- Pfeiltaste [NACH UNTEN] wird gedrückt
- wir lassen prüfen, ob der Button "Konfigurieren" aktiv ist
- wenn ja: [TAB] wird gesendet
- wir lassen prüfen, ob der Button "Als Standard" aktiv ist
- wenn ja: [TAB] + [ENTER] wird gesendet
- Fenster wird geschloßen
Code:
if ControlEnable("Sound", "", 1001) Then
send("{TAB}")
EndIf
Code:
if ControlEnable("Sound", "", 1002) Then
Send("{TAB}")
Send("{ENTER}")
EndIf
Code:
WinClose("Sound")
Code:
Run("c:\windows\system32\control.exe mmsys.cpl")
WinWaitActive("Sound")
send("{DOWN}")
if ControlEnable("Sound", "", 1001) Then
send("{TAB}")
EndIf
if ControlEnable("Sound", "", 1002) Then
Send("{TAB}")
Send("{ENTER}")
EndIf
WinClose("Sound")
Wenn ihr Anfragen nach individuellen Scripts habt, euch aber nicht zutraut sowas selbst zu schreiben, dann nehme ich das gerne als Herausforderung!
Ergänzungen
Wie oben schon beschrieben, sollte die Datei für eine einwandfreie Funktion als .exe gespeichert werden, damit diese als eigenständiges Programm arbeiten kann und nicht zusätzlich das Öffnen des AutoIt Editors benötigt --> Zeit- und Resourcenersparnis.
Um eine fertig programmierte .au3 Datei in eine .exe Datei zu wandeln, muss in der Programierebene von AutoIt nur [F7] gedrückt werden. Eine ausführbare Exe wird im selben Ordner gespeichert, in welchem sich auch die .au3 Datei befindet.
Zusätzlich empfiehlt es sich, alle Dateien in einem Ordner abzuspeichern, ich nannte diesen "Soundeinstellungen":
Wenn in diesem Ordner dann die .exe Datei erstellt wurde, kann man per rechter Maustaste --> Senden an --> Desktop eine Verknüpfung auf dem Desktop erstellen, was natürlich nicht zwingend notwendig ist:
Um nun eine Tastenkombination für ein Profil zu erstellen, wählt man rechte Maustaste --> Einstellungen auf die Verknüpfung:

In dem geöffneten Fenster kann nun einmal die gewünschte Tastenkombination eingegeben werden, sowie ein eigenes Icon gewählt werden, um das Shortcut optisch aufzuwerten:
Wer allerdings seine Verknüpfung mit einem .jpeg, .png etc. Foto aufwerten möchte, wird feststellen, dass die genannten Dateiformate nicht kompatibel sind.
Auf dieser Seite ist es möglich, seine Lieblingsfotos in eine .ico Datei wandeln zu lassen.
Fertiggestellt sieht das dann so aus:
Gruß
Kingfisher OK
Anhänge
Zuletzt bearbeitet: