![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Нужна программка которая при запуске вызывает chm файл и после сразу закрывается. Путь до chm файла относительный. Поскажите код.
Спасибо зарание. |
#2
|
||||
|
||||
![]() Ставишь на форму
ActionList1, в который добовляешь FileRun1 и пишешь: procedure TForm1.FormShow(Sender: TObject); begin FileRun1.FileName:='Полный путь к файлу; FileRun1.Execute; Application.Terminate; end; |
#3
|
|||
|
|||
![]() merdashka подскажите, правильно ли я понял, путь к файлу должен быть от корня диска? Если от корня то как сделать его начинающимся от папки в которой программа находится?
Путь нужен обязательно относительный. |
#4
|
||||
|
||||
![]() Можно файл сохранить в тойже папки что и приложение
соответственнно путь указать следующим образом: extractfilepath(Application.ExeName)+'имя файла') |
#5
|
||||
|
||||
![]() Ну или extractfilepath(Application.ExeName)+'/дальнейший путь к файлу')
|
#6
|
|||
|
|||
![]() Спасибо merdashka
|
#7
|
|||
|
|||
![]() merdashka получился вот такой код:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ActnList, ExtActns; type TForm1 = class(TForm) ActionList1: TActionList; FileRun1: TFileRun; procedure FileRun1Hint(var HintStr: String; var CanShow: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FileRun1Hint(var HintStr: String; var CanShow: Boolean); begin procedure TForm1.FormShow(Sender: TObject); begin FileRun1.FileName:=extractfilepath(Application.ExeName)+'help.chm'); FileRun1.Execute; Application.Terminate; end; end; end. но при запуске выскакивает следующая ошибка: Build [Error] Unit1.pas(29): Statement expected but 'PROCEDURE' found [Error] Unit1.pas(29): Undeclared identifier: 'FormShow' [Error] Unit1.pas(31): Undeclared identifier: 'FileRun1' [Error] Unit1.pas(31): 'END' expected but ')' found [Error] Unit1.pas(36): '.' expected but ';' found [Fatal Error] Project1.dpr(5): Could not compile used unit 'F:\Desktop\Base\Unit1.pas' чего делать то в этой ситуации ![]() |
#8
|
||||
|
||||
![]() Вот программа которая запускает файл 'drkb23.chm' из того же каталога в котором находится сама. Размер exe'шника - 13824 байта.
Код:
program Project1; {$APPTYPE CONSOLE} function ShellExecute (HWND:THandle; lpOperation,lpFile,lpParameters,lpDirectory:PChar; nShowCmd:Integer):HINST; stdcall; external 'shell32.dll' name 'ShellExecuteA'; begin ShellExecute(0,nil,'drkb23.chm',nil,nil,1); end. |
#9
|
||||
|
||||
![]() Цитата:
Код:
function HtmlHelp(hwndCaller : hWnd; pszFile : LPCSTR; uCommand : longInt; dwData : dword): hwnd; stdcall; external 'hhctrl.ocx' name 'HtmlHelpA'; const HH_DISPLAY_TOPIC = 0; ... ... ... HtmlHelp(0, 'help.chm::/имя_раздела.htm', HH_DISPLAY_TOPIC, 0); --------------------------------------------- Программирование - не профессия, а стиль жизни |
#10
|
|||
|
|||
![]() Спасибо всем!!!
Интерисует новый вопрос - как сделать чтобы имя файла считывалось из ini файла лежащего рядом, для того чтоб не компелировать каждый раз новый стартовый файл? Aristarh Dark в вашем коде указанно {$APPTYPE CONSOLE} не значет ли это что будет при запуске видно окно консоли. Извеняюсь что задаю вопрос не протестировав код, для меня это процесс не быстрый. Просто если видно окно консоли то легче bat файл в одну строку написать. А нужно чтоб невидно было. Последний раз редактировалось nkvd_, 14.06.2007 в 18:49. |
#11
|
||||
|
||||
![]() Значит что будет видно.
![]() В вопросе не было указано, что нужно чтобы что-то было "видно/не видно" |