Tastaturbefehle über Script an Windows übergeben

[OT]

Die Unterschiede sollten marginal sein. Ich selber benutze am Senderechner auch PhonerLite; es wird - glaube ich - sogar empfohlen, wenn die kleinen Unterschiede, die auf der Homepage aufgelistet sind, nicht ins Gewicht fallen.

Über Fernsteuerungen von PhonerLite habe ich mir noch gar keine Gedanken gemacht, klingt aber interessant (bei mir dann via PrehKeyTec).

An Deiner Stelle würde ich aber tatsächlich mal den Ansatz von @shorty.xs verfolgen, ob Phoner immer die vordergründige Anwendung war oder eben auch manchmal nicht.
Soweit ich weiß, macht Phoner zwar auf einen eingehenden Anruf aufmerksam, drängelt sich aber nicht automatisch in den Vordergrund.

[/OT]

Mit dem D&R Mapping Programm habe ich mich noch gar nicht beschäftigt. Das leitet also einen Tastendruck demnach wohinauchimmer bzw. setzt ihn um?

Und weil mAirList besser “zuhört” als das D&R-Programm, soll mAirList es jetzt richten?
Hm… :thinking:

Da mAirList bislang noch nicht Verbindungen mit VoIPs jedweder Art implementiert hat - und ich möchte hier gar keine schlafenden Hunde wecken! -, wäre das ein möglicher Ansatz gewesen.
Andererseits: Du möchtest also, dass mAirList auf die Taste “hört” und dann einen Befehl an Windows rausgibt, richtig? Also gewissermaßen die Umleitungsstrecke für D&R Mapping?

Sofern das technisch möglich ist, sehe ich Torben vor meinem geistigen Auge schon wieder so: :roll_eyes: - aber fragen kostet in der Tat nix.

@UliNobbe
Ich möchte nicht, das Mairlist irgendwas richtet, sondern frage lediglich ob Mairlist in der Lage ist über ein Script z.B. die Tastenkombination ALT+Bildauf und ALT+Ab an Windows zu übergeben, da Phoner auf diese Tastenkombinationen lauscht. Damit würde ich dann lediglich die Nutzung des Connect-Buttons am Airlite umgehen. Sobald ein Anruf reinkommt, setzt sich Phoner automatisch in den Vordergrund. Drücke ich selber die Tastenkombination auf der Tastatur dann funktioniert es immer.

Für das Keymapping von D&R habe ich mal ein Bild hochgeladen, wo man sieht, daß es lediglich auf Eingaben am Airlite lauscht und dann vergebene Hotkeys an Windows übergibt. Mairlist muss ja nicht auf Aktionen vom Airlite lauschen.

D_R_virtuell_keybord_mapper

Genau das habe ich schon gelesen und die Parameter hatte ich auch einmal gefunden. Ich weiß nur nicht, wie ich das in einem Script mit Mairlist umsetze, denn das wäre ja ein zweiter Weg. Weißt Du vielleicht, wie man das in einem Script in Mairlist umsetzen kann?

@UliNobbe
Was ich noch schreiben wollte ist, wenn ich den Mapper nutze dann funktioniert das Airlite nicht richtig mit Mairlist. Daher ist der Mapper für mich nicht brauchbar. Ich denke mal, das sich der Mapper mit der Fernsteuerung in Mairlist in die Quere kommt.

Alsoooo… mit mAirList geht das aktuell nicht - oder nicht so 1:1. Vielleicht später mal, Torben behält das im Hinterkopf.

Jetzt kommt @shorty.xs ins Spiel: Es gibt von Microsoft die keybd_event function:

Vielleicht lässt sich aus der API ja was basteln?
In mAirList ist es jedenfalls (noch) nicht drin. Aber eventuell lässt sich da was antriggern?

Da müssen meiner Meinung nach erst mal andere ran. War jedenfalls eine spontane Idee von Torben.

Das geht mit

ShellExecute(<Befehl>,<Parameter>);

 

Ausgeführte Grüße

TSD

Hi Tondose,

vieeeelen lieben Dank. Genau das funktioniert und ist auch eine fantastische Lösung, die sich im Script sogar nicht nur mit Button integrieren läßt, sondern auch als Hintergrundscript, wo man mit ID´s als Fernsteuerung arbeitet.
Hier die Parameter, welche ich gefunden habe und wohl von Phoner genutzt werden. Getestet habe ich allerdings nur die Parameter “DISCONNECT” und “ANSWER”, da ich die anderen nicht benötige.

CONNECT (Die in PARAMETER enthaltene Rufnummer wird gewählt)
DISCONNECT (Der aktuelle Ruf wird beendet)
CONNECTCB (Die in der Zwischenablage befindliche Rufnummer wird gewählt)
UNPARK (Der Ruf mit der in PARAMETER enthaltenen ID wird “entparkt”)
WAVE (Über den aktuellen Ruf wird die in PARAMETER enthaltene Wave-Datei (.wav) abgespielt)
ANSWER (Der gerade anstehende eingehende Ruf wird angenommen)

Ich habe auch inzwischen sogar einen sehr alten Beitrag gefunden, wo jemand das als Hintergrundscript verfasst hat und somit die Parameter mit Fernsteuerungs ID´s anspricht. Das habe ich aber nicht getestet.

Dang it! Jetzt habe ich schon wieder eine neue Bastelidee und meine bisherigen sind noch nicht mal abgeschlossen. Einzig, es fehlt eine Rückmeldung von Phoner an mAirlist um einen Eindeutigen Status zu haben und für eine Anrufsignalisierung. Ich habe da eine mögliche Idee, die aber ggf. Torbens Lizenzkonzept unterwandert, daher werde ich das hier erst einmal offen lassen. Eigentlich ein klarer Fall für das REST Interface.

Obwohl, was passiert, wenn ich einen Befehlt absetze, den Phoner gerade nicht verarbeiten kann? Läuft der dann einfach ins leere?

Folgender Ansatz (für mein EELA S440 und alle anderen Pulte die per Gamepad, Midi oder sonst was mit mAirlist reden)

Ich habe 2 Telko Kanäle, für den Anfang würde ich mal einen mit Phoner belegen.
Zutaten:

  • Dedizierte Soundkarte für Phoner
  • Game-Pad Input vom Mischpult
  • S443 Kanalzug
  • Phoner (ggf. Phoner Lite)
  • DBX 166XL (Spielt für die Grundidee keine Rolle)
  • mAirlist Script
  • Rückweg Ring-Signalisation von Phoner noch offen

Das Script muss ich mal angehen.

Hallo Malte,

bei der Sache mit dem Rückkanal beschäftige ich mich auch schon seit Tagen. Ich habe gelesen, das es per REST Fernsteuerung gehen soll. Ich habe nur die Advanced Licence und da ist das Modul für REST Fernsteuerung nicht mit drin.
Ein anderer Ansatz war, dass man bei Phoner eine andere Applikation ansprechen kann, was auch funktioniert. Allerdings weiß ich noch nicht, wie ich das mit Mairlist abfragen kann. Dritter weg wäre über die Phoner API. Da habe ich auch einmal D&R angeschrieben für eine Umsetzung für das Airlite, was dann aber nichts mehr mit Mairlist zu tun hat.

Das ist genau der Punkt, damit würde man dann per REST Interface einen entsprechenden Befehl an mAirlist schicken. In meinem Home-Studio, habe ich auch keine Pro-Lizenz, mit der das ginge.

Bisher habe ich mal das hier:

    const
      Phoner1 = 'C:\Program Files (x86)\Phoner\phoner.exe'; // <-- Pfad zum ersten Phoner
      Phoner2 = 'C:\ich_habe\mein_phoner\irgnendwoanders\hin_kopiert\phoner.exe'; // <-- Pfad zum zweiten Phoner

    procedure OnLoad;
      begin
        SetRuntimeData('VOIP1', 'false');
    	SetRuntimeData('VOIP2', 'false');
      end;



    procedure OnExecuteCommand(Command: string);
    begin
      if Command = 'VOIP 1 OFF HOOK' then begin
        ShellExecuteHidden(Phoner1,'ANSWER');
    	SetRuntimeData('VOIP1', 'true');
      end;
      else if Command = 'VOIP 1 ON HOOK' then begin
        ShellExecuteHidden(Phoner1,'DISCONNECT');
    	SetRuntimeData('VOIP1', 'false');
      end;
      else if Command = 'VOIP 2 OFF HOOK' then begin
        ShellExecuteHidden(Phoner2,'ANSWER');
    	SetRuntimeData('VOIP2', 'true');
      end;
      else if Command = 'VOIP 2 ON HOOK' then begin
        ShellExecuteHidden(Phoner2,'DISCONNECT');
    	SetRuntimeData('VOIP2', 'false');
      end;
    end;

Beim aktivieren eines Game-Pad Kontaktes werden die entsprechenden OFF Hook Cammands zugewiesen und beim -deaktivieren, die ON-Hook Commands.

Ich schreibe mir den Status hier noch weg in die Runtime-Data um sie ggf. später woanders noch zu benutzen.

Wirst Ärger kriegen damit, weil vor den elses Semikola stehen. :wink:

(Zur Erklärung: Die if … else if … else …-Anweisung ist so zu verstehen, daß sie eigentlich eine einzige Zeile bildet. Erst nach der letzten Bedingung ist diese imaginäre, ewig lange Zeile fertig, und es kommt das Semikolon.)

Syntaktische Grüße

TSD

1 Like

Guten Morgen, ich habe aktuell einen Plan. Und zwar würde ich gerne per Bildschirmobjekt Button, ein Script starten, was xSplit einen Hotkey senden damit die Szene von der Webcam geändert wird.

So wäre der Ablauf
→ Mikrofon geht an
→ Bildschirmobjekt wird aktiviert
→ Hotkey F11 wird an xSplit gesendet und Szene wird umgeschaltet

Kann mir jetzt jemand sagen, wie genau ich ein Script schreiben müsste? Bin da nicht zu 100% fit drin.

Vielen Dank für eure Hilfe :slight_smile:

Könntest Du mir genau sagen, wie der Befehl an xsplit lautet?

Geschaltete grüße

TSD

Der Befehl, den xSplit erhalten muss ist, dass F11 gedrückt wird. Also F11 ist bei xSplit als Hotkey hinterlegt.

Das ist mir klar. Wie lautet der Befehl, der auf Windows-Kommandozeilenebene an xSplit geliefert werden muß?

Präzisierte Grüße

TSD

Geht es nicht, global den Befehl an Windows zu senden? Das es halt wie ein Tastendruck behandelt wird?

Hi @marvinemsen,

Mairlist kann keine Hotkeys an eine andere Anwendung weitergeben. Es funktioniert eigentlich wie folgt, was ich mit der Software “Phoner” schon durch habe. In Phoner kann man festlegen, das es auf ein bestimmtes Attribut reagieren soll (keinen Hotkeys). Das wäre für das Annehmen von Anrufen z.b. “answer call”. Auf dieses Attribut lauscht dann Phoner die ganze Zeit. Mit Mairlist kannst Du dann direkt an das Programm Phoner dieses Attribut übergeben, was Du mit “ShellExecute” über ein Script in Mairlist machen kannst. Das mit den Hotkeys ist nicht möglich.

Programmierte Grüße
Nick

1 Like

Leider finde ich nicht heraus, welche Attribut xSplit nutzt :confused:

Hi @marvinemsen,

da dann vielleicht mal den Support von xSplit kontaktieren, denn ich selber kenne xSplit garnicht.

Programmierte Grüße
Nick

Hast du es mittlerweile hinbekommen? @marvinemsen