Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2010, 12:59   #1
Crystallon
Форумчанин
 
Регистрация: 04.04.2010
Сообщений: 273
По умолчанию Узнать название exe файла программы из самой программы

Как узнать название exe файла программы из самой программы?
Crystallon вне форума Ответить с цитированием
Старый 08.09.2010, 13:12   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

1. Application.Exename
2. ExtractFileName(ParamStr(0))
_Engine_ вне форума Ответить с цитированием
Старый 08.09.2010, 14:55   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Оба предыдущих совета не сработают в DLL.

А вот этот сработает из любого места:


3. ExtractFileName(GetModuleName(0))
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 08.09.2010 в 16:19.
GunSmoker вне форума Ответить с цитированием
Старый 08.09.2010, 15:14   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение

3. ExtractFileName(GetModuleName(0))
Надо взять на вооружение, спс
_Engine_ вне форума Ответить с цитированием
Старый 08.09.2010, 16:19   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Насчёт DLL я наврал - попутал с другим.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 09.09.2010, 08:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
GunSmoker
Че это наврал?
Код:
uses
  ShareMem,
  SysUtils,
  Classes;

{$R *.res}
  function gn:pchar;
  begin
   Result:=pchar(GetModuleName(0));
  end;
  exports gn;
begin
end.
Вот вызов:
Код:
   function gn:pchar;external 'project2.dll';
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Caption:=gn;
end;
Вполне показывает путь к Экзешнику.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2010, 13:38   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Да не, что предыдущие методы 1 и 2 не сработают. Вполне сработают - они являются обёрткой к третьему.

Ещё точнее: второй - обёртка к третьему, а первый - обёртка ко второму.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 09.09.2010, 14:46   #8
Crystallon
Форумчанин
 
Регистрация: 04.04.2010
Сообщений: 273
По умолчанию

Благодарю за ответы.
Еще возник вопрос - как закрыть программу в FormCreate(или отменить ее запуск, что-то типа того)? Просто если пишу как обычно close(); это не срабатывает(по всей видимости потому что эта операция невозможна в событии oncreate).
Crystallon вне форума Ответить с цитированием
Старый 09.09.2010, 14:52   #9
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
Еще возник вопрос - как закрыть программу в FormCreate(или отменить ее запуск, что-то типа того)?
Скажите как именно вы хотите, чтобы это работало (там разные варианты могут быть, например, не в ОнКреэйт, а в ОнПэинт ставить), и я подскажу.

А вообще, один вопрос - одна тема.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 09.09.2010 в 15:28.
ex.cluz вне форума Ответить с цитированием
Старый 09.09.2010, 15:22   #10
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от Crystallon Посмотреть сообщение
Еще возник вопрос - как закрыть программу в FormCreate(или отменить ее запуск, что-то типа того)? Просто если пишу как обычно close(); это не срабатывает(по всей видимости потому что эта операция невозможна в событии oncreate).
Код:
  Application.Terminate;
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Название для новой программы Holly234 Софт 3 04.06.2010 12:59
вершина характеризуется названием и высотой. Выдать название самой высокой вершины. s1avjan Паскаль, Turbo Pascal, PascalABC.NET 1 28.04.2010 17:59
Из программы 1.exe создаем пустой файл 2.exe. Как из программы 1 внести API функции в программу 2? X-LEV-X Общие вопросы Delphi 7 09.03.2010 08:33
Название программы Яр|/||< (^_^) Свободное общение 3 06.07.2009 15:10
Название программы ivanesky Общие вопросы Delphi 4 17.02.2009 17:58

Реклама для незарегистрированных, регистрация на форуме