|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Есть CurrentDir и Application.ExeName, но это НЕ то! Если я запишу программу на флешке, а потом вытащу её и снова вставлю, то этот «текущий путь» у программы пропадает! (в то время как currentdir и exename по прежнему будут выдавать «d:\» и «d:\Project1.exe»). Например запустив программу с флешки, вытащив её и вставив на место, если вы нажмёте кнопку выполняющую CreateDir('123'); то директория не создастся. А если попытаетесь создать файл: AssignFile(F, '123.txt'); Rewrite(F); то Rewrite выдаст ошибку “I/O error 433”. В то время как если жёстко укажу путь с диском 'd:\123' то он будет и создавать директорию и файл. То есть, текущий путь где-то не из CurrentDir берётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 18:21 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 18:31 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Нет. GetCurrentDirectory как и CurrentDirectory после передёргивания флешки по прежнему указывает на то что текущая директория “d:\” Одна ко создать файл или директорию в текуще директории уже невозможно, а если указать d:\... то всё создаётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 19:22 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSky, С точки зрения "вытаскиваня флешки" чем тебя Application.ExeName не устраивает? Куда ты вообще хочешь свой файл сохранять? Это мне напоминает сценарий: Я запустил программу с флешки, а потом ее из ПК вытащил и в другой ПК вставил. Хочу что бы файлы из ранее запущенной программы на флешку в другом компе сохранялись. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 19:49 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSky Если я запишу программу на флешке, а потом вытащу её и снова вставлю, Пациент, не делайте ТАК - (с). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 19:54 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Забудьте про текущий путь, иначе никогда не отладитесь до конца. Используйте только полный. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 20:01 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Я понимаю что тут очень много знатаков религии, музыки и медицины... желающих показать свои познания в этих областях. Но вопрос вполне конкретный - Откуда программа получает информацию о своём местоположении (текущей директории для записи/чтения). И это не GetCurrentDir, так как он не меняется после передёргивания флешки, а файл или директорию в текущей директории создать уже нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 20:12 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSkyНет. GetCurrentDirectory как и CurrentDirectory после передёргивания флешки по прежнему указывает на то что текущая директория “d:\” А я и не говорил, что оно должно работать так как ты хочешь. В статье описывается как оно работает на самом деле. Если ты собственными шаловливыми ручками сделал текущий каталог недоступным - это твоя проблема. Он (внезапно) не обязан быть валидным или существующим. Это просто глобальная переменная процесса, которой можно назначить любое вменяемое или невменяемое значение. Если ты хочешь в своей программе не допускать подобной проблемы - отрабатывай MW_DEVICECHANGE и позаботься чтобы текущий каталог стал валидным после шаловливых ручек. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 20:18 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Дим, ну вот ты сразу по лбу канделябром :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 22:29 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSky, Друже, а ничего, что твой D:\ , когда ты вставишь флешку в другой комп - отмапится на Z:\ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 22:31 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Друже, а ничего, что твой D:\ , когда ты вставишь флешку в другой комп - отмапится на Z:\ ? Даже можно представить другую ситуацию, когда после извлечённой флешки вставляется ДРУГАЯ флешка и получает туже метку D:\, а извлечённая вставляется следующей и получает F:\ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 23:41 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSky Я понимаю что тут очень много знатаков религии, музыки и медицины... желающих показать свои познания в этих областях. Но вопрос вполне конкретный - Откуда программа получает информацию о своём местоположении (текущей директории для записи/чтения). И это не GetCurrentDir, так как он не меняется после передёргивания флешки, а файл или директорию в текущей директории создать уже нельзя. Конкретный, но очень в данном случае дурной и неграмотный. Вот нафига в современную эпоху пытаться записать какой-то файл в каталог с исполняемым файлом? Винда для записи таких файлов представляет кучу вариантов не зависящих от "вставленности флешки". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 02:18 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
northener Винда для записи таких файлов представляет кучу вариантов Реестр нужен только для того что бы найти само ПО. Файлы хранящиеся в каталоге с ПО - рулят. Каталоги в дебрях User не выбор advanced юзеров ПК. Это попытка подражать андроиду, где секюрити уже сожрала все права юзера. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 02:44 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
rgreat Файлы хранящиеся в каталоге с ПО - рулят. Прав-то нет. XP уже вроде помирать начало таки. Можно, конечно, издеваться над пользователями и заставлять их не ставить в PF, поднимать права на папку... Но это всё смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 05:20 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
YuRock, Ну да. Ну да. По мнению безопасников все должно быть запрещено, а юзер должен страдать и писать заявки и объяснительные на каждый чих. Что характерно, по опыту это от вирусов и проблем нихрена не спасает, но работать мешает. Ну и слава богу это пока без меня. А заставлять никого ничему не надо. Надо делать нормальные инсталляторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 06:22 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
rgreat YuRock, Ну да. Ну да. По мнению безопасников все должно быть запрещено, а юзер должен страдать и писать заявки и объяснительные на каждый чих. Что характерно, по опыту это от вирусов и проблем нихрена не спасает, но работать мешает. Ну и слава богу это пока без меня. А заставлять никого ничему не надо. Надо делать нормальные инсталляторы. А при хранении приложения в Program Files всё намного сложнее. И тебе правильно говорят - хватит мыслить категориями XP, она давно умерла)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 07:16 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
rgreat По мнению безопасников все должно быть запрещено, а юзер должен страдать и писать заявки и объяснительные на каждый чих. Что характерно, по опыту это от вирусов и проблем нихрена не спасает, но работать мешает. rgreat А заставлять никого ничему не надо. Надо делать нормальные инсталляторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 07:26 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
InterSky Dimitry Sibiryakov, Нет. GetCurrentDirectory как и CurrentDirectory после передёргивания флешки по прежнему указывает на то что текущая директория “d:\” Одна ко создать файл или директорию в текуще директории уже невозможно, а если указать d:\... то всё создаётся. Замечу, что можно сделать не только GetCurrentDirectory но и SetCurrentDirectory и установить каталог как нужно. Останется только его найти. Поиск: запоминаем идентификатор флешки с которой запустились по GUID тома (гуглить volume guid windows). Обрабатываем MW_DEVICECHANGE и в момент когда том запуска вдруг окажется опять доступным, устанавливаем SetCurrentDirectory на возможно новый его путь, либо старый, если остался. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 23:56 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
makhaon InterSky Dimitry Sibiryakov, Нет. GetCurrentDirectory как и CurrentDirectory после передёргивания флешки по прежнему указывает на то что текущая директория “d:\” Одна ко создать файл или директорию в текуще директории уже невозможно, а если указать d:\... то всё создаётся. Замечу, что можно сделать не только GetCurrentDirectory но и SetCurrentDirectory и установить каталог как нужно. Останется только его найти. Поиск: запоминаем идентификатор флешки с которой запустились по GUID тома (гуглить volume guid windows). Обрабатываем MW_DEVICECHANGE и в момент когда том запуска вдруг окажется опять доступным, устанавливаем SetCurrentDirectory на возможно новый его путь, либо старый, если остался. А теперь вернемся к топику и зададим себе и особенно ТС'у вопрос. А нафига нужно передергивать флешку если она нужна в процессе работы программы? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 00:38 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
northener, так то всяко бывает. мы тоже распространяем часть софта на флешках (точнее юзеры так пишут софт). бывает выдергивают. я, правда, особо не заморачивался, получается записать файл по изначальному пути старта пишу. нет - пропускаю запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 10:34 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
makhaon, ага. Я делал софт, генерирующий дистрибутивы нашего ПК, а также специальную версию ПК, работающую с флешки. В обоих случаях даже в голову не приходило, что нужно предусмотреть ситуацию, когда какой-то чудак в процессе работы флешку выдернет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 11:39 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
ъъъъъ В обоих случаях даже в голову не приходило, что нужно предусмотреть ситуацию, когда какой-то чудак в процессе работы флешку выдернет. надо бы и отключение Винта предусмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 12:42 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
и отключение процессора, мало ли что ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:22 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
что бы потом эврикавскими логами ящик не заваливало, лучше как минимум {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} воткнуть + обработку записи на флешку хотя, конечно, дело тут хозяйское ) можете и просто софт покрэшить ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 21:35 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Оффтопик ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 12:19 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
GunSmoker, так то пофильтровать не проблема ) можно и просто отключить. но хочется ж что бы не падало. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 22:44 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
makhaon northener, так то всяко бывает. мы тоже распространяем часть софта на флешках Не понял. Это что? Защита от нелицензионного использования софта??? Если так, то это бред неграмотного троешника. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 03:00 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
всего не читал. вот это почему то всегда работает как портатив(каталог с Арр, данными и настройками. можно перенести куда угодно и все работает) Код: pascal 1.
Код: pascal 1.
; у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 09:15 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
northener makhaon northener, так то всяко бывает. мы тоже распространяем часть софта на флешках Не понял. Это что? Защита от нелицензионного использования софта??? Если так, то это бред неграмотного троешника. Нет, просто юзеры нашу одну программулину, бывает и довольно часто, пишут на флешку и с нее стартуют. И, потом, выдергивают, ну и результаты были видны в виде логов исключений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 21:09 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
makhaon northener пропущено... Не понял. Это что? Защита от нелицензионного использования софта??? Если так, то это бред неграмотного троешника. Нет, просто юзеры нашу одну программулину, бывает и довольно часто, пишут на флешку и с нее стартуют. И, потом, выдергивают, ну и результаты были видны в виде логов исключений. Ну так эти проблемы никак, никогда и ни в каком случае не проблемы автора программы! Вам это нужно понять в первую очередь и донести до сисадминов (если таковые есть). Если сисадминов нет, значит вы должны написать инструкцию по использованию вашей программы. И в случае нарушения пользователями данной инструкции - посылать их лесом на север и вдобавок на верблюдах! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 02:30 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
northener makhaon пропущено... Нет, просто юзеры нашу одну программулину, бывает и довольно часто, пишут на флешку и с нее стартуют. И, потом, выдергивают, ну и результаты были видны в виде логов исключений. Ну так эти проблемы никак, никогда и ни в каком случае не проблемы автора программы! Вам это нужно понять в первую очередь и донести до сисадминов (если таковые есть). Если сисадминов нет, значит вы должны написать инструкцию по использованию вашей программы. И в случае нарушения пользователями данной инструкции - посылать их лесом на север и вдобавок на верблюдах! Спаси дерево - убей бобра - (с). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 08:41 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
northener, пользователи - это обычные, рядовые люди (пациенты), тетки, бабки. кто там что когда будет читать? надо что бы работало везде и не падало. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 18:45 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Пациенты, приходящие со своей программой на флэшке... Эпическая картина. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 18:52 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а потому что программа секретная и ее нельзя никому давать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2022, 20:33 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Так то программа не обязана в момент старта загружаться в память полностью. Ее куски вполне могут подгружаться при попытке обращения к фрагменту кода. Так что если выдернуть флешку, программа в принципе может упасть в любой момент. И это не баг, это фича. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 13:33 |
|
Как узнать текущий путь (диск с директорий) в котором программа считает себя?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, X11, Вы что-то, господа, путаете Пациенты уходящие со своей (нашей) программой на флешке. Вообще программа распространяется свободно на сайте, кто ее там куда запишет и принесет неизвестно. Чаще всего эту программу пишут нашей другой программой доктора пациентам вместе с данными пациента. Что там у себя пациент делает с прогой, потом хорошо бывало видно по отчетам. Впрочем, в основном, уже вопросы закрыты. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 22:19 |
|
|
start [/forum/topic.php?all=1&fid=58&tid=2036626]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 263ms |
total: | 416ms |
0 / 0 |