Страница 2 из 3

Re: Программа-эксплорер

Добавлено: 02 фев 2007, 15:47
Колядин Максим
Сообщение от Somewhere

Ну вы блин даете :-) ParamStr(1) с неба не свалиться, вот в Run\Parameters он и вводится
Извиняюсь, - раньше никогда не приходилось сталкиваться с ParamStr. А что там прописывать надо? И почему у меня раньше всё работало, без Run\Parameters?
Если я не прав, то скажи, как правильно создать программу (эксплорер). И почему у меня почему у меня функция ParamStr(1) бросила показывать путь к коталогу (папке)? Буду очень признателен.

Re: Программа-эксплорер

Добавлено: 02 фев 2007, 16:05
somewhere
&quot писал(а):И почему у меня раньше всё работало, без Run\Parameters?
Возможно папка указывалась вручную.
Например твоя прога называется crdir.exe, при запуске мы ей передаем параметр, допустим:
crdir.exe D:\temp
Тогда Paramstr(1) = 'D:\Temp', и будет создаваться файл D:\temp.cop

Если мы запускаем программу из среды Turbo Pascal то передать параметры можно через Run\Parameters - вводим 'D:\Temp' и жмем потом Ctrl+F9 - прога идет с нужным параметром.

Если параметров нет, то можно использовать GetDir чтобы узать текущий каталог:
GetDir(2, Path);
Первый параметр - это диск, 1-А, 2-B, 3-С и т.д.
Второй - переменная, принимающая текущую папку

Re: Программа-эксплорер

Добавлено: 02 фев 2007, 17:27
Колядин Максим
Сообщение от Somewhere

Возможно папка указывалась вручную.
Нет, ты наверное неправильно меня понял. - Сначала, через реестр, папке я добавил команду "вскрыть". (Допустим, программа называется hide.exe)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\folder\shell\Вскрыть]

[HKEY_CLASSES_ROOT\folder\shell\Вскрыть\command]
@="\"C:\\Program Files\\Turbo Pascal\\hide.EXE\" %1"

Теперь при нажатии правой кнопки мыши на папку появилась команда "вскрыть". Программа, выполняющая эту команду - моя программа. Напомню её

Код: Выделить всё

uses dos;
var f: file;
begin
assign(f, paramstr(1));
setFattr(f, hidden);
end.
При нажатии на папку "вскрыть", paramStr(1) через командную строку должна получить имя выбранного файла, то есть если нажать на папку, расположенную на диске "C" - "games", то paramStr(1) будет равно (ParamStr(1))='C:\games. По плану, папка Games должна быть вскрыта, но paramstr не принимает имя файла через командную строку. Вернее бросила принимать т.к. раньше всё работало без проблем.
Если же эту процедуру применить не к папке, а к файлу, тогда файл вскроется. А почему это так - незнаю.

Re: Программа-эксплорер

Добавлено: 03 фев 2007, 21:29
Колядин Максим
Ты знаком с реестром?
ParamStr(1) по плану должна получать имя выбранного файла... Это как-то подозрительно. Проверь, работает ли этот процесс у тебя.
Скопируй курсивный текст (см выше) в текстовый документ, затем смени его расширение на *.reg, далее запусти его. @="\"C:\\Program Files\\Turbo Pascal\\hide.EXE\" %1" - это путь к твоей программе, при желании, измени его. Просто я думаю, что в реестре что-то наделал, теперь и бросило работать...
О результатах сообщи пожалуйста мне, буду очень благодарен.

Re: Программа-эксплорер

Добавлено: 05 фев 2007, 16:22
Игорь Акопян
Колядин Максим, для отладки добавь первой строкой вывод на экран Paramstr(1) вот если там действительно ничего - тогда придётся разбираться почему

Re: Программа-эксплорер

Добавлено: 05 фев 2007, 18:27
Колядин Максим
Спасибо за вариант, но он уже был мною просчитан. И, как не странно, там ничего нет. В чём дело, - понятия не имею.

Re: Программа-эксплорер

Добавлено: 05 фев 2007, 19:48
somewhere
Кидай тогда уж прогу. Попробуем завязать. Вообще через реестр не обязательно вручную править. В свойствах папки можно свободно настроить типы файлов и программы их открывающие

Re: Программа-эксплорер

Добавлено: 05 фев 2007, 22:19
Колядин Максим
Сообщение от Somewhere
Кидай тогда уж прогу
Вот файл, но, на всякий случай, скопируй файл RTM.exe из папки BP паскаля. Лично у меня возникает ошибка "File RTM.exe not found если этого файла небудет вместе с программой. Спасибо..

Re: Программа-эксплорер

Добавлено: 06 фев 2007, 09:33
somewhere
Объясняю на пальцах:
1. Заходим в "Свойства папки\Типы файлов"
2. Находим в списке "Папка с файлами"
3. Нажимаем "Дополнительно\Создать..."
4. Название действия "Hide" к примеру, и прописываем путь к проге
5. Жмакаем везде ОК
Теперь есть в Popup меню на папке пункт Hide. И все работает...
Тока вот с RTM могут быть проблемы. Кажется он делает режим DPMI для программ на BP дабы они могли использовать оперативную память за пределами мегабайта, однако всем этим управляет текущий DOS эмулятор, по умолчанию процесс NTVDM. Если ты ставил себе какой нить HASP эмулятор или дебагер для DOS они могут поставить свои эмуляторы 16 разрядного режима. Возможно проблема твоя именно здесь, а у меня все работает...

Re: Программа-эксплорер

Добавлено: 07 фев 2007, 00:55
Колядин Максим
Сообщение от Somewhere

Объясняю на пальцах:
1. Заходим в "Свойства папки\Типы файлов"
2. Находим в списке "Папка с файлами"
3. Нажимаем "Дополнительно\Создать..."
4. Название действия "Hide" к примеру, и прописываем путь к проге
5. Жмакаем везде ОК
Я хотел, чтобы от пользователя ничего не требовалось, кроме как нажать на .reg файл.. Ну ладно, мы отклонились от первоначальной темы - "прога-эксплорер"Напомню её условие - нужно создать программу, которая откроет ввёдный с клавиатуры каталог. После выполнения прога закрывается, а директория открывается - как решить, помоги.