Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Програмный вызов утилиты hh.exe 
:(
    Опции темы
danika
Дата 20.6.2011, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2011

Репутация: нет
Всего: нет



Здравствуйте.
 В папке проекта,имеется скомпилированный файл справки SmViewHelp.chm и HTML-файлы содержания.
 Запускаю из своей программы файл справки:
   

Код

void __fastcall TMainForm::HelpClick(TObject *Sender)
{
 ShowMessage("Current directory = " + GetCurrentDir());
 WinExec ("hh.exe SmViewHelp.chm ", SW_SHOWNORMAL);
}


Происходит следующее:
 По созданию главного окна своей программы,в режиме временного бездействия утилита hh.exe
 запускается без проблем,вместе с содержимым.
 Как только запускаются некие процессы при работе  программы(загрузка некоторого файла,создание списка и т.д)утилита помощи отказывается запускаться.Пишет "Не могу открыть файл SmViewHelp.chm".
 Причём отладочная строка 
   

Код

ShowMessage("Current directory = " + GetCurrentDir());

показывает что меняется путь до текущей папки.
Подскажите как это исправить.
PS
Пробовал явно указывать путь.

Код

AnsiString Dir  = ExtractFilePath(Application->ExeName) + " SmViewHelp.chm";
ShowMessage(" Current directory:"+ Dir);
ShellExecute(Handle,"open",Dir.c_str(),NULL,NULL,SW_RESTORE);
DWORD GetLastError(VOID);

Вообще ничего не происходит,код ошибки не возвращает,хотя путь показывает верный.
PM MAIL   Вверх
Dem_max
Дата 21.6.2011, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



может быть так ?
Код

ShellExecute(hwnd, "open", "C:\\Program Files\\MyProgramm\\Help.chm", 0, 0, SW_SHOW);


Это сообщение отредактировал(а) Dem_max - 21.6.2011, 03:46


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
borisbn
Дата 21.6.2011, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(danika @  20.6.2011,  22:33 Найти цитируемый пост)
AnsiString Dir  = ExtractFilePath(Application->ExeName) + " SmViewHelp.chm";

Пробел перед SmViewHelp.chm лишний
Код

AnsiString Dir  = ExtractFilePath(Application->ExeName) + "\\SmViewHelp.chm";
ShellExecute( Handle, "open", Dir.c_str(), 0, 0, SW_SHOW );


Это сообщение отредактировал(а) borisbn - 21.6.2011, 09:47


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
danika
Дата 21.6.2011, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.5.2011

Репутация: нет
Всего: нет



Цитата

Пробел перед SmViewHelp.chm лишний


Точно,огромное спасибо,заработало.
А я голову сломал,с консоли полез запускать.
PM MAIL   Вверх
volatile
Дата 22.6.2011, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 3
Всего: 85



Вообще для правильного запуска chm  в winapi есть специальная функция.

#include <HtmlHelp.h>
...
HtmlHelp(...) ;

Там можно указать топик, который надо открыть.
+ при закрытии программы, хелп тоже закроется, а не будет висеть.
+ еще некоторые плюшки.

поищите по ключевой фразе "HTML Help API Function"

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.