Добрый день! Оценил вашу библиотеку, здорово вышло, очень полезная...Щас пытаюсь на ее основе накодить робота. Интересен еще тот факт, что программно запускается экспорт DDE в квике. Очень интересно, как это реализовано, если есть возможность, то просьба дать исходник...
Заранее спасибо и огромный вам респект!
Kommentare (9)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
А в чем проблема просто использовать библиотеку? Нет каких-то возможностей?
Да нет, все хватает, все отлично...Это так сказать для собственного развития, интересно, как это реализовано...или если есть возможно, то пожалуйста поделитесь ссылкой, где об этом можно почитать.
Да без проблем. Хоть конкурента пишите =) Вот ссылка
http://msdn.microsoft.com/en-us/library/ms632590%28VS.85%29.aspx
Еще раз здравствуйте! Я тут написал утилиту на 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);
Просьба помочь, а то уже третий день с этими кнопками маюсь...
С этим надо разбираться. А времени свободного сейчас нет катастрофически (хотя когда оно бывает). Лучше задать на программерском форуме вопрос. Или ждите, когда я освобожусь (думаю, после середины след. недели).
Да мне объяснять не надо..мне бы только кусок кода, где в вашей библиотеке идет нажатие клавиш ctrl+L, очень бы помогли этим.
QuikTrader.StardDde =)
А если без шуток, то опять же, нужно влазить в код, открывать исходник, смотреть, где оно там. Это время, которое я берегу для новой версии. Тут не все так просто. Это в Вашем примере все строчки идут друг за другом. А в чуть сложных программах появляется инкапсуляция, абстракция, и все может быть размыто на несколько сотен строк. Весь код отдавать по этическим соображениям не могу - на S# построены другие проекты, где я не единственный автор. Библиотека такая, какая она есть сейчас (и такая останется). Бесплатная, без ограничений в использовании, но с закрытым кодом.
SendMessage это я так понимаю interop? Попробуй тогда keybd_event - она попроще в использовании.
Вот реализация, но почему то она тоже не работает, хотя фокус на таблице.
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("") - выставление новой заявки, а вот сочетание Ctrl+L SendKeys.Send("^L") не хочет(((