Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.06.2007, 12:18
nkvd_ nkvd_ вне форума
Прохожий
 
Регистрация: 13.06.2007
Сообщения: 5
Репутация: 10
По умолчанию Запуск одной программы из другой?

Нужна программка которая при запуске вызывает chm файл и после сразу закрывается. Путь до chm файла относительный. Поскажите код.
Спасибо зарание.
Ответить с цитированием
  #2  
Старый 13.06.2007, 12:50
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию Проще простого

Ставишь на форму
ActionList1, в который добовляешь FileRun1 и пишешь:

procedure TForm1.FormShow(Sender: TObject);
begin
FileRun1.FileName:='Полный путь к файлу;
FileRun1.Execute;
Application.Terminate;
end;
Ответить с цитированием
  #3  
Старый 13.06.2007, 12:59
nkvd_ nkvd_ вне форума
Прохожий
 
Регистрация: 13.06.2007
Сообщения: 5
Репутация: 10
По умолчанию

merdashka подскажите, правильно ли я понял, путь к файлу должен быть от корня диска? Если от корня то как сделать его начинающимся от папки в которой программа находится?
Путь нужен обязательно относительный.
Ответить с цитированием
  #4  
Старый 13.06.2007, 13:06
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию

Можно файл сохранить в тойже папки что и приложение


соответственнно путь указать следующим образом:
extractfilepath(Application.ExeName)+'имя файла')
Ответить с цитированием
  #5  
Старый 13.06.2007, 13:24
Аватар для merdashka
merdashka merdashka вне форума
Новичок
 
Регистрация: 03.04.2007
Адрес: Ашгабат
Сообщения: 77
Репутация: 10
По умолчанию :)

Ну или extractfilepath(Application.ExeName)+'/дальнейший путь к файлу')
Ответить с цитированием
  #6  
Старый 13.06.2007, 14:23
nkvd_ nkvd_ вне форума
Прохожий
 
Регистрация: 13.06.2007
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо merdashka
Ответить с цитированием
  #7  
Старый 14.06.2007, 00:17
nkvd_ nkvd_ вне форума
Прохожий
 
Регистрация: 13.06.2007
Сообщения: 5
Репутация: 10
По умолчанию

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  
Старый 14.06.2007, 06:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вот программа которая запускает файл '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  
Старый 14.06.2007, 18:17
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от nkvd_
Нужна программка которая при запуске вызывает chm файл и после сразу закрывается. Путь до chm файла относительный. Поскажите код.
Спасибо зарание.
А так ты сможешь открыть нужный раздел chm:
Код:
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  
Старый 14.06.2007, 18:43
nkvd_ nkvd_ вне форума
Прохожий
 
Регистрация: 13.06.2007
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо всем!!!

Интерисует новый вопрос - как сделать чтобы имя файла считывалось из ini файла лежащего рядом, для того чтоб не компелировать каждый раз новый стартовый файл?

Aristarh Dark в вашем коде указанно {$APPTYPE CONSOLE} не значет ли это что будет при запуске видно окно консоли. Извеняюсь что задаю вопрос не протестировав код, для меня это процесс не быстрый. Просто если видно окно консоли то легче bat файл в одну строку написать. А нужно чтоб невидно было.

Последний раз редактировалось nkvd_, 14.06.2007 в 18:49.
Ответить с цитированием
  #11  
Старый 15.06.2007, 06:51
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Значит что будет видно.
В вопросе не было указано, что нужно чтобы что-то было "видно/не видно"
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:40.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025