управление окнами терминала QUIK

управление окнами терминала QUIK
Atom
2/2/2010
Alex Lable


Добрый день! Оценил вашу библиотеку, здорово вышло, очень
полезная...Щас пытаюсь на ее основе накодить робота. Интересен еще тот
факт, что программно запускается экспорт DDE в квике. Очень интересно,
как это реализовано, если есть возможность, то просьба дать
исходник...

Заранее спасибо и огромный вам респект!

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 2/2/2010
Reply


А в чем проблема просто использовать библиотеку? Нет каких-то
возможностей?

Thanks:

Alex Lable

Avatar
Date: 2/2/2010
Reply


Да нет, все хватает, все отлично...Это так сказать для собственного
развития, интересно, как это реализовано...или если есть возможно, то
пожалуйста поделитесь ссылкой, где об этом можно почитать.
Thanks:

Mikhail Sukhov

Avatar
Date: 2/2/2010
Reply


Да без проблем. Хоть конкурента пишите =) Вот ссылка

http://msdn.microsoft.com/en-us/library/ms632590%28VS.85%29.aspx


Thanks:

Alex Lable

Avatar
Date: 2/5/2010
Reply


Еще раз здравствуйте!
Я тут написал утилиту на 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);

Просьба помочь, а то уже третий день с этими кнопками маюсь...

Thanks:

Mikhail Sukhov

Avatar
Date: 2/5/2010
Reply


С этим надо разбираться. А времени свободного сейчас нет
катастрофически (хотя когда оно бывает). Лучше задать на
программерском форуме вопрос. Или ждите, когда я освобожусь (думаю,
после середины след. недели).

Thanks:

Alex Lable

Avatar
Date: 2/5/2010
Reply


Да мне объяснять не надо..мне бы только кусок кода, где в вашей
библиотеке идет нажатие клавиш ctrl+L, очень бы помогли этим.
Thanks:

Mikhail Sukhov

Avatar
Date: 2/6/2010
Reply


QuikTrader.StardDde =)

А если без шуток, то опять же, нужно влазить в код, открывать
исходник, смотреть, где оно там. Это время, которое я берегу для новой
версии. Тут не все так просто. Это в Вашем примере все строчки идут
друг за другом. А в чуть сложных программах появляется инкапсуляция,
абстракция, и все может быть размыто на несколько сотен строк. Весь
код отдавать по этическим соображениям не могу - на S# построены
другие проекты, где я не единственный автор. Библиотека такая, какая
она есть сейчас (и такая останется). Бесплатная, без ограничений в
использовании, но с закрытым кодом.

Thanks:

Igor Sukhov

Avatar
Date: 2/8/2010
Reply


SendMessage это я так понимаю interop? Попробуй тогда keybd_event -
она попроще в использовании.

Thanks:

Alex Lable

Avatar
Date: 2/9/2010
Reply


Вот реализация, но почему то она тоже не работает, хотя фокус на
таблице.

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") не хочет(((

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy