kostenloser Webspace werbefrei: lima-city


C# Tasten drücken lassen

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    demonic-legends

    Kostenloser Webspace von demonic-legends

    demonic-legends hat kostenlosen Webspace.

    Hallo,
    ich habe vor ein paar Wochen angefangen C# zu lernen und benutze als Editor VC# 2010.

    Nun möchte ich ein Programm schreiben, das die Tasten 1 bis 4 auf meiner Tastatur drückt. Allerdings kann dazu nichts im Internet finden.

    Ist das denn möglich mit C#?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. heroes-of-legends

    heroes-of-legends hat kostenlosen Webspace.

    Du solltest vielleicht mal zuvor definieren was du machen möchtest. Willst du die Eingaben in deiner eigenen UI oder in einem anderem Fenster machen. Wenn es ein anderes Fenster ist, um was für ein Fenster handelt es sich (Spiel, Browser, etc.).

    Da ich mal grundsätzlich davon ausgehe, das das Ziel ein anderes Fenster ist verweise ich dich mal auf pinvoke. Es sei aber gesagt, das es sich hier um keine Anfänger API handelt.

    lg
    Doomdrake

    Beitrag zuletzt geändert: 13.6.2011 15:35:26 von heroes-of-legends
  4. Autor dieses Themas

    demonic-legends

    Kostenloser Webspace von demonic-legends

    demonic-legends hat kostenlosen Webspace.

    Jap, wäre für ein Spiel gedacht. Allerdings ein sehr altes Offline-Spiel um sowas zu üben...
  5. Hallo demonic-legends,

    eine Möglichkeit, mit der Du Tastatureingaben an das aktive Fenster sende kannst ist die System.Windows.Form.SendKeys-Klasse.
    Das sieht dann z.B. so aus:
    using System;
    using System.Windows.Forms;
    using System.Threading;
    
    namespace Test
    {
        class Program
        {
            public static void Main(string[] args)
            {
                Thread.Sleep(5000);
                SendKeys.SendWait("1");
                SendKeys.SendWait("2");
                SendKeys.SendWait("{Enter}");
                SendKeys.SendWait("3");
                SendKeys.SendWait("4");
                SendKeys.SendWait("{Enter}");
            }
        }
    }
    Die 5 Sekunden Wartezeit sind dazu da, dass Du z.B. einen Texteditor in den Vordergrund bringen kannst, um das Ergebnis zu bewundern:biggrin:
  6. Autor dieses Themas

    demonic-legends

    Kostenloser Webspace von demonic-legends

    demonic-legends hat kostenlosen Webspace.

    darkpandemic schrieb:
    Hallo demonic-legends,

    eine Möglichkeit, mit der Du Tastatureingaben an das aktive Fenster sende kannst ist die System.Windows.Form.SendKeys-Klasse.
    Das sieht dann z.B. so aus:
    using System;
    using System.Windows.Forms;
    using System.Threading;
    
    namespace Test
    {
        class Program
        {
            public static void Main(string[] args)
            {
                Thread.Sleep(5000);
                SendKeys.SendWait("1");
                SendKeys.SendWait("2");
                SendKeys.SendWait("{Enter}");
                SendKeys.SendWait("3");
                SendKeys.SendWait("4");
                SendKeys.SendWait("{Enter}");
            }
        }
    }
    Die 5 Sekunden Wartezeit sind dazu da, dass Du z.B. einen Texteditor in den Vordergrund bringen kannst, um das Ergebnis zu bewundern:biggrin:


    Das ist hilfreich danke :)

    Wie wäre dann z.B. der Befehl um die Linke Maustaste drücken zu lassen und eine der Pfeiltasten?

    Beitrag zuletzt geändert: 28.6.2011 22:11:44 von demonic-legends
  7. Hallo demonic-legends,

    die Pfeiltasten kannst Du folgendermaßen drücken lassen:
    SendKeys.SendWait("{LEFT}");
    SendKeys.SendWait("{RIGHT}");
    SendKeys.SendWait("{UP}");
    SendKeys.SendWait("{DOWN}");
    Eine vollständige Liste der Tasten findest Du hier.
    Das mit der Maus geht leider mit .Net-Bordmitteln nicht. Dazu musst Du auf die Win32 API zurückgreifen. Hier ist ein Beispiel dazu:
    http://stackoverflow.com/questions/5965708/send-keyboard-and-mouse-events-to-directx-application-in-c
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!