управление окнами терминала 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("") - выставление новой заявки, а вот сочетание Ctrl+L SendKeys.Send("^L") не хочет(((

Thanks:


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

loading
clippy