Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.24;
Скачать: CL | DM;

Вниз

Handle ActiveX объекта   Найти похожие ветки 

 
voha ©   (2011-01-18 09:57) [0]

Доброго времени суток!

Я полный чайник в делфи, поэтому прошу помощи у гуру.
Пишу activeX для 1С, который отслеживает изменения буфера обмена windows через функцию SetClipboardViewer(HWnd). Но в этой функции есть параметр - handle окна, которое регистрируется в системе для получений сообщений буфера обмена. Как для activeX получить значение handle, которое присвоила система?

Спасибо.


 
И. Павел ©   (2011-01-18 10:07) [1]

Наверное, можно в ActiveX создать какое-нибудь окно (или просто создать ActiveX на основе формы) и использовать дескриптор этого окна. А в обработчике сообщения wm_DrawClipboard поместить функционал.


 
И. Павел ©   (2011-01-18 10:08) [2]

На дельфи с окнами все просто.
Но на самый крайний случай всегда есть API: http://msdn.microsoft.com/en-us/library/ms632679%28v=vs.85%29.aspx .


 
vvoha   (2011-01-18 10:26) [3]

Спасибо. Попробую переделать ActiveX на основе формы, если знаний хватит :).


 
vvoha   (2011-01-18 11:16) [4]

При попытке получить handle формы 1С валится.


     Handle:=Form2.Handle;


 
И. Павел ©   (2011-01-18 11:23) [5]

Что такое Form2?
Это форма, на основе которой создана ActiveX? Может быть это другая форма, и она еще не создана (Form2 = nil)?
Форма создается так:

var frm: TForm;
begin
 frm := TForm.Create(nil);
 ShowMessage(IntToStr(frm.Handle));


 
vvoha   (2011-01-18 12:02) [6]

я визуально создал форму и перенес весь листинг в нее.


 
vvoha   (2011-01-18 12:21) [7]


var frm: TForm;
begin
frm := TForm.Create(nil);
ShowMessage(IntToStr(frm.Handle));


где лучше разместить этот код?
Пропобовал в function AddInObject.Init(pConnection: IDispatch): HResult; stdcall;
но пхоже суда 1с обращается несколько раз при запуске - получается каждый создается форма и новый handle


 
Плохиш ©   (2011-01-18 12:30) [8]

Я всё-таки посоветую нанять программиста.


 
vvoha   (2011-01-18 13:58) [9]

мне было бы проще :)
но не факт, то что этот activeX будет использоваться. проблема в том, чтобы пробросить отсканированный штрих код в терминальную сессию 1С запущенную на терминале сбора данных (ТСД). терминал может эмулировать клавиатуру либо бросать в буфер обмена. эмуляцию забраковал, для 1С не самый лучшый вариант. хочу попробовать с буфером.



Страницы: 1 вся ветка

Текущий архив: 2011.04.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1294608594
Юрий
2011-01-10 00:29
2011.04.24
С днем рождения ! 10 января 2011 понедельник


2-1295504959
Novi4ok1992
2011-01-20 09:29
2011.04.24
Выбор языка интерфейса в программе


2-1295347887
Mops
2011-01-18 13:51
2011.04.24
Использование интерфейсов


15-1293095836
Павел Калугин
2010-12-23 12:17
2011.04.24
Встретим новый год в Нижнем Новгороде?


15-1294522195
Юрий
2011-01-09 00:29
2011.04.24
С днем рождения ! 9 января 2011 воскресенье