Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
Comanche

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

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

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

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

Что делать?!?!
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.07.2009, 20:54
Ответы с готовыми решениями:

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

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

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

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

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

PPS: Кстати, сделаю сейчас ещё один топик - по AVI. Есть вопрос...
Comanche
10.07.2009, 18:34
Пытался обмануть, заменяя <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 и т.п., можно использовать, чтобы вызвать внешний файл (по файловой ассоциации)?
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,927
Записей в блоге: 5
11.07.2009, 02:00
> Да, но тогда придётся запретить пользователю менять в Сетапе директорию инсталляции, чтобы ссылка показывала всегда на верный путь. А это не есть гуд. Нельзя ли по-другому?

Можно по-другому. Можно положить 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
Спасибо,
но цель, которую я преследую, - это дать пользователю возможность запустить ролик как щелчком по ссылке в хелпе, так и запуском непосредственно 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
Вопрос еще актуален?
0
Comanche
16.02.2010, 15:15
Да, актуален до сих пор.
0 / 0 / 1
Регистрация: 19.10.2008
Сообщений: 173
16.02.2010, 16:45
Ух, не ожидал, поэтому пример не успел подготовить .
В MSDN есть статья 'Link to a File Outside Your Help System', где приводится пример JavaScript, как адресовать просто файл, лежащий не в .chm, но в одной с ним директории.
Суть сводится к следующему (это если лень искать), правда я на VBS писал:
1. Имеется в Location что-то вроде
'mk:@MSITStore:Program%20FilesMicrosof t%20Visual%20StudioMSDN2000JAN1033inet.c hm::/ocx_scripts_linkchm.htm'. Текущий адрес.
2. Предполагается, что имя файла inet.chm известно на этапе написания кодов страниц, так же как и название страницы ocx_scripts_linkchm.htm.
Отсюда возможно установить длину строки 'inet.chm::/ocx_scripts_linkchm.htm'
3. Длина 'mk:@MSITStore:' постоянна.
4.
Code
1
2
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
Спасибо!
6 / 6 / 0
Регистрация: 29.12.2009
Сообщений: 21
21.01.2013, 11:34
Добрый день, у меня есть оооочень простенькая страничка - которая перелистывает фото. Хотела сделать 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2013, 11:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru