Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как сделать чтоб мой exe мог принимать параметры, ну типа такого: notepad.exe %1 
:(
    Опции темы
Elfebet
Дата 12.7.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



я собрался писать архиватор и мне нужно делать так как типа в winRar выбираеш файлы и через контекст. меню выбираеш ссылку добавить в архив.. (ну а эта ссылка принимает параметры winrar.exe %1, через реестр) и точно так же извлеч....
короче... как мне сделать чтоб мой проет смог принимать параметры? 


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
z-END
Дата 12.7.2006, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Paramstr использовать в приложении 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Elfebet
Дата 12.7.2006, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



Цитата

Paramstr использовать в приложении  

а по подробнее можно? а то я не в курсе.. 


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Yanis
Дата 12.7.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



За параметры отвечает функция ParamStr(x) вместо x указываешь номер параметра. Кол-во параметров можно узнать с помощью ParamCount. Например имеется строка c:\myprog.exe -x /y --z (q), то:
Код
  ShowMessage(IntToStr(ParamCount)); // кол-во параметров - 4
  ShowMessage(ParamStr(0)); // имя exe файла
  ShowMessage(ParamStr(1)); // -x
  ShowMessage(ParamStr(2)); // /y
  ShowMessage(ParamStr(3)); // --z
  ShowMessage(ParamStr(4)); // (q)

 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 12.7.2006, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



paramCount - укажет количество переданных параметров 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Elfebet
Дата 12.7.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



а как мне зделать чтобы моя программа принимала несколько параметров. вот хочу сделать чтобы привыборе нескольких файлов или папок и выбирая из контекстного меню Open in Project1.exe запускался мой проект и показал список выбранных файлов и папок.
ведь если я пропишу в реестре к примеру project.exe %1, то получится что при выборе 5 файлов мой проект запустится 5 раз. т.е. нужно наверное как-то динамически параметры сделать или как? подскажите плиз... очень нужно! smile  


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Alexeis
Дата 12.7.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Elfebet, можно запретить запуск второго экземпляра если запуск произошел с параметрами. И передавать параметры из второго экземпляра первому. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 12.7.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



PM MAIL   Вверх
Elfebet
Дата 12.7.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



по ссылке не совсем то, и зачем мне запрещать запуск второго екзепляра...
мне всего лишь нужно сделать динамические параметры. или я не так понял?
кароче говоря я пишу архиватор и мне надо чтобы при выборе нескольких файлов и папок через проводник и еще када пользователь выбирает из конт. меню добавить в архив, открывалась моя прога и показала файлы которые я выбрал для архивации... ну как в winRar (WinZip).
 smile  


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
z-END
Дата 12.7.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Цитата(Elfebet @  12.7.2006,  18:22 Найти цитируемый пост)
по ссылке не совсем то, и зачем мне запрещать запуск второго екзепляра...


Цитата(alexeis1 @  12.7.2006,  18:02 Найти цитируемый пост)
запретить запуск второго экземпляра если запуск произошел с параметрами. И передавать параметры из второго экземпляра первому. 

 


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Alexeis
Дата 12.7.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Немного не по теме, но я вам скажу даже taskmanager, вызывается много раз (если сильно жать Ctrl alt delete), это заметно когда система загружена. Постепенно после подсчета количества активных окон он закрывает все лишние экземпляры! 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Elfebet
Дата 12.7.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



ну а если я выбираю в проводнике 115 файлов и 64 папок что тогда будет с программой !?!?!? это в лучшем случае программа запуститься 115 раз без учета файлов в папках и потом 114 раз мне убивать екземпляр!?!?!?
не.. такой архиватор сразу за фукают... може есть лучше идеи?

Добавлено @ 17:40 
плюс если еще прога весит к примеру 30 мб это вообще будет разрыв.

Добавлено @ 17:44 
ну ведь winRar как-то работает. но он сто пудова не запускается несколько раз. 


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Alexeis
Дата 12.7.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата

плюс если еще прога весит к примеру 30 мб это вообще будет разрыв. 

можно сделать маленький "стартер" к программе на 10кб, который и будет этим заниматься (winrar использует маленькую dll)
что касается папок, то это самостоятельные объекты - будет по экземпляру на папку. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Snowy
Дата 12.7.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



WinRAR именно так и запускается.
Что касается размера - программа не грузится в память целиком, если только не использовался exe packer.

Добавлено @ 17:50 
Кроме того, XP кэширует запуск. 
PM MAIL   Вверх
Elfebet
Дата 12.7.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



Цитата

можно сделать маленький "стартер" к программе на 10кб, который и будет этим заниматься (winrar использует маленькую dll)

О! а это уже интересно! раскажите плиз более подробно как это можна реализовать. Ну вот я понял уже что нуно сделать маленький starter.exe, но чтобы он был где-то 10 кб в Delphi это уже сложновато....., а дальше как быть... кароче подскажите логику работы этого всего? 


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.