|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Использовал такой код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
И вот случайно обнаружил, что на Висте он не работает - ни F1, ни SendKeys (ну да, проскакивало где-то что с SendKeys проблемы на 7-ках и прочих). Т.е. выводится стандартный help системы, а не мой. В одном месте такой код (не особо раньше следил за универсальностью), и он работает Код: vbnet 1. 2. 3. 4. 5. 6.
IsProgaRun("Zagolovok helpa") -проверяет есть ли окно с уникальным именем в заголовке, т.е. в данном случае запущен ли уже файл helpа. Хотя опять же, "Zagolovok helpa" я два года как поменял, а в забытом этом коде (второй вариант) этого сделать забыл, так что окна плодятся при многократном вызове. Т.е. вопросы 1) Как грамотно выводить Help. Из меню и по F1. И с учетом Виста и выше. 2) Чтоб окна Help не плодились. При этом один желательный момент. Приложение состоит из нескольких exe и в каждом есть кнопка <Help>. А файл один. Желательно чтоб не плодились и при нажатии help в разных компонентах. Второй код (если об нем помнить при замене заголовка) в принципе решает проблему, но не с F1. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 18:48 |
|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Вообще-то не уверен что проблема сильно актуальна. Фигня с Help происходит только на Висте, а на семерке все работает нормально. Если учесть, что за 3 года ни один пользователь не обратил внимание на эту проблему, а почти очевидно что все у кого была виста переходят на 7-8 (чего нельзя сказать про XP), м.б. и не стоит заморачиваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 19:43 |
|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Дмитрий77И вот случайно обнаружил, что на Висте он не работает - ни F1, ни SendKeys...Т.е. выводится стандартный help системы, а не мой. А что самое интересное, проблема на этой Висте самоустранилась после перезагрузки, видимо глюк конкретной системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 23:33 |
|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Единственное, вот эту свою ересь Код: vbnet 1. 2. 3.
(а SendKey "F1" там не работает, ибо вызывается из меню трея при скрытой форме, поэтому и намутил давно) Поменял на более грамотный код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
кот. также как App.HelpFile + F1 обеспечивает единичность helpa и авто/закрытие его вместе с вызвавшим приложением ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 00:41 |
|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Дмитрий77кот. ...обеспечивает ...и авто/закрытие его вместе с вызвавшим приложением Вообще тут обнаружил что когда пользуешься HTMLHelp Lib "hhctrl.ocx" очень не лишне делать следующий код: Код: vbnet 1. 2. 3. 4.
Потому как если не делать, то оно при закрытии App еще и краш обеспечить может. А с другой стороны, такие команды как HH_INITIALIZE command и HH_UNINITIALIZE command лучше вообще не делать чеб там в msdn не говорилось, т.к. с этими командами Help запускается в потоке приложения (а не в другом) и можно схлопотать вот такой вариант: 1) Запускаем Код: vbnet 1.
2) Запускаем help 3) Закрываем vbModal 4) Запускаем опять Код: vbnet 1.
И УСЕ. Имеем HelpWindow.Enabled=false У меня тут вопрос возник: Например у меня в дереве хэлпа такая структура: >>Some function (показывает страницу somefunction.htm) >>>Some function Settings (показывает ту же самую страницу somefunction.htm) >>>Some Function Subitem2 (показывает страницу Subitem2.htm - уникально ) >>>Some Function Subitem2 (показывает страницу Subitem3.htm - уникально ) Если я вызываю Код: vbnet 1.
то help однозначно показывает: >>>Some Function Subitem2 (показывает страницу Subitem2.htm - уникально ) А если вызываю Код: vbnet 1.
то при первом вызове может показать >>Some function (показывает страницу somefunction.htm) а может >>>Some function Settings (показывает ту же самую страницу somefunction.htm) (по принципу кратчайшего пути до ближайшего узла) А если эту команду повторить, то показывает следующий узел, т.е. >>>Some function Settings (показывает ту же самую страницу somefunction.htm) А я например хочу (желательно), чтоб сразу показала последний вариант. Как однозначность добавить (при сохранении условия что одна и та же страница отображается в двух пунктах)? Как вариант могу вызвать команду два раза подряд, тогда точно попаду в цель, но как то это неправильно. Да еще, а VB6 своими средствами не умеет контекстную справку показывать? Чтоб не просто вывести первую страницу help, а тыкнуться в заданную (в завис. от контекста/окна/вкладки с кот. в данный момент работает пользователь)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 07:36 |
|
Как правильно вывести HelpFile F1/Меню Help и т.д.
|
|||
---|---|---|---|
#18+
Дмитрий77А я например хочу (желательно), чтоб сразу показала последний вариант. Как однозначность добавить (при сохранении условия что одна и та же страница отображается в двух пунктах)? Как вариант могу вызвать команду два раза подряд, тогда точно попаду в цель, но как то это неправильно . Ну, я на этом кривом варианте и остановился пока. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Там к сожалению идет привязка к имени страницы, а не к узлу дерева. Даже если делать map-файл, назначая индексы, то индексы будут привязаны к страницам, а не к узлам дерева. Т.е. по хорошему должно быть однозначное соответствие. Но это не всегда удобно. При выборе заголовка "главы" общего описания может не быть, но логично сразу показывать дефолтный (первый) раздел хэлпа по этой главе. Вообще, конечно формат .chm то устаревший. Причем он может глючить на некоторых системах (например если юзер чрезмерно и тупо увлекается установкой всяких Мозил и Firefox-ов, настройки которых могут нарушать функционирование ОС). Но я чуть полазил по MSDN, посмотрел какие форматы help используются в других программах и понял что ничего лучше и новее то и нет, потому как то что используется в родной справке виндов начиная с висты не очень удобно и в целом разработчиками софта принято на вооружение не было. Есть еще варианты "хэлп в онлайн в IE", хэлп в pdf - но от них честно говоря подташнивает. Посему поразмыслив малость решил оставить chm. Что, хэлпы никто не пишет? Типа юзер итак разберется. Тема простая, но никто так и не ответил. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 16:52 |
|
|
start [/forum/topic.php?fid=60&msg=38328408&tid=2156868]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 162ms |
0 / 0 |