Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог GetWindowsDirectory, в Delphi 
:(
    Опции темы
NiJazz
  Дата 3.1.2004, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Как средствами Delphi можно узнать директорию Windows?
PM MAIL   Вверх
Смайлик
Дата 3.1.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 11.12.2003
Где: Киргизия

Репутация: нет
Всего: нет



Есть библиотека RxLib там есть такая функция.
Есть еще API функия (ниже ее описание) Если надо могу выдрать из RxLib их функцию.

Код
The GetWindowsDirectory function retrieves the path of the Windows directory. The Windows directory contains such files as Windows-based applications, initialization files, and Help files.

UINT GetWindowsDirectory(

   LPTSTR lpBuffer, // address of buffer for Windows directory
   UINT uSize  // size of directory buffer
  );


Parameters

lpBuffer

Points to the buffer to receive the null-terminated string containing the path. This path does not end with a backslash unless the Windows directory is the root directory. For example, if the Windows directory is named WINDOWS on drive C, the path of the Windows directory retrieved by this function is C:\WINDOWS. If Windows was installed in the root directory of drive C, the path retrieved is C:\.

uSize

Specifies the maximum size, in characters, of the buffer specified by the lpBuffer parameter. This value should be set to at least MAX_PATH to allow sufficient room in the buffer for the path.



Return Values

If the function succeeds, the return value is the length, in characters, of the string copied to the buffer, not including the terminating null character.
If the length is greater than the size of the buffer, the return value is the size of the buffer required to hold the path.



PS Первый раз не ту функцию выдрал

Это сообщение отредактировал(а) Смайлик - 3.1.2004, 15:13
PM MAIL   Вверх
NiJazz
Дата 3.1.2004, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Цитата
Есть еще API функия (ниже ее описание) Если надо могу выдрать из RxLib их функцию.

Ты тему поста читал?

PM MAIL   Вверх
p0s0l
Дата 3.1.2004, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



NiJazz, а чем тебе GetWindowsDirectory не нравится ?
Код
var
 Buf : PChar;
begin
 GetMem (Buf, 1024);
 GetWindowsDirectory(Buf, 1024);
 Form1.Caption := Buf;
 FreeMem (Buf);
end;




--------------------
С уважением, г-н Посол.
PM   Вверх
Смайлик
Дата 3.1.2004, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 11.12.2003
Где: Киргизия

Репутация: нет
Всего: нет



Кстати, посмотрел в RxLib - там тоже через API. smile.gif см. выше
PM MAIL   Вверх
NiJazz
Дата 3.1.2004, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



p0s0l, да всем нравится. В VC им пользовался. Не очень люблю API смешивать с функциями Delphi. И к тому же аналога malloc'а в делфе не знал. smile.gif
PM MAIL   Вверх
<Spawn>
Дата 3.1.2004, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Например, прочитать в реестре smile.gif :

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 Reg : TRegistry;
begin
 Reg := TRegistry.Create;
 try
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   if Reg.OpenKey('Software\Microsoft\Windows NT\CurrentVersion', False) then
     if Reg.ValueExists('SystemRoot') then
       ShowMessage(Reg.ReadString('SystemRoot'));
 finally
   FreeAndNil(Reg);
 end;
end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
NiJazz
Дата 3.1.2004, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Цитата
Например, прочитать в реестре  :

Ой, так слишком трудно... smile.gif Но всё равно спасибо за помощь. smile.gif
Так всё же нет в делфе такого средства?
PM MAIL   Вверх
Vit
Дата 3.1.2004, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



В нвшем Faq есть функция нахождения всех системных папок, по поводу смешивания VCL и API - смешивай на здоровье, проблем нет.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
NiJazz
Дата 3.1.2004, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



Цитата
по поводу смешивания VCL и API - смешивай на здоровье, проблем нет.

Это понятно. Просто не люблю. Такое своеобразное "ФИ". smile.gif
PM MAIL   Вверх
<Spawn>
Дата 3.1.2004, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



NiJazz Напиши себе функцию, в которой инкапсулируй вызов GetWindowsDirectory и забудь про эту АПИ smile.gif


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Смайлик
Дата 4.1.2004, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 11.12.2003
Где: Киргизия

Репутация: нет
Всего: нет



Кроме как через API или реестр другого пути нет... }:&
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.