[DllImport("user32.dll")]
static extern short VkKeyScan(char ch);
[StructLayout( LayoutKind.Explicit )]
public struct INPUT
{
[FieldOffset( 0 )]
public int type;
[FieldOffset( 4 )]
public KEYBDINPUT ki;
}
[StructLayout( LayoutKind.Sequential )]
public struct KEYBDINPUT
{
public ushort wVk;
public ushort wScan;
public uint dwFlags;
public uint time;
public IntPtr dwExtraInfo;
}
None.
Please add some!
void Main () {
string text = "abc123"; // text we will send
Process notepad = Process.Start( "notepad" ); // launch notepad, we'll write into it
Thread.Sleep( 2000 ); //give notepad some time to launch
SetForegroundWindow( notepad.MainWindowHandle );
short key = 0;
INPUT input = new INPUT();
input.type = INPUT_KEYBOARD;
input.ki = new KEYBDINPUT();
input.ki.dwExtraInfo = GetMessageExtraInfo();
input.ki.dwFlags = 0;
input.ki.time = 0;
input.ki.wScan = 0;
foreach ( char c in text ) {
key = VkKeyScan( c );
input.ki.wVk = (ushort) key;
SendInput( 1, ref input, Marshal.SizeOf( input ) );
}
}
[DllImport( "user32.dll" )]
public static extern bool SetForegroundWindow (IntPtr hWnd);
[DllImport( "user32.dll", SetLastError = true )]
public static extern uint SendInput (uint nInputs, ref INPUT pInputs, int cbSize);
public const int INPUT_KEYBOARD = 1;
[DllImport( "user32.dll" )]
public static extern IntPtr GetMessageExtraInfo ();
Do you know one? Please contribute it!