Путь к системной папке пользователя

Тема в разделе "Delphi - Система", создана пользователем Elvis, 22 авг 2005.

Статус темы:
Закрыта.
  1. Elvis

    Elvis Гость

    Люди подскажите плиз как в Делфи выдрать путь к системной папке пользователя то есть чтобы в переменную типа стринг мне загонялось например:
    C:\Documents and Settings\Elvis Presley

    Заранее благодарен!
     
  2. Spoiler

    Spoiler Гость

    Если я првильно поныл то ..
    используй переменную окружения

    для её создания
    SetEnvironmentVariable

    и
    для её прочтения
    GetEnvironmentVariable

    для просмотра всех системных переменных SET в CMD
     
  3. Elvis

    Elvis Гость

    Не сочтите за наглость но можно простенький примерчик. :)
    Заранее благодарен!
     
  4. SPoiler

    SPoiler Гость

    Первое
    SetEnvironmentVariable( 'MY_VAL', 'c:\my_dir' );

    регистрирует в системе переменную окружения MY_VAL

    после регистрации пожете сделать её вызов пример ниже ( выводит значение в дилоговом окошке )

    ShowMessage(
    GetEnvironmentVariable( 'MY_VAL' )
    );

    по ходу программы используешь GetEnvironmentVariable( 'MY_VAL' ) для извлечения её значение

    по ЦМД

    пуск - рун - вводишь CMD
    set - выдает все зарегистрированные переменные окруженя
    set MY_VAL=c:\my_dir

    и т.п. посмотри доку по переменным окружения если что непонятно
     
  5. Guest

    Guest Гость

    Я вижу что у меня в окружении есть переменная USERPROFILE.
    Мне надо считать в строковую переменную значение которое в ней хранится.
    если я пишу :

    str1:=GetEnvironmentVariable( 'USERPROFILE' );

    то компилятор матерится что не хвататет параметров функции GetEnviron...
    (я пишу под Дельфи 5)
     
  6. Konst_64

    Konst_64 Гость

    Я пишу под Д7.
     
  7. Guest

    Guest Гость

    <!--QuoteBegin-Konst_64+22:08:2005, 10:32 -->
    <span class="vbquote">(Konst_64 @ 22:08:2005, 10:32 )</span><!--QuoteEBegin-->Я пишу под Д7.
    [snapback]23836" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Меня это радует конечно но чем мне это помогает?
     
  8. Barmutik

    Barmutik Гость

    Вообще-то существует ещё и API функция и набор ещё параметров можно легко посмотреть в хелпе как в принципе и для дельфийской реализации.
     
  9. Elvis

    Elvis Гость

    <!--QuoteBegin-Barmutik+22:08:2005, 11:22 -->
    <span class="vbquote">(Barmutik @ 22:08:2005, 11:22 )</span><!--QuoteEBegin-->Вообще-то существует ещё и API функция и набор ещё параметров можно легко посмотреть в хелпе как в принципе и для дельфийской реализации.
    [snapback]23842" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Набор параметров посмотрел что с ними делать дальше помогите пожалйуста, ну возвращает он мне указатель на буфер с значением переменной что мне делать дальше напишите плиз простой пример как мне выдрать значение переменной USERPROFILE
     
  10. Elvis

    Elvis Гость

    <!--QuoteBegin-Barmutik+22:08:2005, 11:22 -->
    <span class="vbquote">(Barmutik @ 22:08:2005, 11:22 )</span><!--QuoteEBegin-->Вообще-то существует ещё и API функция и набор ещё параметров можно легко посмотреть в хелпе как в принципе и для дельфийской реализации.
    [snapback]23842" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    А можно немножко конкретнее что за функция?
     
  11. Barmutik

    Barmutik Гость

    С точном таким же именем но из Windows API.

    Под рукой только Дельфи 7... 5-ой нет..
     
  12. Poseidon

    Poseidon Гость

    Ну блин, 11 постов а примера человеку так и не дали!

    Elvis? тебе конкретно эта папка зачем? Именно ее никто не использует. Используют обячно папки, находящиеся в этой. Вот и дерзай:

    Код (Text):
    uses ShlObj;
    ...

    function GetPathStartUpFolder(Folder:integer):string;
    var
    s: PChar;
    p: PItemIDList;
    begin
    s := StrAlloc(128);
     p := nil;
     SHGetSpecialFolderLocation(Form1.Handle,Folder, p);
     SHGetPathFromIDList(p, s);
     Result:= s;
    end;
    Использовать можно так (возвращает папку рабочего стола:
    Код (Text):
    ShowMessage(GetPathStartUpFolder(CSIDL_DESKTOP));
     
  13. Barmutik

    Barmutik Гость

    Я бы не сказал что Ваш пример удачный ... особенно учитывая то что человек спрашивал не про это...
     
  14. Elvis

    Elvis Гость

    <!--QuoteBegin-Poseidon+22:08:2005, 20:12 -->
    <span class="vbquote">(Poseidon @ 22:08:2005, 20:12 )</span><!--QuoteEBegin-->Ну блин, 11 постов а примера человеку так и не дали!

    Elvis? тебе конкретно эта папка зачем? Именно ее никто не использует. Используют обячно папки, находящиеся в этой. Вот и дерзай:[/quote]

    Спасибо, мне в принципе пофигу надо знать путь к какойнить папке которая стабильно будет на компе (её удалить нельзя) и узер будет иметь к ней доступ.
    Спасибо за пример.
     
  15. Barmutik

    Barmutik Гость

    Уже тогда лучше дирректирия Виндовс :)
     
  16. Poseidon

    Poseidon Гость

    <!--QuoteBegin-Barmutik+23:08:2005, 09:25 -->
    <span class="vbquote">(Barmutik @ 23:08:2005, 09:25 )</span><!--QuoteEBegin-->Я бы не сказал что Ваш пример удачный ...
    [snapback]23922" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    <!--QuoteBegin-Elvis+23:08:2005, 09:27 -->
    <span class="vbquote">(Elvis @ 23:08:2005, 09:27 )</span><!--QuoteEBegin-->Спасибо за пример.
    [snapback]23923" rel="nofollow" target="_blank[/snapback]​
    [/quote] Поспешный вывод зачастую ошибочный. Barmutik, не торопитесь с выводом. Я хоть какой-то пример дал, в отличии от вас :)
     
  17. Barmutik

    Barmutik Гость

    Примеры вызыва функции были указаны много выше ... если не понятно как вызвать обычную функцию ... то это не к советам .. а просто нужно книжки почитать...
     
  18. Poseidon

    Poseidon Гость

    Все мы с чего-то начинали. Не стоит ждать того, что суда станут заходить полупрофи и выше. Новичков тоже хватает.

    PS. Это уже оффтоп начинается.
     
  19. Elvis

    Elvis Гость

    <!--QuoteBegin-Barmutik+23:08:2005, 09:59 -->
    <span class="vbquote">(Barmutik @ 23:08:2005, 09:59 )</span><!--QuoteEBegin-->Уже тогда лучше дирректирия Виндовс :D
    [snapback]23937" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Не подходит, папка нужна для записи, парсинга темы и удаления ексель файла, я не думаю что везде такие тупые Админы которые дадут полный доступ к директории уиндоус всем юзерам.
    Полюбому благодарен за советы.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей