Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SendInput не работает с клавиатурой, смышью - норм, с клавой - хочубей 
:(
    Опции темы
Ratman
Дата 15.7.2009, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.8.2007
Где: Минск

Репутация: нет
Всего: нет



Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1 {

    public struct KEYBDINPUT {
        //Перечитал много разных доков, примеров и форумов, перепробовал много разных типов данных (short, byte, int и пр.)
        public ushort wVk;
        public ushort wScan;
        public uint dwFlags;
        public long time;
        public IntPtr dwExtraInfo;
    };
    public struct INPUT {
        public uint type;
        public KEYBDINPUT ki;
    };
    public enum VK: ushort {
        VK_LWIN=0x5B, //Список кодов клавишь взят с www.pinvoke.net, он длинный, оставим только эту
    }
    
    class Program {
        [DllImport("user32.dll", SetLastError=true)]
        static extern uint SendInput(uint nInputs, INPUT pInputs, int cbSize);        

            
        static void Main(string[] args) {
            System.Threading.Thread.Sleep(3000);

            uint intReturn;
            INPUT structInput;
            structInput = new INPUT();
            structInput.type = 1;
            structInput.ki.wScan = 0;
            structInput.ki.time = 0;
            structInput.ki.dwFlags = 0;

            structInput.ki.wVk = 0x5B;
            intReturn = SendInput(1, structInput, Marshal.SizeOf(structInput));

            structInput.ki.dwFlags = 2;
            intReturn = SendInput(1, structInput, Marshal.SizeOf(structInput));

            Console.WriteLine(intReturn);
            Console.ReadLine();
        }
    }
}



sendinput возвращает стабильно 0 (то есть не срабатывает ниразу), сколько вариантов я не испробовал.
PM MAIL   Вверх
Ratman
Дата 17.7.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 18.8.2007
Где: Минск

Репутация: нет
Всего: нет



вот кстати в Java есть такой замечательный класс - Robot: "This class is used to generate native system input events"
в С# есть его аналог? или чем еще можно воспользоваться кроме SendInput чтобы сгенерировать ввод с клавиатуры?

да и последний вопрос: с точки зрения ОСи или приложений - есть разница между вводом с реальных устройств или сгенерированым программно?
PM MAIL   Вверх
diadiavova
Дата 17.7.2009, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



System.Windows.Forms.SendKeys


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1005 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.