Alex Lable
|
Дата: 02.02.2010
Да нет, все хватает, все отлично...Это так сказать для собственного развития, интересно, как это реализовано...или если есть возможно, то пожалуйста поделитесь ссылкой, где об этом можно почитать.
|
Alex Lable
|
Дата: 05.02.2010
Еще раз здравствуйте! Я тут написал утилиту на QPILE по обработке текущих данных, которые уже представлены мне в нужном виде, получилось что-то похожее на таблицу текущих параметров, но видоизмененная...Теперь, при запуске робота нужно данные выводить в DDE, пытаюсь смоделировать сочетание клавиш ctrl+L. Получаю дескриптор окна утилиты, перевожу фокус на него, потом получаю дескриптор таблицы,, нажимаю программно сочетание клавиш, но все равно не работает:
IntPtr lK = (IntPtr)17; //код CTRL IntPtr rK = (IntPtr)65; //код L
retValue = SendMessage(hWnd, WM_KEYDOWN, IntPtr.Zero, IntPtr.Zero); retValue = SendMessage(hWnd, WM_CHAR, lK, IntPtr.Zero); retValue = SendMessage(hWnd, WM_KEYDOWN, IntPtr.Zero, IntPtr.Zero); retValue = SendMessage(hWnd, WM_CHAR, rK, IntPtr.Zero); retValue = SendMessage(hWnd, WM_KEYUP, lK, IntPtr.Zero); retValue = SendMessage(hWnd, WM_KEYUP, lK, IntPtr.Zero);
Просьба помочь, а то уже третий день с этими кнопками маюсь...
|
Mikhail Sukhov
|
Дата: 06.02.2010
QuikTrader.StardDde =)
А если без шуток, то опять же, нужно влазить в код, открывать исходник, смотреть, где оно там. Это время, которое я берегу для новой версии. Тут не все так просто. Это в Вашем примере все строчки идут друг за другом. А в чуть сложных программах появляется инкапсуляция, абстракция, и все может быть размыто на несколько сотен строк. Весь код отдавать по этическим соображениям не могу - на S# построены другие проекты, где я не единственный автор. Библиотека такая, какая она есть сейчас (и такая останется). Бесплатная, без ограничений в использовании, но с закрытым кодом.
|
Alex Lable
|
Дата: 09.02.2010
Вот реализация, но почему то она тоже не работает, хотя фокус на таблице.
keybd_event(VK_CONTROL, 0, 0, 0); keybd_event((byte)'L', 0, 0, 0); keybd_event((byte)'L', 0, WM_KEYUP, 0); keybd_event(VK_CONTROL, 0, WM_KEYUP, 0);
Попробовал также чере SendKeys.Send(), для таблицы текущих параметров работает только SendKeys.Send("{F2}") - выставление новой заявки, а вот сочетание Ctrl+L SendKeys.Send("^L") не хочет(((
|