Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2009, 13:56   #1
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию Имя приложения

День добрый.
Каким образом можно вытащить из exe-файла его название?
как пример-ярлык на приложение, ярлык имеет имя MyProgramm, а не myprog.exe, коим exe-шник называется в файловой системе
надеюсь, доходчиво поставил вопрос
Романнн вне форума Ответить с цитированием
Старый 10.10.2009, 14:01   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Тебе нужно имя ярлыка или заголовок программы или имя exe? Ярлык - тот же файл с параметрами: ИМЯЯРЛЫКА.ink
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 10.10.2009, 14:07   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
Смех

недоходчиво...

если вы хотите при создании ярлыка назначить ему ссылку на имя приложения которое он должен запустить вне зависимости от того как оно названо... и если этот ярлык создает само приложение, то тогда ответ на ваш вопрос будет таким:
Код:
application.ExeName
- заметьте, ответ основан на допущениях
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 10.10.2009, 14:09   #4
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

да, заголовок программы) не додумался его так назвать)
у меня есть полный путь к ехе-файлу, и менно из него мне надо вытащить заголовок программы... как-то так

чтобы конкретизировать: делаю программу с большим количеством ссылок на сторонние программы, типа панели быстрого доступа, и вручную название для каждой программы прописывать как-то неэстетично
Романнн вне форума Ответить с цитированием
Старый 10.10.2009, 14:10   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в установщик вводится имя приложения. и он знает как назвать ярлык.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.10.2009, 14:19   #6
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

Пепел Феникса, да, но ведь в ехе-шники вшиты названия программ
Романнн вне форума Ответить с цитированием
Старый 10.10.2009, 14:22   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вам надо читать тогда свойства файла
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 10.10.2009, 14:25   #8
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

мне почему-то кажется что это должно быть в API, но даже если и нет, то есть ж стандарт, как у ID3 в случае с мр3 файлами, то есть считать название напрямую из файла
Код:
F i l e D e s c r i p t i o n     Q I P   I n f i u m     0   
F i l e V e r s i o n     9 . 0 . 3 . 0   "   
I n t e r n a l N a m e       &   L e g a l C o p y r i g h t       *   
L e g a l T r a d e m a r k s         *   
O r i g i n a l F i l e n a m e       6   
P r o d u c t N a m e     Q I P   I n f i u m     
(   P r o d u c t V e r s i o n   2      C o m m e n t s       D     
V a r F i l e I n f o     $
вот пример инфиума, открытого блокнотом
Романнн вне форума Ответить с цитированием
Старый 10.10.2009, 14:36   #9
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

вот, собсна, нашел код:
Код:
...
const
  InfoNum = 10;
  InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
var
  S, StrOut: string;
  n, Len, i: DWORD;
  Buf: PChar;
  Value: PChar;
begin
  S := Application.ExeName;
  n := GetFileVersionInfoSize(PChar(S), n);
  if n > 0 then
  begin

    Buf := AllocMem(n);
    StrOut := StrOut + 'Размер буфера = ' + IntToStr(n);
    GetFileVersionInfo(PChar(S), 0, n, Buf);
    for i := 1 to InfoNum do
      if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\' + InfoStr[i]), Pointer(Value), Len) then
    StrOut := #10#12+ StrOut + InfoStr[i] + ' = ' + Value;
    FreeMem(Buf, n);
  end
  else
    StrOut := ' Нет информации о версии ' ;

  ShowMessage(StrOut)
end;
но в предназначение его сам не въехал)))

а всё, разобрался)
спасибо всем участвовавшим, тему закрывать, наверное, можно

Последний раз редактировалось Романнн; 10.10.2009 в 14:42.
Романнн вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить handle главного окна, зная имя приложения? Altera Win Api 8 22.12.2008 18:52
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21
Имя диапазона CAMyM Microsoft Office Excel 8 09.11.2007 10:16
Имя и номер KAMASUTR Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 10.08.2007 22:26
Имя компьютера asale Microsoft Office Excel 3 01.08.2007 22:05