![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Снова здрасте
![]() В функцию paramstr(1) передается путь к файлу при открытии программы. Так вот, если я открываю его, например, на диске C, то путь такой: Код HTML:
Код HTML:
![]() |
#2
|
|||
|
|||
![]() А вобще то вот такой путь попробуй C:\Users\User\Desktop\имя_файла. Просто вся фишка в том, что в папке Users хранится и папка рабочего.Ищещь папку внутри с именем юзера и там папку Desktop
|
#3
|
|||
|
|||
![]() Вот кодес с другого форума, из этой переменной окружения и адрес рабочего стала получите:
Код:
procedure TForm1.Button1Click(Sender: TObject); var s:string; begin SetLength(s, 1000); windows.GetEnvironmentVariable('USERPROFILE',pchar(S),length(s)); caption:=s; end; |
#4
|
||||
|
||||
![]() Понимаете, неизвестно что передастся в эту функцию. Мне скорее нужно написать отдельную функцию, которая преобразует эти виндовые сокращенные адреса в полноценные.
|
#5
|
|||
|
|||
![]() А можете конкретней задачу описать?
|
#6
|
||||
|
||||
![]() Я же писал. Знаете когда файл открывается с помощью какой-то одной программы? Вот у меня также, есть спец. расширение файла, которое понимает только моя утилита, пользователь щелкает на файл, и открывается приложение, которому передается имя открытого файла. Вот это самое имя(точнее путь к нему), зачастую имеет сокращенный виндовый вид, а мне нужно получить полный.
![]() |
#7
|
|||
|
|||
![]() Похоже Вы правы
![]() |
#8
|
||||
|
||||
![]() Это ж какая винда передаёт адреса в дос-формате? Начиная с 2000, все виндовсы возвращают нормальный человеческий адрес...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#9
|
||||
|
||||
![]() DJ PhoeniX
XP передает такой адрес, есть какие-либо пути решения? |
#10
|
||||
|
||||
![]() Странно... на всей моей памяти программирования, такое было только при запуске в 98 и более низких...
Погугли, я 100% видел функцию преобразования, но где - хоть убей, не помню. Я тож поищу - найду - отпишу. П.С. это не для конкурса ли моего тебе по ассоциации надо текстовый файл открыть? ![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 03.07.2010 в 17:05. |
#11
|
||||
|
||||
![]() Нашёл обратную функцию.
Код:
function ShortPathName(const path: String): string; var s: String; begin Setlength(s, 255); if GetShortPathName(path, PChar(s), 255) = 0 then { Function failed; maybe the path doesn't exist } Result := '' else Result := Trim(s); end; ![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 03.07.2010 в 17:14. |
#12
|
||||
|
||||
![]() Цитата:
![]() ![]() |
#13
|
|||
|
|||
![]() Вот тебе статейка с функой
![]() |