Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

не копируються данные из TWebBrowser   Найти похожие ветки 

 
Dysan ©   (2005-11-07 13:53) [0]

Значит столкнулся с такой проблемой.
Писал программу в Win2000
Требовалось из TWebBrowser скопировать весь текст и создав документ Word в него вставить! и Все работало посредством вот таких не хитрых команд:
WB.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER);
WB.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER);
WB.ExecWB(OLECMDID_CLEARSELECTION, OLECMDEXECOPT_DONTPROMPTUSER);
Переустановил систему на WinXP SP2 и все... работать перестало :(
а точнее не срабаотывает комманда WB.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER);
Хоть тресни но в буфере обмена остаеться предыдущий скопированный текст! :(
Помогите решить трабл!


 
supervk ©   (2005-11-08 09:46) [1]

У меня и в XP и в 2000 работает почти тоже самое:

OleInitialize(nil);
Explorer.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER);
Explorer.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER);

Вручную вставлять пробовал?


 
Dysan ©   (2005-11-08 12:11) [2]

Вручную пробовал вставляет предыдущий скопированный текст.
да вот хоть тресни... и OleInitialize(nil); не помогает! :(
не работает именно комманда копирования!!! а все остальные нормально
что то видимо не хватает.


 
SuperVK ©   (2005-11-09 04:12) [3]

Сделай новый проект. Добавь на него TWebBrowser и кнопку с кодом:

OleInitialize(nil);
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER);
WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER);

Проверь, работает или нет.


 
Daysn   (2005-11-09 12:34) [4]

Попробовал, проверил! Не работает!
что за фигня... :(


 
umbra ©   (2005-11-09 15:26) [5]

это политика безопастности XP sp2. Чтобы это было возможно, надо где-то найти соответствующую галочку и изменить ее на противоположную. точнее - что и где я не знаю


 
SuperVK ©   (2005-11-10 04:17) [6]

Вообще странное дело. Вот что я вычитал по этому поводу:

Q: Paste works fine, but Cut and Copy won"t work. What"s the problem?
A: You have to add the following line to the bottom of your unit:

initialization
OleInitialize(nil);

finalization
OleUninitialize;

А по поводу политик и вообще проверки, команды копирования попробуй следующий код:
if WebBrowser1.OleObject.Document.queryCommandEnabled("Copy") then
    ShowMessage("Команда copy разрешена")
else ShowMessage("Команда copy ЗАПРЕЩЕНА!");

Только не забудь перед её выполнением предварительно чего-нибудь ручками выделить в WebBrowser1.


 
Dysan ©   (2005-11-10 11:54) [7]

я решил проблему по другому
т.к. мне надо было срочно то я наверное сделал коряво но мне главное был результат.
я скачал с тори компонент реализующий тотже TWebBrowser только с дополнительными функциями. так вот у него была сделана команда копи вот так:
InvokeCmd(FALSE, OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut);

где

procedure TEmbeddedWB.InvokeCMD(InvokeIE: Boolean; Value1, Value2: Integer; var vaIn, vaOut: OleVariant);
var
 CmdTarget: IOleCommandTarget;
 PtrGUID: PGUID;
begin
 New(PtrGUID);
 if InvokeIE then PtrGUID^ := CLSID_WebBrowser else
   PtrGuid := PGUID(nil);
 if Document <> nil then
 try
   Document.QueryInterface(IOleCommandTarget, CmdTarget);
   if CmdTarget <> nil then
   try
     CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut);
   finally
     CmdTarget._Release;
   end;
 except end;
 Dispose(PtrGUID);
end;

и работает!
хотя если приглядеться то принципиальной разници я так и не увидел
CmdTarget.Exec(PtrGuid, Value1, Value2, vaIn, vaOut); - помоему тоже самое что и ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER);



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

Форум: "Corba";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
15-1174499240
Kerk
2007-03-21 20:47
2007.04.22
Summer of Code 2007


9-1144508413
Nic
2006-04-08 19:00
2007.04.22
Философия игр


15-1175116013
iZEN
2007-03-29 01:06
2007.04.22
Есть ли в природе просмотрщик VSD (Visio) файлов ?


2-1175622889
Guest007
2007-04-03 21:54
2007.04.22
Как запустить файл?


6-1161955996
Free_Breeze
2006-10-27 17:33
2007.04.22
Вопрос по фреймам





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский