Fernsteuerung mit Hotkeys

Ich möchte gerne mAirList von einem anderen Programm über Hotkeys fernsteuern.
Ich habe eine kleine Delphi Applikation geschrieben, die über das SAS Protokoll mit dem Mischpult kommuniziert und von dort die Faderstarts erhält. Nun möchte ich den Faderstart im mAirList auslösen. Am einfachsten schien mir einen KeyPress-Event an das mAirList Fenster zu schicken. Es scheint mir jedoch, dass die HotKeys anders verarbeitet werden, auf jeden Fall erhalte ich keine Reaktion.
Torben, kannst du mir sagen, wie du die Hotkeys in Delphi programmiert hast, dann finde ich vielleicht einen Weg, den richtigen Event zu senden. Oder hast du eine ganz andere Idee, wie ich das anstellen könnte?

Gruss

Andreas

Hi.

Ich frage die Hotkeys über die System-Hotkey-Funktionen von Windows ab. Siehe z.B. hier:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/registerhotkey.asp

Was ist denn dieses “SAS-Protokoll”? Hab ich noch nie von gehört.

Torben

Hallo

SAS ist ein Protokoll von LAWO, http://www.lawo.de. Wir verwenden ein Zirkon Pult. Absolut Spitze!

Bei der RegisterHotKey Funktion musst du eine ID angeben. Kannst Du mir sagen, was du dort verwendest, dann könnte ich WM_HOTKEY Messages mit den entsprechenden ID’s senden.

Gruss

Andreas

SAS ist ein Protokoll von LAWO, http://www.lawo.de. Wir verwenden ein Zirkon Pult. Absolut Spitze!

Oh, mAirList im Einsatz auf LAWO-Pulten. Das hätte ich mir früher auch nie träumen lassen :wink:

Bei der RegisterHotKey Funktion musst du eine ID angeben. Kannst Du mir sagen, was du dort verwendest, dann könnte ich WM_HOTKEY Messages mit den entsprechenden ID's senden.

Die Komponente, die ich verwende, nummeriert die Tasten einfach durch. Die erste kriegt die Id 0, die zweite 1 usw. Ich glaube, die haben “global” keine Bedeutung, es geht nur darum, dass man eine Möglichkeit hat, später wieder auf die registrierten Hotkeys zuzugreifen, zum Beispiel, um sie wieder zu löschen.

Vier Möglichkeiten fallen mir noch ein:

  1. Ich würde nochmal gezielt googlen nach der Frage, wie man Tastendrücke simulieren kann, so dass sie als System Hotkey ankommen.
  2. Du suchst dir das Handle vom mAirList-Fenster raus und schickst das WM_HOTKEY-Event direkt dorthin.
  3. Ich definiere eine Schnittstelle, über die man direkt per Window-Messages die zahlreichen mAirList-Befehle (START, STOP, …) auslösen kann, ohne den Umweg Hotkey. Hab ich noch nie gemacht, aber das müsste auch irgendwie klappen.
  4. Vielleicht könnte man auch mAirList beibringen, direkt SAS zu “sprechen” oder zu “verstehen”?

Torben

Mist, ich stand gerade auf dem Schlauch. Jetzt verstehe ich erst, wie du das mit den Ids meintest.

In der mAirList.ini sind die Tasten als Key0, Key1 usw. definiert. Die Zahl ist gleichzeitig auch die Id aus den Messages. In welcher Reihenfolge die in der mAirList.ini landen, ist mehr oder weniger willkürlich, sollte aber der Reihenfolge entsprechen, wie sie in mAirListConfig definiert wurden. Also sich auch beim neumaligen Starten des Konfigurationsprogramms nicht verändern.

Torben

Da ich relativ schnell eine Lösung brauche, werde ich versuchen mit der WM_HOTKEY Message zu arbeiten.
Ich kann aber gerne auch meinen SAS-Delphi-Code etwas kommntieren, so dass du ihn in mAirList einbauen könntest. Das wäre natürlich absolut Top!

Andreas

Hey, Delphi, das klingt doch gut! :slight_smile:

Ja, wenn du etwas Luft hast, schick ihn mir doch mal. Ich weiß nicht, ob ich Zeit habe, das dann auch mit in das Konfigurationsprogramm aufzunehmen. Aber vielleicht kann man die SAS-Anbindung ja erstmal mehr oder weniger undokumentiert über die .ini-Datei laufen lassen.

Torben

Ich habe einiges versucht mit der WM_HOTKEY aber ohne Erfolg.
Du hast geschrieben, du könntest eine Schnittstelle einbauen, mit der man über Window-Messages die mAirList Befehle auslösen könnte. Siehst du eine möglichkeit das nächstens zu machen, oder sollen wir direkt das SAS Protokoll einbauen?

Andreas

Vielleicht beides :wink: Ich muss mal schauen, wie man das mit den Messages am besten anstellt. Evtl. muss ich dann Integer-Konstanten für die ganzen Funktionen einführen. Strings kann man schlecht per Message verschicken, soweit ich weiß. Und wegen SAS: Schick mir doch mal deinen Sourcecode, sobald der irgendwie für mich “lesbar” ist.

Nochmal zu WM_HOTKEY: An welches Handle (hWnd von SendMessage bzw. PostMessage) schickst du die Nachrichten?

Torben

Schnittstelle klingt echt gut :slight_smile:

Will haben :wink:

Christoph

Schnittstelle kommt irgendwann. Muss dann vorher noch nen Haufen Message-Konstanten definieren :slight_smile:

SAS wird von mAirList (dank hervorragender Vorarbeit von Andreas, danke!) nun übrigens direkt unterstützt. Da das aber eher exotisch ist, habe ich mir bislang nicht die Mühe gemacht, die Konfiguration mit in mAirListConfig einzubauen. Man muss es von Hand in die mAirList.ini schreiben. Wenn noch jemand ein LAWO-Pult hat und das machen möchte: Informationen gibt es bei mir.

Torben

Moin

Ich habe das Problem das ich die Cartwall die ich mit Hotkeys gesetzt habe wenn Mairlist gerade nicht Markiert ist nicht mehr reagiert…Wenn ich aber das Mairlist Fenster wieder ganz vorne habe dann funktioniert es…Was kann ich da machen/tun damit er immer reagiert egal wie viele Programme vor Mairlist gerade offen sind (Mairlist läuft weiterhin nur nicht vorne)?

Du hast “Hotkeys (lokal)” als Fernsteuerungsart gewählt.
Was du suchst ist “Hotkeys (systemweit)”.

Das hat zwar die von dir genannten Vorteile, birgt aber auch gewisse Risiken: Man muss sich absolut sicher sein, dass die Tastenkombination in einem anderen Programm nicht aus Versehen etwas beim im Hintergrund laufenden mAirList auslöst.

Beide Fernsteuerungen können parallel existieren, das heißt, du kannst Hotkeys definieren, die nur bei mAirList im Vordergrund funktionieren und systemweite, die auch bei mAirList im Hintergrund funktionieren.

Können Hotkeys von lokalen zu systemweiten umgewandelt werden?

Ja und nein.
:face_with_raised_eyebrow:
Da es zwei verschiedene Fernteuerungsarten sind, kann man die selbst via Export und Import nicht so einfach austauschen: Lokale Hotkeys bleiben auch in der Sicherung lokal; gleiches gilt für die systemweiten.

Wer nun aber die lokalen Hotkeys 1:1 zu systemweiten machen möchte, greift zu folgendem Trick.

  • Speichere die Hotkeys im Bereich Fernsteuerung in eine Backup-Datei in einem Verzeichnis deiner Wahl, z. B. Meine Hotkeys.ini.

  • Öffne diese Datei nun mit einem Texteditor deiner Wahl.

  • Ändere die Zeile
    Type=Hotkeys
    … in …
    Type=SystemHotkeys

  • Speichere die Datei.

  • In der mAirList-Konfiguration importierst du nun
    Meine Hotkeys.ini
    (oder wie du sie benannt hast).

Die zuvor gespeicherte und veränderte Datei importiert dir nun genau diese Hotkeys als systemweite. :sunglasses:
Die lokalen kannst du als Fernsteuerung damit im Prinzip löschen.

Ich würde es aber vorher gründlich ausprobieren.

1 Like

Danke für die ausführliche Nachricht…

Hat alles geklappt :grinning:

Ich hätte noch eine frage:

Ist es möglich die Wiedergabe die nur für mich zu hören ist (Das was ich Sende) nur für mich Stummzuschalten wenn ich Voicetracke, aktuell höre ich noch die gespielte Musik

Diesmal muss man ja lange auf eine Antwort warten :worried:

Das geht ziemlich einfach. Benutze doch mal die Suchfunktion im Forum.

Schau mal hier:

Am besten du liest dir den ganzen Treat mal durch denn Uli hat noch geniale Ergänzungen dazu gemacht :wink:

EDIT Sollte theoretisch auch mit der Option:

  • Lokale Wiedergabe bei PFL Stummschalten

…funktionieren oder? :thinking:
Das setzt jedoch vorraus das deine Audio Geräte auch für PFL eingerichtet sind im VT Fenster.

:man_facepalming: :man_facepalming: :man_facepalming:

Überdenke gerne noch mal Deine Wichtigkeit in der Welt der User dieses Forums und im Allgemeinen. Da scheint’s Differenzen zwischen Deiner Wahrnehmung und der Wirklichkeit zu geben.

Hier antworten Dir immerhin Leute in ihrer Freizeit UNBEZAHLT, obwohl Du etliche Antworten selbst durch die Forumssuche herausfinden könntest.

Eine Pflicht, täglich Dein persönliches Support-Team zu spielen, haben sie nicht.

3 Likes

Zwischennachricht von mir:
Ich bin da etwas ins Straucheln gekommen. Erst gab es einen Crosspost-Hinweis von @Peter_Schmidt (den ich auch anders hätte behandeln können), dann geriet ich komplett durcheinander, weil ich das im Hinterkopf hatte, was @TomJumbo83 bereits geschrieben hat.

Da war im Tagesgeschäft keine Zeit dafür, sorry, und meine Freizeit läuft mir momentan (aus naheliegenden Gründen) etwas aus dem Ruder. Da hatte ich den Fokus auf deine Frage verloren.

Nur zum Verständnis: Es geht hier speziell um das Routing beim Voicetrack, gar nicht um Fernsteuerung an sich?
Falls ja: Beschreibst du bitte noch einmal kurz, mit welcher Hardware du voicetrackst und welche Signalwege momentan eingestellt sind?

Das wäre ja dann tatsächlich ein komplett neuer Ansatz, oder täusche ich mich?