Отправка горячих клавиш в Центрифугу
Написал незатейливую программу для обработки резистивных кнопок (на входе значения АЦП с МК). В текстовые редакторы отправляет все правильно. А вот центрифуга никак не реагирует.
PHP код:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
Process[] processes = Process.GetProcessesByName("centrafuse");
foreach (Process proc in processes)
{
SetForegroundWindow(proc.MainWindowHandle);
}
//Thread.Sleep(100);
SendKeys.SendWait("R");
Так тоже пробовал:
PHP код:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_SHOW = 5;
[DllImport("user32.dll")]
static extern IntPtr SetFocus(IntPtr hWnd);
IntPtr h = FindWindow(null, "centrafuse");
ShowWindow(h, SW_SHOW);
SetForegroundWindow(h);
SetFocus(h);
SendKeys.SendWait("R");
Предполагаю, что проблема в обращении к окну.
Подскажите, пожалуйста, как правильно сделать?
p/s/ знаю, что есть готовый софт для подобных задач, но обмен с МК на ацп не заканчивается. Это только часть.
Re: Отправка горячих клавиш в Центрифугу
может быть посмотреть в сторону VUSB?
сделать HID Keyboard для передачи кнопок, а остальное передавать/принимать через сом порт
Re: Отправка горячих клавиш в Центрифугу
Gorynch, спасибо. Тоже об этом думал. Однако планируется ft232 для связи с компом, а она под HID не шьется.
В итоге остановился на функции InputSimulator.SimulateKeyPress и библиотеке http://inputsimulator.codeplex.com/
Просто я не с той стороны пытался подойти к вопросу и определял работоспособность по тому, воспринимает ли центрифуга символы при настройке клавиш. В итоге заранее настроил hotkeys и отправляю соответствующие символы. Полет нормальный.
p/s/ Зато разобрался))
Re: Отправка горячих клавиш в Центрифугу
Нее, я имел ввиду сделать прямо из МК HID Keyboard - для этого нужно 2 ножки, одна из которых внешнее прерывание + небольшой код (правда используется один ТС) и стандартная библиотека V-USB. Вся остальная переферия остаётся, соот-но можно использовать встроенный UART для связи с компом. При таком раскладе на ПК не нужна никакая прога для отслежеивания нажатий.
Я просто как раз таким образом подключил iDrive BMW к компу. Чуть позже оформлю и выложу. Если интересует, есть работаюая прошивка под mega32 на С - могу дать