Страница 1 из 2
Чем Кроссплатформенно заменить выявление системных путей ???
Добавлено: 20.03.2012 17:26:35
vitaly_l
В windows использую: SHGetSpecialFolderPath - это нужно для определения системных директорий и ещё реестр.
Кроссплатформенно - это нельзя...
Чем Кроссплатформенно заменить (выявление системных путей) ???
В windows я использую ProgramFiles и AppData(users)...
Задача такая:
1) в ProgramFiles - лежит программа.
2) в AppData(users) - лежат файлы пользователей. Можно ли их класть в GetAppConfigDir??? или в других системах есть аналог AppData(users) ???
Нужно аналоги |ProgramFiles и Users| Есть ли кросплатформенные функции?
Заранее благодарен за ответы.
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 20.03.2012 19:19:56
Ism
GetCurrentDir - текущая директория
GetUserDir - папка пользователя
Program files не нужно, достаточно GetCurrentDir
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 20.03.2012 19:43:08
vitaly_l
GetCurrentDir... не подходит... (но как вариант СПАСИБО).
програма в расчёте на пользователей, которые вообще не понимают, что такое диск...
GetUserDir - возвращает, то что нужно(спасибо)... Вот только я не знаю, что это будет значить в других системах(не windows)???
Например, указание: Path := GetUserDir + '\MyDirectoryName'; - будет ли корректно в МАС и Линукс,
если я туда запишу рабочую программу??? И как её увидят другие пользователи??? Соответственно нужен путь наподобии ProgramFiles...
Если я неправ - прошу скорректировать... (я никогда не видел линукс - скачиваю посмотреть...)
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 20.03.2012 20:09:08
alexs
vitaly_l
Не испольуй разделитель каталогов.
Есть константа PathDelemiter - она для каждой ОС корректна.
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 20.03.2012 20:15:26
vitaly_l
alexs писал(а):PathDelemiter
Большое человеческое: СПАСИБО! - добрый alexs.
нужна "уникальная" функция возвращающая, во всех системах: путь - наподобии ProgramFiles...
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 00:34:44
alexs
А в чём дело?
В винде - PF\Имя твоей программы
в линухах USR/BIN и USR/Имя твоей программы
А вообще - ExtractFilePath(ParamStr(0)) - и ты знаешь, откуда твоя программа запущена.
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 01:42:41
vitaly_l
Дело в простом, я кроме windows: других систем - не видел...
Всё что мне нужно - это проинсталлировать файлы в ХХХ директорию и сделать ярлык для запуска(я так думаю)...
остальное должно работать, благодаря Лазарус, (я так думаю) или я ложно понимаю понятие: кроссплатформенное приложение...
Поэтому и спрашиваю универсальную функцию, которая вернёт путь, не только для Linux, но и для MAC:

Должна быть такая функция(я так думаю)... Иначе как инсталляторы определяют куда и что???
В общем я запутался, сейчас установил ubuntu и скачиваю для неё лазарус... завтра всё прояснится (для меня)...
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 11:52:10
WAYFARER
vitaly_l писал(а):Поэтому и спрашиваю универсальную функцию, которая вернёт путь, не только для Linux, но и для MAC:
Должна быть такая функция(я так думаю)... Иначе как инсталляторы определяют куда и что???
В каждой операционной системе используется своя система управления пакетами для установки ПО. Существуют свои стандарты.
Для начала почитайте о структуре каталогов Linux
http://itshaman.ru/articles/10/directory-linuxPS. В линукс вам нужно определить лишь папку пользователя(переменная $HOME), все остальные пути - абсолютные и неизменные
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 18:56:46
vitaly_l
Узнал что в линуксе, exe запускается только под WINE,
Насколько я понимаю WINE - это эмуляция windows? -
значит архитектуру windows(для инсталлятора), можно сохранить???
Так ли это, может ли линукс проинсталировать у себя приложение для windows и запустить???
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 19:47:20
WAYFARER
vitaly_l писал(а):Насколько я понимаю WINE - это эмуляция windows? -
Wine есть реализация WinAPI для *nix
vitaly_l писал(а):Так ли это, может ли линукс проинсталировать у себя приложение для windows и запустить???
Может. Но это приведет к тому что вашей программой никто не будет пользоваться.
У вас есть кроссплатформенный инструмент - Lazarus, что мешает собрать бинарник для Linux?
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 22:26:18
vitaly_l
WAYFARER писал(а):У вас есть кроссплатформенный инструмент - Lazarus, что мешает собрать бинарник для Linux?
Что мешает, что мешает...
Я никогда не видел линукс...
Но это легко исправить...
Сегодня, установил линукс... (всё кроме web и половины Русского языка - работает...)
Там в линуксе - всё иначе...
Сложнее всего отключить моторику нажатия правой кнопки мышки...
Попытался установить лазарус …...
И осознал, что именно хотел сказать, Крылов когда писал басню: "Мартышка и очки"...
Я его распаковал в директорию home/// он запускается и даже открывает мой проект, но требует fpc...
Короче, Лазарус мне установить не удалось, Я ему указываю путь к fpc, а он говорит, что там должна быть rtl
и исполняемые файлы, а в архиве только одна директория bin\lib\fpc... но лазарус её не признаёт...
А мой экзешник созданный в windows: линукс - за программу вообще не считает...
Линукс для меня - совсем чужая система...

обидно до слёз...

Что Вы называете бинарником??,
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 23:14:47
kosteek
vitaly_l писал(а):Я ему указываю путь к fpc, а он говорит, что там должна быть rtl
Нужно доустановить пакет fpc-source
Если у тебя ubuntu то в терминале набери
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 23:14:57
WAYFARER
vitaly_l писал(а):Сегодня, установил линукс... (всё кроме web и половины Русского языка - работает...)
Следует доустановить пакеты локализации
Какой дистрибутив стоит?
vitaly_l писал(а):Попытался установить лазарус …...
Попробуйте установить из репозитария
vitaly_l писал(а):А мой экзешник созданный в windows: линукс - за программу вообще не считает...
и не должен))
vitaly_l писал(а):Что Вы называете бинарником??,
В данном случае исполняемый файл, программу
vitaly_l писал(а):Линукс для меня - совсем чужая система...
обидно до слёз...
Освоитесь, ничего сложного.
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 23:42:30
vitaly_l
WAYFARER писал(а):всё кроме web и половины Русского языка - работает..
Я ему всё прописал, но он инет - не видит...
нет инета - нет репозитория (книгу про линукс прочитал)...
WAYFARER писал(а):Освоитесь, ничего сложного.
Да, там нет ничего сложного, он мне даже понравился, там есть программы, которые я люблю...
и организация очень простая и доступная... самое забавное, он планшет сам определил... windows7 - этого не умеет...
Вот только, инет не хочет подключить всё вроде ему указал, а он никак...
fpc можно скачать в виде архива и разархивировать в home???
Re: Чем Кроссплатформенно заменить выявление системных путей
Добавлено: 21.03.2012 23:48:25
kosteek
vitaly_l какую вы операционную систему linux поставили?