Bessere Methode als SendWait? (Tastendruck/Maustklick an eine andere Anwendung senden)

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Bessere Methode als SendWait? (Tastendruck/Maustklick an eine andere Anwendung senden)

    Hallo

    Ich möchte gerne einen Tastendruck / Mausklick an eine ausgewählte Anwendung senden in einen Intervall von 10 Millisekunden (100 die Sekunde).
    Mit SendWait habe ich es bereits versucht, allerdings hängt sich nach wenigen Sekunden mein Maus / Tastatur auf und Windows scheint aus dem nichts alles mögliche zu markieren, obwohl meine Anwendung bereits "gekillt" wurde.

    Ich habe es mit einen Async Timer und Form Timer versucht.



    Könnt Ihr mit weiterhelfen? :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Hallo,

    schon versucht dass NET-Framework auf 3.0 hochzustellen, da diese aktualisiert wurde.

    "MSDN-Eintrag"

    "MSDN" schrieb:


    SendKeys class has been updated for the .NET Framework 3.0 to enable its use in applications that run on Windows Vista.">Die SendKeys Klasse wurde aktualisiert für .NET Framework 3.0 ermöglichen die Verwendung in Anwendungen, die unter Windows Vista ausgeführt. Die
    verbesserte Sicherheit von Windows Vista (als Benutzerkontensteuerung
    oder UAC bezeichnet) verhindert, dass die vorherige Implementierung
    nicht erwartungsgemäß.

    SendKeys class is susceptible to timing issues, which some developers have had to work around.">Die SendKeys -Klasse ist anfällig für Probleme bei der zeitlichen Steuerung, die einige Entwickler umgehen mussten. Die
    aktualisierte Implementierung ist immer noch anfällig für Probleme mit
    den Zeitabläufen, aber etwas schneller und erfordert möglicherweise
    Änderungen der Problemumgehungen. SendKeys class tries to use the previous implementation first, and if that fails, uses the new implementation.">Die SendKeys Klasse versucht, zuerst die vorherige Implementierung zu verwenden, und schlägt dies fehl, die neue Implementierung verwendet. SendKeys class may behave differently on different operating systems.">Demzufolge die SendKeys Klasse möglicherweise unter verschiedenen Betriebssystemen unterschiedlich Verhalten. SendKeys class uses the new implementation, the SendWait method will not wait for messages to be processed when they are sent to another process.">Darüber hinaus bei der SendKeys -Klasse verwendet die neue Implementierung der SendWait Methode wartet nicht auf Nachrichten verarbeitet werden, wenn sie an einen anderen Prozess gesendet werden.

    SendKeys class to use the new implementation by adding the following application setting to your app.config file.">Wenn Ihre Anwendung auf ein einheitliches Verhalten unabhängig vom Betriebssystem abhängig ist, können Sie erzwingen die SendKeys Klasse, die neue Implementierung zu verwenden, indem Sie der app.config-Datei die folgende Anwendungseinstellung hinzufügen.

    <appSettings>


    <add key="SendKeys" value="SendInput"/>


    </appSettings>


    SendKeys class to use the previous implementation, use the value "JournalHook" instead.">Erzwingen der SendKeys -Klasse die vorherige Implementierung zu verwenden, verwenden Sie den Wert "JournalHook" stattdessen.

    msdn.microsoft.com/de-de/libra…s.sendwait(v=vs.110).aspx

    (Irgendwie funktionert ezwas mit den deutschen Text kopieren nicht ganz)

    Was ist das denn für eine Anwendung? Soll das ein Spammer für irgendeinen Chat werden oder was genau hast du vor. Geht es um ein Spiel?
    Falls sich in der Zielanwendung nicht mal was tut würde ich es mal mittels API probieren. Evtl. keybd_event oder SendMessages?
    Für einen "Spammer" oder ähnliches, brauche ich das nicht :)
    Ich experimentiere mit der Physik in Blender und der Unreal Engine und kicke mit schnellen Mausklicks oder Tastendrucks einige Objekte durch die Gegend.

    Mit keybd_event / mouse_event hatte ich es auch schon versucht, selbes Resultat.


    Jetzt scheint es zu funktionieren :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    Vultrax schrieb:

    in einen Intervall von 10 Millisekunden
    Wen oder was willst Du lahmlegen?
    Wie schnell könntest Du das per Tastatur?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!