Ts 3 Aufnahme Starten / Stoppen

  • Aber wie gesagt per Mausklick und per Send Befehl läuft es bei mir problemlos mit QT5Gui's.

    Was die Simulation von Mausklicks angeht, bin ich Deiner Meinung (habe ich oben auch so beschrieben).

    Mit Send etc. und QtGUI's habe ich es noch nicht versucht, weil ich bisher schlicht und ergreifend keinen Bedarf hatte.

    In der Regel ziehe ich API's oder integrierte Automatisierungsverfahren vor - sofern vorhanden.

    Teamspeak scheint aber, so zumindest mein Eindruck nach etwas Lektüre, zickiger zu sein, als andere QtGui's.

    Im englischen Forum gibt es bzgl. Controlinfos(1.) und Automatisierung(2.) zwei laufende Projekte :

    1. https://www.autoitscript.com/forum/topic/19…code-in-autoit/

    2. https://www.autoitscript.com/forum/topic/15…e-chrome-ff-ie/

    Hochinteressant, aber alles andere als trivial ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Normalerweise halte ich nichts von Software die sich hier mit über 200 MB Plattenplatz breit macht und mein System zumüllt.

    Aber ich habe den TS3 Clienten gerade installiert in die Sandbox und nach einigen Startschwierigkeiten

    kann ich den TS3 problemlos ansteuern sogar mit vorheriger Prüfung ob das Fenster aktiv ist wenn nicht wird es

    im gleichen Atemzug mit dem Sendbefehl aktiviert und dann der Hotkey wie gewünscht ausgeführt.

    Es funktioniert also sogar in der Sandbox, was nicht immer so problemlos geht.

    Also am TS3 Client liegt es definitiv nicht, daß hier Befehle ignoriert werden.


    Spoiler anzeigen

    #RequireAdmin

    HotKeySet("{F5}", "F_Eins")

    HotKeySet("{F2}", "F_Ende")

    Opt("WinTitleMatchMode", 2)


    While 1

    Sleep(50)

    WEnd


    Func F_Eins()

    Local $AktWin = WinGetHandle("[Active]")

    If WinExists("TeamSpeak 3", "") And Not WinActive("TeamSpeak 3", "") Then

    WinActivate("TeamSpeak 3", "")

    ;Send("^+t") ;TS3 Aufnahme beenden Control+Shift+T

    Send("^+r") ;TS3 Aufnahme starten Control+Shift+R

    Else

    MsgBox(4096, "Titel", "Kein TeamSpeak-Fenster gefunden", 5)

    EndIf

    WinActivate($AktWin)

    EndFunc ;==>F_Eins


    Func F_Ende()

    Exit

    EndFunc ;==>F_Ende


    Das sollte auch bei dir funktionieren.

    Getestet mit Autoit Portable 3.3.14.2 in 64bit mit TeamSpeak 3 Client in 64 bit.

    Edit:

    Um Penner nicht ganz zu verwirren, habe ich die Kommentare entfernt und den gewünschten Befehl schon

    voreingestellt.

    Penner du kannst das Script auch nach meiner Vorlage mit anderen Hotkeys erweitern. Damit bist du flexibel ohne Ende.

    Die 2 Zeilen in denen die Variable $AktWin vorkommt, kannst du auch weglassen, falls du nach Befehlsende

    im TeamSpeak-Fenster bleiben willst.

    Du brauchst nicht mehrere Programme, dieses Script und TeamSpeak Client genügen.

    8 Mal editiert, zuletzt von Tuxedo (9. Juni 2019 um 12:55) aus folgendem Grund: Ergänzung

  • Moment... "Avidemux" ?
    Ich nehme direkt mit ts 3 auf damit es sichtbar ist und so jeder weiß das aufgenommen wird. Ich möchte das nicht über 3 software lösen.

    Das Fenster in den vordergrund haben wir auch geschafft aber ich konnte das ts fenster an sich nicht steuern.

    das war solange blokiert bis ich ts 3 geschlossen habe dann gingen die scripte. Ich habe das jetzt über globale Hotkeys Gelöst die funktionieren solange das Ts 3 fenster nicht aktiv ist.

  • Ich habe mir daraus ne fernbedienung gebraten um die aufnahme von einem anderen rechner starten/Beenden zu können.

    Das programm ist kurz dreckig und hat keine fehlerbehandlung.

    Der Client/Fernsteuernde Pc:

    Der Server/Aufnehmende Pc:

    Einmal editiert, zuletzt von Penner (11. Juni 2019 um 01:08) aus folgendem Grund: Scipt Aktualisiert

  • Die Funktionen ts_start() / ts_stop() ergeben für mich keinen Sinn - du erzeugst dort eine GUI, sendest "{f9}" bzw. "{f8}" an diese, und killst sie dann aber sofort... was soll das Send bewirken?

    GUICreate liefert bei Erfolg übrigens ein Handle und keine ID, richtig wäre also:

    Local $h2 = GUICreate("", 298, 91)

    Und das WinActivate($id2) / WinActivate($id1) kannst du dir auch sparen, denn nach dem Erstellen sind die eh aktiv.

    Habe auch mal eben ein dirty Testscript geschrieben... und das funktioniert.

    Einmal editiert, zuletzt von Bitnugger (10. Juni 2019 um 20:55)

  • Was hast du eingebunden/definiert damit das geht? Dein Code lässt sich bei mir nicht Compelieren.

    Und ja Ts 3 war bei dem versuch geöffnet.

    Code
    >"D:\Autoit\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\Penner\Desktop\AutoIt v3 Script (neu).au3"    
    "C:\Users\Penner\Desktop\AutoIt v3 Script (neu).au3" (5) : ==> Variable used without being declared.:
    If $aWinList[0][0] Then $hTS3 = $aWinList[$i][1]
    If $aWinList[0][0] Then $hTS3 = $aWinList[^ ERROR
    >Exit code: 1    Time: 0.04838
  • Penner !

    $i ist in diesem Kontext nicht deklariert :  If $aWinList[0][0] Then $hTS3 = $aWinList[$i][1] 

    Lass' Dir mal alle (sofern vorhanden) WinList-Einträge als Array anzeigen und poste das Ergebnis :

    Code
    #include <Array.au3> ; *** nur zur Anzeige
    Global $aWinList = WinList('[CLASS:Qt5QWindowIcon]')
    _ArrayDisplay($aWinList, "Qt5Q-Windows", Default, Default, Default, "Title|Handle")

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (10. Juni 2019 um 16:59)

  • So ich habe das Script mal getestet und wie bei meinen vorherigen test wird Send vom Ts 3 Clienten ignoriert. Alles was das Script bei mir macht ist Teamspeak in den vordergrund rücken. Aufnahme Startet und stoppt nicht.
    MFG Penner

  • Hi Penner !

    Wie sieht denn das Array aus, wenn Du das Skript aus Beitrag 28 laufen läßt ? (Screenshot posten)

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Zu deinen Anmerkungen:

    Die Funktionen ts_start() / ts_stop() ergeben für mich keinen Sinn - du erzeugst dort eine GUI, sendest "{f9}" bzw. "{f8}" an diese, und killst sie dann aber sofort... was soll das Send bewirken?

    Das send F8 / F9 sind beim Teamspeak globale hotkeys die ich zum aufnahme starten/stoppen eingerichtet habe.

    Mit den gui's habe ich nochmal geschaut die machen tatsächlich keinen unterschied. (können somit weg.)

    Ts 3 muss damit das script funktioniert im hintergrund sein (offendes aber nicht markiertes fenster).

    Wenn ich ein gui erstelle ändert das bei mir nicht das das Ts 3 Fenster im vordergrund ist.
    Beim handle / id problem hast du vermutlich recht ist ne schlechte angewohnheit meinerseits.

    MFG Penner