Главная страница
    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.046 c
2-1175345871
ctudent
2007-03-31 16:57
2007.04.22
как узнать заголовок странички в инете


2-1175691056
cosinus
2007-04-04 16:50
2007.04.22
Хм...Вопрос по глобальному хуку на клавиатуру


2-1175587955
npu3pak
2007-04-03 12:12
2007.04.22
Автоматическое обновление текстовых полей


1-1172001179
Cooller
2007-02-20 22:52
2007.04.22
Ведение лога в многопоточном приложении


9-1148094309
Cash
2006-05-20 07:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский