Кто ни будь знает как сделать так чтобы призапуске програмы она копировала
фаил в в у казаную втексте проги папку и прописавала бы в реестре запуск этого файла при загрузки компа.
Копирование файла |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Копирование файла |
Darkwolf |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Мужской Репутация: 0 |
Кто ни будь знает как сделать так чтобы призапуске програмы она копировала
фаил в в у казаную втексте проги папку и прописавала бы в реестре запуск этого файла при загрузки компа. |
SKVOZNJAK |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Если требуется лишь запуск проги при старте компа, то достаточно поместить её в каталог АВТОЗАПУСК в главном меню. Ну а если тебе нужно прописать что-нибудь в реестре, проще использовать для этого прогу на дельфи. Пусть паскалевская прога создаст *.bat файл, а уж он запустит дельфийскую. :D Немного коряво, но эффектно. Если хочешь просто поприкалываться, то можно просто подставить свою прогу вместо уже прописанной в реестре ;) Батник отлично может копировать и стирать файлы, вот только если ты задашь команду del *.* хрюша возможно запросит подтверждения, а вот del *.ini скорее всего прокатит :o
|
Darkwolf |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Мужской Репутация: 0 |
SKVOZNJAK спасибо попробую
|
trminator |
Сообщение
#4
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Прописать в реестре автозапуск можно, написав .reg-файл, его вызывать из батника. Насколько я помню, можно сделать так, чтобы не спрашивалось подтверждения у пользователя.
А можно вообще не в реестр прописываться (ДОСовой проге это ни к чему), а в win.ini - в разделы [run] и [start]. Правда, не знаю, как там в ХР с win.ini сделано... -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Atos |
Сообщение
#5
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Всё собираюсь и никак не соберусь выложить прогу, копирующую файлы и папки с файлами в указанное место чисто паскальскими средствами с BlockRead и BlockWrite. Надо ее еще закомментировать. Долго писал, но получилось неплохо. Большие папки( до нескольких сотен метров) копирует чуть ли не быстрее, чем "вручную", через винду. А если произвести не очень большие изменения, то можно делать много прикольных вещей: копировать сразу в несколько папок, копировать определённый тип файлов, удалять или создавать определённые файлы во всех вложенных папках, выдавать их общий размер... Или делать не очень добрые вещи.
Когда собирался заглянуть к другу, ровно за 2 минуты так изменил прогу, что она в выбранной папке и во всех ее вложенных папках создавала файл XAXAXA.txt Выбрал у него не компе папку в сотню метров. Подпапок в ней, соответственно было, может тысяча. Запустил прогу и со словами "Знай программистов универа!" набрал имя папки. Пять минут любовался многоточиями, плавающими в воздухе над другом, который открывал каждую подпапку и стирал хихиканьки. Потом ехидно сказал:"Да как ты мог подумать?! Мы, программисты, люди мирные. Перед тем , как папку поганить, я ее скопировал сначала!" З. Ы. А ведь был сильное искушение набрать "D:/"... З. З. Ы. Правда и "антивир" пишется тоже за 2 минуты. |
Atos |
Сообщение
#6
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
А вот и прога:
uses dos,crt; Прогу писал абсолютно самостоятельно, но всё-таки работает. Недоделана, правда, обработка ошибок. Хотя, по идее, их и не должно возникать, если не пытаться копировать на защищённый диск или вообще в никуда. Если можно ещё оптимизировать код, подскажите. Замечания по проге:
|
Dark |
Сообщение
#7
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Ну копирование это то не сложно, а вот реестр ) чтоб пользователь не знал...
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Darkwolf |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Мужской Репутация: 0 |
Atos программку посмотрю, если получется что то улучшить обезательно напишу. Может есть какиенибуть идеи насчет реестра.
Сообщение отредактировано: Darkwolf - |
Atos |
Сообщение
#9
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
К сожалению, во всём, что касается реестра, автозапуска и прочего такого я сам полный чайник, буду благодарен, если кто-нибудь поподробнее объяснит.
Кстати, ещё немного теории. Что означает атрибут файла? Атрибут файла равен ord(файл защищён)*1+ord(файл скрыт)*2+ord(файл системный)*4+ord(файл - заголовок тома{ксатати, что это такое, я тоже не понял})*8+ord(папка)*16+ord(файл архивный)*32. Так что строчка проги if ((at>=16) and (at<64) and ((at>=48) or (at<32))) означает if(этот файл - папка) Просто написать if at=Directory было бы некоректно. Directory - это константа, равная 16. Но нам ведь нужно найти ВСЕ папки, в том числе и архивные, и скрытые и всякие разные. А прога бы попыталась копировать некоторые такие папки как простые файлы. |
Darkwolf |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Мужской Репутация: 0 |
Atos если есть ещё интересные программки и матерьялы скидывай мне на так называемый личный ящик. Есле нужен в чём то совет всегда рад услышать.
Сообщение отредактировано: Darkwolf - |
Altair |
Сообщение
#11
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Атрибут есть у каждого файла или папки,
1) У папки может быть следующие атрибуты: от 16 до 31 и от 48 до 64 (в десятичной записи) или если записать математически ,то [16,31]V[48,64] 2) У файла может быть все остальное, т.е до 16 и от 31 до 48. Если надо удалить файл или изменить его, а атрибут у него - только чтение (ReadOnly), то делаем следующее: SetFAttr(f,0); - ставим атрибут- просто файл! и теперь хоть удаляй, хоть переписывай! -------------------------- Про реестр. Вот, что я обнаружил в статье по его оптимизации: Файлы реестра можно немного ужать в размере, если, сначала, экспортировать его в текстовый файл, а затем восстановить из этого файла. Для этого в меню "Run" наберите REGEDIT /E REGTXT.REG, затем, загрузите ДОС и наберите команду REGEDIT /C REGTXT.REG (без кеширования диска Smartdrive'ом процесс займет несколько часов!!!). ----------------------------------- Сам я не пробовал, но мне кажется, это единственный способ работы с реестром , в досе (т.е в текстовом виде) Реестр похудеет на сотню килобайт. Сообщение отредактировано: Oleg_Z - -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GLuk |
Сообщение
#12
|
Профи Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: 0 |
2Oleg_Z: Ты имел ввиду единственный способ работы с реестром в досе средствами regedit'a??
Чтобы усер не увидел, надо имхо знать формат файла реестра: Почитать мона здесь: http://paullee.ru/regstr4.html И здесь: http://www.google.com.ru/search?q=%F4%EE%F...%E5%F1%F2%F0%E0 |
Atos |
Сообщение
#13
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Цитата Реестр похудеет на сотню килобайт. А это что-то даёт, кроме просто увеличения свободного место на диске? Ведь для современных многогиговых хардов 100 К, в общем-то роли не играет. |
trminator |
Сообщение
#14
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Теоретически, должна возрасти скорость работы с реестром. Фактически -- не пробовал =)
С реестром ИМХО можно работать, составляя reg-файлы, какие надо, и regedite'ом их всандаливать =) регедит запускать из проги -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
P@sh@ |
Сообщение
#15
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
для физического ужатия файлов реестра как в W98, так и в XP, есть хорошая утилита RegCompact (перед ней не помешает запустить какой-нить RegClean)
насчет атрибутов файлов: надо просто разложить байт атрибутов на биты, и посмотреть, какие включены, а какие нет. Константа faDirectory=16? значит признак каталога - включенный 4-й бит... и т.д. Для проверки обычно пишут не (atr=faDirectory), а (atr and faDirectory<>0) или (atr and faDirectory=faDirectory). для установки/сброса бита пишут newatr:=atr or faHidden/newatr:=atr and not faReadonly (not здесь означает 255-faReadonly) |
P@sh@ |
Сообщение
#16
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
по поводу копирования файлов - делал я когда-то небольшую утилитку под ДОС, копирование файла с использованием верхней памяти в качестве буфера (до 16-ти мегабайт), большие файлы копировались быстрее, чем например командой copy, прикольно было с дискеты копировать - загрузил сразу всю дискету в память, и можно доставать, а он в это время на винт скидывает... или на одном винте чтоб часто с дорожки на дорожку не прыгал, время не терял, или с сидюка тормозного, минуту грузит, полминуты отдыхает. Только smartdrive не надо включать, хуже становится
|
Atos |
Сообщение
#17
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Круто... P@sh@, а исходник не выложишь?
|
BlackShadow |
Сообщение
#18
|
Гость |
Если это поможет... |
P@sh@ |
Сообщение
#19
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
программа копирования файлов (одного файла за раз) с использованием буфера в XMS...
Реализация (вместе с дополнительным модулем) перенесена сюда: FAQ: Файлы |
Atos |
Сообщение
#20
|
Прогрессор Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Да, до такого мне ещё расти... Обязательно попытаюсь разобраться. Только один вопрос: XMS - это стандартный модуль в одной из версий Паскаля или его надо как-то отдельно искать? Да, и какая есть литература по таким вот фокусам с памятью?
|
Текстовая версия | 4.05.2024 18:25 |