tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1753
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    letsgo2u letsgo2u ist offline Grünschnabel
    Registriert seit
    Mar 2008
    Beiträge
    4
    Ja wie man hoffendlich aus dem topic erkennen kann:
    ich will DirectInput vorgaukeln das eine Tastegedrückt wurde, obwohl das nicht stimmt.

    Wie mach ich das. ich hab da ne theorie: ich muss den Tastaturcode in den buffer der Tastatur schreiben, damit Directinput denkt, das die taste gedrückt wurde.
    nur wie mach ich das?

    wäre für hilfe sehr dankbar!

    ich arbeite mit VB 2008 express und .Net 3.5
     

  2. #2
    martinpriebe martinpriebe ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    125
    Einfacher gehts mir SendInput ...

    [DllImport("user32.dll", SetLastError = true)]
    static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);

    [StructLayout(LayoutKind.Explicit)]
    struct INPUT
    {
    [FieldOffset(0)]
    public int type;
    [FieldOffset(4)]
    public MOUSEINPUT mi;
    [FieldOffset(4)]
    public KEYBDINPUT ki;
    [FieldOffset(4)]
    public HARDWAREINPUT hi;
    }
    [StructLayout(LayoutKind.Sequential)]
    struct MOUSEINPUT
    {
    public int dx;
    public int dy;
    public uint mouseData;
    public uint dwFlags;
    public uint time;
    public IntPtr dwExtraInfo;
    }

    [StructLayout(LayoutKind.Sequential)]
    struct KEYBDINPUT
    {
    ushort wVk;
    ushort wScan;
    uint dwFlags;
    uint time;
    IntPtr dwExtraInfo;
    }
    [StructLayout(LayoutKind.Sequential)]
    struct HARDWAREINPUT
    {
    uint uMsg;
    ushort wParamL;
    ushort wParamH;
    }

    const uint MOUSEEVENTF_MOVE = 0x0001;
    const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
    const uint MOUSEEVENTF_LEFTUP = 0x0004;
    const uint MOUSEEVENTF_RIGHTDOWN = 0x0008;
    const uint MOUSEEVENTF_RIGHTUP = 0x0010;
    const uint MOUSEEVENTF_MIDDLEDOWN = 0x0020;
    const uint MOUSEEVENTF_MIDDLEUP = 0x0040;
    const uint MOUSEEVENTF_XDOWN = 0x0080;
    const uint MOUSEEVENTF_XUP = 0x0100;
    const uint MOUSEEVENTF_WHEEL = 0x0800;
    const uint MOUSEEVENTF_VIRTUALDESK = 0x4000;
    const uint MOUSEEVENTF_ABSOLUTE = 0x8000;
    const int INPUT_MOUSE = 0;



    hoffe das hilft dir weiter ..


    mfg
    Martin
     

  3. #3
    letsgo2u letsgo2u ist offline Grünschnabel
    Registriert seit
    Mar 2008
    Beiträge
    4
    den code kann ich so wie er ist in vb2008 einfügen?
     

  4. #4
    martinpriebe martinpriebe ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    125
    keine ahnung - try it out

    habs mit C# gemacht. also ähnlich.

    mußt nur als using noch "using System.Runtime.InteropServices" hinzufügen.

    Ich habe Mausklicks simuliert.

    MOUSEINPUT m = new MOUSEINPUT();
    m.dx = x;
    m.dy = y;
    m.mouseData = 0;
    m.time = 0;
    m.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN;

    INPUT i = new INPUT();
    i.type = INPUT_MOUSE;
    i.mi = m;

    INPUT[] inputs = new INPUT[] { i };
    int isize = Marshal.SizeOf(i);
    SendInput(1, inputs, isize);

    Wie Tastatureingaben simuliert werden müßte ich mal schauen aber evt. kriegst du das auch selbst raus ..

    Und statt MOUSEINPUT generierst du KEYBDINPUT.
    Nur was du da übergeben mußt - müßtest du nachlesen.

    mfg
    Martin
     

Ähnliche Themen

  1. Tastendruck Simulieren?
    Von piätch im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 08.10.10, 20:26
  2. Tastendruck Simulieren
    Von cobfreaky im Forum Visual Basic 6.0
    Antworten: 21
    Letzter Beitrag: 24.11.09, 18:19
  3. Tastendruck simulieren
    Von ZeRoXX im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 05.09.08, 13:54
  4. Tastendruck simulieren
    Von letsgo2u im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 09.03.08, 12:16
  5. Tastendruck Simulieren
    Von gerd87 im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 07.10.05, 12:26