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

Вниз

как вставить в редактор WORD содержимое буфера   Найти похожие ветки 

 
Dema-X   (2004-11-24 06:27) [0]

WORD на мессагу wm_paste не реагирут хотя в блокнот вставка проиходит нормально
если же эмулировать нажатие клавиш типа CTRL+V или SHIFT+INS через keybd_event() то в блокнот вставляет опять нормально а в ворд раз 10 а то и больше в чем вся фигня так и не просеку?Как нормально вставить 1 раз.


 
YurikGL ©   (2004-11-24 07:09) [1]

Можно через ole

типа
wordapplication1.connect
WordApplication1.Selection.Paste


 
Dema-X   (2004-11-24 07:35) [2]

А ГДЕ ЭТО ole ВЗЯТЬ У МЕНЯ НЕТ НИКАКИХ ТИПОВ wordapplication1


 
YurikGL ©   (2004-11-24 07:37) [3]

Вкладка servers

Если быть точнее, то

WordApplication1.ConnectKind:=ckRunningInstance;
wordapplication1.connect;
WordApplication1.Selection.Paste;
wordapplication1.disconnect;


 
Dema-X   (2004-11-26 11:59) [4]

инвид метод пишет


 
TUser ©   (2004-11-26 12:48) [5]


> инвид метод пишет

Инвалид?


 
Dema-X   (2004-11-27 14:29) [6]

но инвалид


 
YurikGL ©   (2004-11-27 19:25) [7]


> Dema-X   (26.11.04 11:59) [4]
> инвид метод пишет


Во первых, на какую строчку, во вторых, а у тебя в это время ворд запущен? Документ какой-нибудь открыт? В буфере что-нибудь есть?


 
Dema-X   (2004-11-27 19:35) [8]

так точно YurikGL!Ворд запущен в ворде новый документ в буфере строка типа "ABCDEFG" которая прекрасно вставляется в блокнот ворд XP дельфи 7


 
YurikGL ©   (2004-11-27 19:56) [9]

Dema-X   (27.11.04 19:35) [8]

Так... удаляй эту  вордаппликейшн и пиши следующий код:


var
app:Variant;
....
Begin

try
app:=GetActiveOleObject("Word.Application");
app.selection.paste;
finally
 App:=Unassigned;
end;

End;


 
Dema-X   (2004-11-27 20:04) [10]

> YurikGL ©   (27.11.04 19:25) [7]
>
> > Dema-X   (26.11.04 11:59) [4]
> > инвид метод пишет
>
>
> Во первых, на какую строчку, во вторых, а у тебя в это время
> ворд запущен? Документ какой-нибудь открыт? В буфере что-нибудь
> есть?

пишет что прога вызвала исключение EINTFCASTERROR c сообщением интерфейс нот супорт то бишь не поддерживается.что делать?


 
Dema-X   (2004-11-27 20:06) [11]


> YurikGL ©   (27.11.04 19:56) [9]
> Dema-X   (27.11.04 19:35) [8]
>
> Так... удаляй эту  вордаппликейшн и пиши следующий код:

о рабит! а можно сделать так чтобы без привязки к ворду было то есть щёлкаю правой кнопкой в блокноте туда ставит щёлкаю в ворде в ворд ставит и т.п


 
YurikGL ©   (2004-11-27 20:20) [12]


> Dema-X   (27.11.04 20:06) [11]

А не проще из твоего приложения, кликаешь по клавише "Блокнот" - вставляет в блокнот, кликаешь по клавише "word" - вставляет во Ворд?


 
Dema-X   (2004-11-28 14:31) [13]

Нет не проще моя программа унивеслальная и вставляет по нажатию определённой горячей клавиши в том месте где установлен курсор а если для каждой программы делать свою кнопку то что получится?для ворда для ехеля для блокнота для дельфи для ... Сам понимаешь не шибко красиво выходит :(


 
YurikGL ©   (2004-11-28 15:57) [14]


> Dema-X   (28.11.04 14:31) [13]

Ну тогда определи, в какое именно приложение нужно вставлять и пиши соответсвующий код.


 
Dema-X   (2004-11-28 18:31) [15]

а как? Хэндл есть.
на SendMessage(SysHoo.Wnd, WM_PASTE, 0,0); ворд не реагирует
на
keybd_event( VK_CONTROL,$45,  0 , 0 );
keybd_event( VK_lCONTROL,$45, 0 , 0 );
keybd_event( $56,$45, 0 , 0 );
keybd_event( $56,$45,KEYEVENTF_KEYUP, 0 );
keybd_event( VK_CONTROL,$45,KEYEVENTF_KEYUP, 0 );
keybd_event( VK_lCONTROL,$45,KEYEVENTF_KEYUP, 0 );
вставляет несколько раз подряд ... вся проблема только в этом :(


 
Dema-X   (2004-11-29 05:50) [16]


> YurikGL ©   (28.11.04 15:57) [14]
> Ну тогда определи, в какое именно приложение нужно вставлять
> и пиши соответсвующий код.

Идей нет?


 
YurikGL ©   (2004-11-29 07:07) [17]

Dema-X   (29.11.04 05:50) [16]

Я тебе точно не скажу как, но по handle наверняка можно узнать заголовок окна или что-то подобное.
Задай вопрос типа как по handle определить, какому приложению принадлежит окно или в яндексе поищи.


 
Dema-X   (2004-11-30 05:50) [18]


> YurikGL ©   (29.11.04 07:07) [17]
> Dema-X   (29.11.04 05:50) [16]
>
> Я тебе точно не скажу как, но по handle наверняка можно
> узнать заголовок окна или что-то подобное.
> Задай вопрос типа как по handle определить, какому приложению
> принадлежит окно или в яндексе поищи.

Поиск результата не дал :(


 
YurikGL ©   (2004-11-30 07:27) [19]

Посмотри
GetWindowText
и подобные функции из winapi

Вообще почитай про winapi там должны быть нужные комманды.


 
TUser ©   (2004-11-30 09:45) [20]


> YurikGL ©   (27.11.04 19:56) [9]
> Dema-X   (27.11.04 19:35) [8]
>
> Так... удаляй эту  вордаппликейшн и пиши следующий код:

[3] прекрасно работает. От содержимого буфера вообще ничего не зависит.

> Задай вопрос типа как по handle определить, какому приложению
> принадлежит окно

GetProcThreadId
При чем тут это? Я подозреваю, что все дело в версии ворда.


 
Dema-X   (2004-11-30 19:58) [21]


> [3] прекрасно работает. От содержимого буфера вообще ничего
> не зависит.

У меня валится


 
Dema-X   (2004-12-01 05:55) [22]


> Я подозреваю, что все дело в версии ворда.

OFFICE XP + DElphi7->OFFICE XP


 
Dema-X   (2004-12-05 07:30) [23]

.



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

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

Наверх




Память: 0.52 MB
Время: 0.026 c
3-1100512234
REDiska
2004-11-15 12:50
2004.12.19
Delphi & PostgreeSQL


4-1099515076
dimm
2004-11-03 23:51
2004.12.19
работа с USB


14-1101879743
КаПиБаРа
2004-12-01 08:42
2004.12.19
Опрос - используете ли вы букву "Ё"?


4-1099829125
SPeller
2004-11-07 15:05
2004.12.19
Combobox


6-1092861875
Destroyer
2004-08-19 00:44
2004.12.19
Проблема с Client/ServerSocket