ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Узнать главный диск [Delphi]
  #1  
Старый 28.03.2009, 22:49
Аватар для Sin3v
Sin3v
Участник форума
Регистрация: 16.07.2008
Сообщений: 159
Провел на форуме:
1063538

Репутация: 240
Отправить сообщение для Sin3v с помощью ICQ
По умолчанию Узнать главный диск [Delphi]

Нужно узнать главный локальный диск на котором лежит винда. Например у меня лежит винда в C:
 
Ответить с цитированием

  #2  
Старый 28.03.2009, 23:38
Аватар для Amper128
Amper128
Новичок
Регистрация: 23.11.2008
Сообщений: 5
Провел на форуме:
27508

Репутация: 5
По умолчанию

GETSYSTEMDRIVE
посмотри что-то в этом роде
щас на память не скажу точнее
 
Ответить с цитированием

  #3  
Старый 28.03.2009, 23:46
Аватар для gLuk!
gLuk!
Познающий
Регистрация: 28.03.2009
Сообщений: 30
Провел на форуме:
453605

Репутация: 1
По умолчанию

Смотри тему "[Delphi]/[Pascal] Задай вопрос, получи ответ", последние 2-3странички. Вопрос уже задавался ..
 
Ответить с цитированием

  #4  
Старый 28.03.2009, 23:47
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Код:
function GetSysCD: string;
var S: array[0..MAX_PATH] of Char;
begin
GetWindowsDirectory(S,SizeOf(S));
Result:=copy(S,0,1);
end;
 
Ответить с цитированием

  #5  
Старый 01.04.2009, 09:08
Аватар для [K4t]
[K4t]
Познающий
Регистрация: 15.02.2009
Сообщений: 54
Провел на форуме:
142825

Репутация: 7
По умолчанию

{var path: array[0..max_path]of char;}
GetWindowsDirectory(path,max_path);
ShowMessage(copy(path,0,2));

По моему самый простой способ.
 
Ответить с цитированием

  #6  
Старый 01.04.2009, 09:16
Аватар для procedure
procedure
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме:
3885269

Репутация: 1158


По умолчанию

Можешь сделать еще легче.

Я делфи не знаю, но принцип думаю один и тот же:

GetFileList("%WINDIR%");

Таким образом я получил список каталогов в папке Windows. %WINDIR% в данном случае является переменной среды. т.е. глобальная системная переменная. Таких переменных существует много. Зная их, чаще всего не требуется знать диск с ос.

К примеру так:

ReadFile(@"%WINDIR%\explorer.exe");
 
Ответить с цитированием

  #7  
Старый 01.04.2009, 10:39
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 eLWAux Result:=copy(S,0,1); можно заменить на result:=S[0];
 
Ответить с цитированием

  #8  
Старый 01.04.2009, 11:46
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

А вообще самый быстрый способ - это юзая PEB, найти полные пути до имен загруженных библиотек. Первые либы - это ntdll и kernel32, а они всегда находятся в папке с виндой. И вот просто взять первую букву этого пути, вот и получится буква системного диска. Пример:
Код:
function SysDisk:char;assembler;
asm
 mov eax,FS:[30h] // PEB
 mov eax,[eax+12] //  PPEB_LDR_DATA
 mov eax,[eax+28] // LIST_ENTRY
 mov eax,[eax] // LDR_DATA_TABLE_ENTRY
 mov eax,[eax+24] // FULL_NAME
 mov al,[eax]
end;
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ставим Windows на Apple (iMac) MaTpOc Статьи 10 26.02.2009 18:09
Как восстановить нечитающийся Cd? novichok Аппаратное обеспечение 8 02.05.2007 12:15
Как узнать код доступа (СИ) novichok Болталка 5 20.02.2006 21:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ