Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Загрузка HTML из ресурса


Автор: GRIENDERS 13.9.2007, 19:43
Кинул на форму ActiveX WebBrowser. Есть HTML страница на которой расположен flash ролик. Я добавил ее и flash ролик в ресурсы.
1) Как загрузить эту страницу в ActiveX WebBrowser? Новый файл создать не надо, надо примерно как в C++ res://myfile.exe/htmlpage, но этот вариант ессно не пашет
2)Какой путь указывать в теге flash Ролика <param name="movie" value="???????"> или в <embed src="???????">, ведь ролик-то находиться в ресурсе

Автор: tol05 14.9.2007, 10:54
Цитата(GRIENDERS @  13.9.2007,  19:43 Найти цитируемый пост)
Как загрузить эту страницу в ActiveX WebBrowser? Новый файл создать не надо, надо примерно как в C++ res://myfile.exe/htmlpage, но этот вариант ессно не пашет

Код

ResourceManager manager = new ResourceManager("windowsApplication2.Form1", Assembly.GetExecutingAssembly());
webBrowser.DocumentStream = manager.GetString("MyPage");//или GetObject() - смотря как ты сохранял ресурс


Цитата(GRIENDERS @  13.9.2007,  19:43 Найти цитируемый пост)
Какой путь указывать в теге flash Ролика <param name="movie" value="???????"> или в <embed src="???????">, ведь ролик-то находиться в ресурсе 

сначала вытащи все из ресурсов, потом согласуй настройки всех объектов между собой, а потом - привязывай их к браузеру.

Автор: GRIENDERS 14.9.2007, 13:07
Цитата

сначала вытащи все из ресурсов, потом согласуй настройки всех объектов между собой, а потом - привязывай их к браузеру.

Вытаскивать нельзя.

Кто знаком с прогой eBookCompiler поймет, что хочу изобрести велосипед. Мне это и надо.


tol05, пытался загрузить просто web страницу (из ресурса) без flash ролики - не фига, загружается не та, которая в ресурсе, а пустая (т е с кодом <html></html>). Почему?

Автор: tol05 14.9.2007, 15:18
я подумал, и предлагаю другой вариант:
Код

ResourceManager manager = new ResourceManager("WindowsApplication1.Form1", Assembly.GetExecutingAssembly());
webBrowser1.DocumentText = manager.GetString("MyPage");

у меня в ресурсах добавлена строка Page с значением
Код

<html><input type="button" value="press me"><b>Text</b><html>

все работает.


А по поводу флешки - покажи код как ты ее на страницу добавляешь.

Автор: GRIENDERS 15.9.2007, 08:46
Вот код для HTML страницы и flash ролика, вставленного в нее
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="349" height="481">

<param name="movie" value="ЧТО ТУТ НАДО???(путь к ролику) - РОЛИК-ТО В РЕСУРСЕ!!!"/>

<param name="quality" value="high" />

<embed src="ТОЖЕ САМОЕ - КАК ПРОПИСАТЬ ПУТЬ К РОЛИКУ????" 

quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="349" height="481">
</embed>
</object>


</body>
</html>


Автор: tol05 16.9.2007, 10:47
и все-таки мне кажется, что ролик нужно вытащить из ресурса, записать в скрытую папку временный файл и указывать в странице путь к нему через протокол "file". При выходе из приложения этот файл удалять.
Пытаться создать объект класса флешки, ролик считать в поток и скормить этому объекту я бы не стал. ИМХО очень это очень хлопотно и того не стоит.

Автор: GRIENDERS 16.9.2007, 20:09
Интересно, а в электронных такая же система - аписать в скрытую папку временный файл и указывать в странице путь к нему через протокол "file" или там он загружается из ресурса?
Если второе, то как? А если первое, то примерчик плиз набросай
Цитата

Пытаться создать объект класса флешки, ролик считать в поток и скормить этому объекту я бы не стал. ИМХО очень это очень хлопотно и того не стоит.

Тоже интересно, и тоже хочу примерчик

Автор: GRIENDERS 19.9.2007, 15:00
tol05, а как перехватить нажатие правой кнопки мышки в axWebBrowser?

Автор: tol05 19.9.2007, 15:40
Код

public class MyBrowser : AxSHDocVw.AxWebBrowser
    {
        protected override void WndProc(ref Message m)
        {
            //if (сообщение соответствует клику правой кнопки, то ...)

            base.WndProc(ref m);
        }
    }

и дальше использовать его, а не AxSHDocVw.AxWebBrowser

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)