Nachricht senden bei nicht fokussiertem Fenster (ICQ)

  • Hallo an alle,

    bin neu im Forum und hab aus Interesse ein bisschen mit AutoIt gearbeitet, bei meinem aktuellen Projekt hänge ich allerdings seit ein paar Tagen fest.

    Grundsituation:
    Ich und meine Freundin haben tagsüber zu tun, abends will dann oftmals einer spielen, der andere chatten.
    Da ich für mein Spiel jedoch nur ein paar Zahlentasten und die Maus benötige, dachte ich mir, man kann ja einfach die anderen Tasten ins ICQ-Fenster umleiten. An sich klappt das auch ganz gut, ich habe eine kleine Funktion geschrieben, die die Fensterinformationen per Knopfdruck auslesen kann und das Schreiben funktioniert auch über einfache HotKeySets nach dem Prinzip:

    [autoit]


    HotKeySet("{a}","_a")

    [/autoit][autoit][/autoit][autoit]

    Func _a()
    ControlSend($Fenster, "", $Handle,"{a}")
    while 1
    Sleep(10000)
    WEnd
    EndFunc

    [/autoit]

    So kann meine Freundin also ins nicht fokussierte ICQ-Fenster schreiben, während ich daddel. :)
    Das Problem ist nun aber, dass das Senden nicht funktioniert...
    Normalerweise kann man bei ICQ ja per Entertaste die Nachricht verschicken.
    Hat das Fenster aber keinen Fokus so wird nur ein Zeilenumbruch ausgeführt und nichts gesendet. :huh:

    Hatte mir überlegt, dass man vielleicht einen Mausklick ans Fenster senden könnte, denn neben dem Chat gibt es ja einen "Senden" Button, den ich mittels Controlclick ansprechen wollte, jedoch sind die einzigen Elemente mit Controlinformationen der Chat und die Texteingabe, laut dem InfoWindow...
    Und ohne Control-ID bekomme ich Controlsend nicht dazu, an die gewünschte Position zu klicken.

    Meine aktuelle (Not-)Lösung ist, dem ICQ-Fenster bei Anschlag der Entertaste kurz den Fokus zu geben, Enter zu senden und danach wieder aufs ursprüngliche Fenster zurückzuspringen. Dies dauert jedoch ca. eine halbe Sekunde und in dem Zeitpunkt kommt es öfter vor, dass genau dort ein Mausklick stattfindet, der das ganze durcheinanderbringt (Idee beim Schreiben: Mausinput blocken möglich?).

    Meine Frage ist also, gibt es eine elegantere Lösung bzw. einen Lösungsansatz, Tips oder ähnliches, womit ihr mir dienen könntet? Möchte das Ganze zu einem befriedigenden Abschluss bringen, damit ich mich meinem nächsten Projekt widmen kann (Ein Skript, welches Minesweeper lösen kann! :D )

    MfG DD

  • Nächstes mal benutz bitte Google vorher. ;)

    Denn dann wärst du ganz schnell über diese UDF gestoßen: http://www.autoitscript.com/forum/topic/42…r-toc-protocol/
    Diese wird dir bestimmt weiterhelfen.

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Hab ich jetzt was falsch verstanden oder du PainTain?

    Soweit ich das rauslese sucht der TE nach einer Möglichkeit gleichzeitig an einer Tastatur zu spielen und zu chatten.
    Dein Post bezieht sich ja auf einen neuen Messenger.
    Nach sowas sucht er ja gar nicht

  • Naja, man kann hier jetzt für beide Seite plädieren:

    @Q-Connect:
    Ja, der TE sucht zwar so etwas, allerdings ließe sich das mit der Toc-Library leichter erledigen, da man so nicht mehr den nervigen ICQ-Messenger dazwischen hat, sondern direkt mit dem Server (Halt über das Toc/Oscar-Protokoll) kommunizieren kann.^^

    PainTain:
    Bei den ganzen Protokolländerungen, die bei ICQ am laufenden Band durchgeführt werden, funktioniert diese UDF (Meines Wissens nach) nicht mehr.^^

    Allerdings ist das generell ein Streitpunkt, da ICQ in den AGBs ausdrücklich steht, dass nur der von ICQ vertriebene ICQ-Client zur Kommunikation genutzt werden darf...

    lg

  • ControlClick lässt sich auch ohne Infos zu den Controls verwenden. Man lässt den parameter für die ControlID leer und setzt die Parameter X und Y. Dann darf sich das Fenster jedoch nicht in der Größe verändern.

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • Hey, eventuell könnte da _SendMessage() helfen.
    Bin aber nicht zu 100% sicher...

    Hatte damals ebenfalls ein ähnliches Problem...
    Hab noch im Bot Forum ein Thread dazu.

    Das sollte sich doch garantiert irgendwie umschreiben lassen um es in ICQ nutzbar zu machen.
    Melde mich dann wenn ich was hab. Nur jetzt so als kleiner "Richtungs stubser"...