ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1753
1753
EMPFEHLEN
-
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
-
01.04.08 10:48 #2
- 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
-
den code kann ich so wie er ist in vb2008 einfügen?
-
02.04.08 14:31 #4
- 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
-
Tastendruck Simulieren?
Von piätch im Forum C/C++Antworten: 2Letzter Beitrag: 08.10.10, 20:26 -
Tastendruck Simulieren
Von cobfreaky im Forum Visual Basic 6.0Antworten: 21Letzter Beitrag: 24.11.09, 18:19 -
Tastendruck simulieren
Von ZeRoXX im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 05.09.08, 13:54 -
Tastendruck simulieren
Von letsgo2u im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 09.03.08, 12:16 -
Tastendruck Simulieren
Von gerd87 im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 07.10.05, 12:26





Zitieren
Login





