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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2009, 10:14   #1
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию как узнать файл загружаемой программы ?

Как узнать имя файла через который запускаешь программу ?Ну тесть когда например нажимаешь на файл блокнота открывается блокнот и сразу же открывается файл через который ты запускаешь программу .А у меня только сама прога запускается и файл надо искать отдельно.
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 18.03.2009, 10:27   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Русский язык сначала изучите. Если я правильно понял этот набор букв, в программе при запуске смотрите значение ParamStr(1)
pu4koff вне форума Ответить с цитированием
Старый 18.03.2009, 10:37   #3
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
Русский язык сначала изучите
+1

также бывают моменты когда в пути встречаются пробелы.
тогда ParamStr(1) вернет путь только до первого пробела.
Решение простое, используя ParamCount:
Код:
  i:=1;
  s:='';
  while (i<=ParamCount) do
  begin
    s:=s+' '+ParamStr(i);
    inc(i);
  end;                                                    
  delete(s,1,1);
в s - путь к файлу
Роман Радер вне форума Ответить с цитированием
Старый 18.03.2009, 12:34   #4
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

если я правильно понял, то он хочет узнать как открыть программу запуская ассоциированные с ней файлы. как например запуская вордовский документ открывается мсворд
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 18.03.2009, 14:07   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

если параметр содержит пробелы, то он заключается в кавычки и paramstr спокойно обрабатывает кавычки, например
program.exe "test test" test
ParamStr(1) будет равен test test
ParamStr(2) будет равен test

а чтобы винда передавала длинные параметры заключив в кавычки, надо правильно настраивать этот тип файлов в реестре
rpy3uH вне форума Ответить с цитированием
Старый 18.03.2009, 15:24   #6
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Цитата:
надо правильно настраивать этот тип файлов в реестре
просветите если не сложно, как?
Роман Радер вне форума Ответить с цитированием
Старый 18.03.2009, 16:06   #7
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
просветите если не сложно, как?
Например так :
Код:
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.OpenKey('.bor\shell\open\command', true);// наше расширение *.bor
  reg.WriteString('', 'C:\Project1.exe %1');
  reg.CloseKey;
  reg.OpenKey('.bor\DefaultIcon',true);// Иконка для нашего файла
  reg.WriteString('', 'C:\Project1.exe,0');// Наша прога
  reg.CloseKey;
  reg.free;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 18.03.2009, 16:11   #8
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
Код:
 
  reg.WriteString('', 'C:\Project1.exe %1');
а это самая распространённая ошибка!

можно, например, посмотреть
HKCR\WinRAR\Shell\open\command
там значение по умолчанию
"C:\Program Files\WinRAR\WinRAR.exe" "%1"
т.е. путь в любом случае передаётся в кавычках, в настройках для своего типа файлов надо так же указать. т.е. в любом случае в ParamStr(1) будет находиться путь, даже если в нём будут пробелы
если указать так
"C:\Program Files\WinRAR\WinRAR.exe" %1
то будут глюки

Последний раз редактировалось rpy3uH; 18.03.2009 в 16:14.
rpy3uH вне форума Ответить с цитированием
Старый 18.03.2009, 17:34   #9
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
т.е. в любом случае в ParamStr(1) будет находиться путь
ParamStr(0) там находится путь, а ParamStr(1) это уже первый параметр
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 18.03.2009, 17:51   #10
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
ParamStr(0) там находится путь, а ParamStr(1) это уже первый параметр
я и говорю что в ParamStr(1) будет находиться путь к нашему файлу, для которого мы зарегистрировали расширение (например, *.bor), притом даже если в нём будут пробелы.
rpy3uH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать из адреса файл это или папка? Anfall Общие вопросы Delphi 12 25.02.2009 23:40
Как имея один exe файл получить исходник программы? Skoroxod Общие вопросы Delphi 4 20.02.2009 10:41
Как узнать время работы программы в паскаль? bullvinkle Помощь студентам 2 26.12.2008 11:20
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01
Как узнать путь запуска программы? John_chek Общие вопросы Delphi 5 04.05.2007 10:31