![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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, все виндовсы возвращают нормальный человеческий адрес...
|
|
#9
|
||||
|
||||
|
DJ PhoeniX
XP передает такой адрес, есть какие-либо пути решения? |
|
#10
|
||||
|
||||
|
Странно... на всей моей памяти программирования, такое было только при запуске в 98 и более низких...
Погугли, я 100% видел функцию преобразования, но где - хоть убей, не помню. Я тож поищу - найду - отпишу. П.С. это не для конкурса ли моего тебе по ассоциации надо текстовый файл открыть? ![]() Последний раз редактировалось 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;![]() Последний раз редактировалось PhoeniX, 03.07.2010 в 17:14. |
|
#12
|
||||
|
||||
|
Цитата:
Осталось реализовать только эту мелочь, софт то готов![]() |
|
#13
|
|||
|
|||
|
Вот тебе статейка с функой
) Но она NT http://eretik.omegahg.com/art/04.html |