Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Comanche
1

HTML Help Workshop, разделение файлов внутри chm

09.07.2009, 20:54. Просмотров 3313. Ответов 10
Метки нет (Все метки)

В составе HHP-файла - т.е. проекта HTML Help Workshop - есть один файлик: AVI.htm.
В нём есть ссылка (<a href ...>) на AVI-файл. При компиляции этого проекта программа HTML Help Workshop запихивает AVI-файл внутрь итогового CHM-файла, в результате чего его размер сильно увеличивается. Мне же хотелось бы, чтобы CHM-файл был отдельно, и AVI-файл - отдельно; при этом чтобы ссылка работала.

В настройках проекта и программы HTML Help Workshop я ничего на эту тему не нашёл. Пробовал обмануть - удалить перед компиляцией AVI-файл, скомпилировать, потом вернуть его на место. Так при открытии раздела справки, соответствующего страничке AVI.htm, ссылка на AVI-файл оказывется 'битой'. Т.е. справка ожидает, что эта ссылка указывает на её же 'нутро', а не на на файл 'снаружи'.

Что делать?!?!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2009, 20:54
Ответы с готовыми решениями:

Создать файл *.chm (MS help workshop) из имеющихся файлов html и файла формата hhc
Ребят..подскажите пожалуйста, как можно создать файл CHM (MS help workshop) из имеющихся файлов...

Список html файлов из chm файла
Подскажите пожалуйста, как мне получить список html файлов из chm файла.

Программа для создания PDF или CHM файла из файлов html и gif
Описание к программе находится в директории и представляет собой несколько html и графических (gif)...

HTML Workshop
Господа))) помогите пожалуйста решить...

10
3632 / 2605 / 589
Регистрация: 08.06.2007
Сообщений: 9,071
Записей в блоге: 4
10.07.2009, 00:39 2
Можно сделать ссылку не относительной, а с указанием диска и полного пути, тогда файл не будет включен в chm. То же произойдет, если указать ссылку с протоколом http://
0
Comanche
10.07.2009, 15:02 3
Да, но тогда придётся запретить пользователю менять в Сетапе директорию инсталляции, чтобы ссылка показывала всегда на верный путь. А это не есть гуд. Нельзя ли по-другому?

PS: С http://... тоже не хотелось бы - специфика программы такова, что её 'целевая аудитория' вряд ли будет иметь коннект, позволяющий беспроблемно скачать AVI-файл с Инета.

PPS: Кстати, сделаю сейчас ещё один топик - по AVI. Есть вопрос...
Comanche
10.07.2009, 18:34 4
Пытался обмануть, заменяя <a href=Tutor.avi> на
<a href='' onClick='window.location.href='Tutor.avi' return false'>.

В исходном HTML-файле работает, а после компиляции отказывается работать из CHM-файла. Получается, что ВСЕ ссылки (<a href=...>), встречающиеся внутри CHM-файла, должны указывать на ресурсы, размещённые непременно ВНУТРИ этого же файла.

Попытался обмануть по-другому:
Чего мне хочется? - включения БОЛЬШОГО файла внутрь CHM-файла.
А что нестрашно? - включить в него МАЛЕНЬКИЙ файл.

ОК, написал на VB крохотный EXE-шник, который запускает через ShellExecute мой AVI-ролик. И в страничке AVI.htm переделал ссылку с непосредственно AVI-файла на файл этого EXE-шника. При компиляции Workshop честно включила EXE-шник внутрь CHM-файла; т.к. он маленький, то размер CHM-а сильно не вырос.

Ссылка работает и в исходном HTML-варианте, и в CHM-варианте. С одним большим НО: EXE-шник запускается, но API-ролик из него запускается через раз. Ладно, наверное, я что-то недоделал в вызове ShellExecute. Бог с ним. Но вот что действительно плохо - это при определённом уровне Интернет-безопасности щелчок (и в HTML-, и в CHM-файле) на ссылке, указывающей на EXE-файл, приводит к окну с Предупреждением (кнопки 'Открыть', 'Сохранить', 'Отмена', 'Подробнее'). Как бы это обойти? Ессс-но, исходя из того, что на компе конечного пользователя может быть какой угодно уровень безопасности.

Что ещё маленькое, кроме EXE, COM, BAT, PIF, SCR и т.п., можно использовать, чтобы вызвать внешний файл (по файловой ассоциации)?
3632 / 2605 / 589
Регистрация: 08.06.2007
Сообщений: 9,071
Записей в блоге: 4
11.07.2009, 02:00 5
> Да, но тогда придётся запретить пользователю менять в Сетапе директорию инсталляции, чтобы ссылка показывала всегда на верный путь. А это не есть гуд. Нельзя ли по-другому?

Можно по-другому. Можно положить avi в отдельный chm-файл. Если ссылка указывает на внутренность другого chm-файла, то путь к этому chm-файлу может быть относительным по отношению к тому chm-файлу, где расположена ссылка. Естественно, нужно указывать протокол, если я не ошибаюсь, что-то вроде

href='mk:@MSITStore:myavi.chm::/my.avi'

C avi-файлами я, конечно, не пробовал, но у меня было следующее приключение: Было много chm-справочников в одной директории и мне нужно было написать для них главную страницу. htm-файл работал только по абсолютному пути chm-файла, даже если он лежал в той же директории. Пришлось поместить его в гордом одиночестве в специальный index.chm, оттуда заработали относительные ссылки.
0
Comanche
12.07.2009, 15:08 6
Спасибо,
но цель, которую я преследую, - это дать пользователю возможность запустить ролик как щелчком по ссылке в хелпе, так и запуском непосредственно AVI-файла.

У меня получалось так:
1. Есть CHM хелпа, включающий в себя AVI.
2. Есть отдельно ещё AVI.
Это, как я уже говорил, плохо, т.к. AVI, по сути, дублируется. Этот дубляж критичен, т.к. размер AVI - не маленький.

Ваш вариант:
1. Есть CHM хелпа, БЕЗ ролика внутри.
2. Есть маленький CHM, С роликом внутри.
3. Есть сам AVI.
Опять дублирование. Откинуть пункт №3 я не могу: мне нужно, чтобы Tutor.avi был как отдельный файл, формата AVI, с расширением AVI.

Жалко, что у проекта HHP (или у его отдельных элементов) нет свойства типа 'Include linked media-files' или что-то вроде этого.

Эх, если б я знал, как средствами JavaScript получить текущий каталог (типа VB-функции ChDir), то я просто использовал бы формат ссылки 'file:///...'.
0 / 0 / 1
Регистрация: 19.10.2008
Сообщений: 173
16.02.2010, 14:29 7
Вопрос еще актуален?
0
Comanche
16.02.2010, 15:15 8
Да, актуален до сих пор.
0 / 0 / 1
Регистрация: 19.10.2008
Сообщений: 173
16.02.2010, 16:45 9
Ух, не ожидал, поэтому пример не успел подготовить .
В MSDN есть статья 'Link to a File Outside Your Help System', где приводится пример JavaScript, как адресовать просто файл, лежащий не в .chm, но в одной с ним директории.
Суть сводится к следующему (это если лень искать), правда я на VBS писал:
1. Имеется в Location что-то вроде
'mk:@MSITStore:Program%20FilesMicrosoft%20Visual%20StudioM SDN2000JAN1033inet.chm::/ocx_scripts_linkchm.htm'. Текущий адрес.
2. Предполагается, что имя файла inet.chm известно на этапе написания кодов страниц, так же как и название страницы ocx_scripts_linkchm.htm.
Отсюда возможно установить длину строки 'inet.chm::/ocx_scripts_linkchm.htm'
3. Длина 'mk:@MSITStore:' постоянна.
4.
Код
sPath=mid(Location,len('mk:@MSITStore:')+1,Len(Location)-(len('mk:@MSITStore:')+len('inet.chm::/ocx_scripts_linkchm.htm')))
'Может где еще +1 или -1 добавить, Sorry пишу навскидку.
Теперь в sPath есть путь в директорию с *.chm .
5. link = 'file:///' & sPath & 'tutor.avi'.

Такая вот суть (а где встанут там и ссуть..). Совершенствовать можно, и нужно. Особенно в плане пункта 2.
0
Comanche
16.02.2010, 17:58 10
Спасибо!
6 / 6 / 0
Регистрация: 29.12.2009
Сообщений: 21
21.01.2013, 11:34 11
Добрый день, у меня есть оооочень простенькая страничка - которая перелистывает фото. Хотела сделать chm и отправить пользователям, чтобы не каждую фото по отдельности давать.
Пробовала сделать и в отдельной папке и в этой же папке, где html. Но после компиляции - первое фото (загрузочное) видит, а листовку фотографий не делает (скрипт). В чем ошибка?

Код странички:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html; 
      charset=windows-1251">
<TITLE>Каталог детских вещей из Америки ведущих фирм</TITLE>
 
<SCRIPT>
<!--
 
n=0;
 
Photo = new Array(); 
 
Photo[0] = "1.jpg";  
Photo[1] = "2.jpg";
Photo[2] = "3.jpg";
Photo[3] = "4.jpg";  
Photo[4] = "5.jpg";  
Photo[5] = "6.jpg";
Photo[6] = "7.jpg"; 
Photo[7] = "8.jpg"; 
Photo[8] = "9.jpg"; 
Photo[9] = "10.jpg"; 
Photo[10] = "11.jpg"; 
Photo[11] = "12.jpg"; 
Photo[12] = "13.jpg"; 
Photo[13] = "14.jpg"; 
Photo[14] = "15.jpg"; 
Photo[15] = "16.jpg"; 
Photo[16] = "17.jpg"; 
Photo[17] = "18.jpg"; 
Photo[18] = "19.jpg"; 
Photo[19] = "20.jpg"; 
Photo[20] = "21.jpg"; 
Photo[21] = "22.jpg"; 
Photo[22] = "23.jpg"; 
Photo[23] = "24.jpg"; 
Photo[24] = "25.jpg"; 
Photo[25] = "26.jpg"; 
Photo[26] = "27.jpg"; 
Photo[27] = "28.jpg"; 
Photo[28] = "29.jpg"; 
Photo[29] = "30.jpg"; 
Photo[30] = "31.jpg"; 
Photo[31] = "32.jpg"; 
Photo[32] = "33.jpg"; 
Photo[33] = "34.jpg"; 
Photo[34] = "35.jpg"; 
Photo[35] = "36.jpg"; 
Photo[36] = "37.jpg"; 
Photo[37] = "38.jpg"; 
Photo[38] = "39.jpg"; 
Photo[39] = "40.jpg"; 
Photo[40] = "41.jpg"; 
Photo[41] = "42.jpg"; 
Photo[42] = "43.jpg"; 
Photo[43] = "44.jpg"; 
Photo[44] = "45.jpg"; 
Photo[45] = "46.jpg"; 
Photo[46] = "47.jpg"; 
Photo[47] = "48.jpg"; 
Photo[48] = "49.jpg"; 
Photo[49] = "50.jpg"; 
Photo[50] = "51.jpg"; 
Photo[51] = "52.jpg"; 
Photo[52] = "53.jpg"; 
  
 
function next_image()
{
n++;   
if(n>52) n=0;
document.images[0].src = Photo[n];
}
 
function prev_image()
{
n--;
if(n<0) n=52;
document.images[0].src = Photo[n];
}
 
//-->
</SCRIPT>
 
</HEAD topmargin='0' leftmargin='0'>
 
<BODY>
 <body bgcolor="#000000" background="_.jpg"> 
<TABLE WIDTH="100%">
<CAPTION><font size="+4" color="red">Каталог № 1. Ожидается поставка данных детских вещей.</font></CAPTION>
 
 <TR>
   <td ALIGN=CENTER VALIGN=CENTER>
     <input type=button value="Предыдущее" onClick=prev_image()>
 
     <input type=button value="Следующее" onClick=next_image()>
   </td>
 </tr> 
 <tr>
    <td ALIGN=CENTER VALIGN=CENTER>
         <IMG SRC="1.jpg">
    </td>
  </TR>
 
</TABLE>
 
</BODY>
</HTML>
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2013, 11:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

HTML WorkShop. Заголовок
Я создал с помощью этого проекта справку для своей программы. Все работает отлично. Как...

HTML Hlp Workshop
Друзья,кто создавал справку в этом редакторе,не могу разобраться путь к чему нужно указать?...

Создание HTML Hеlp Workshop
Доброго времени суток! Скажите, есть ли возможность создать файл *.chm (HTML Help Workshop) из...

Пример HTML Help Workshop проекта с мапами для ContextID
Есть ли у кого-нибудь пример HTML Help Workshop проекта с мапами для ContextID. Буду очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.