Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

Как в Delphi получить букву системного диска?   Найти похожие ветки 

 
Garacio ©   (2007-02-02 14:48) [0]

C:\, D:\, E:\... ?


 
Vlad Oshin ©   (2007-02-02 14:52) [1]

получить системную папку, выцепить букву


 
Garacio ©   (2007-02-02 14:54) [2]

получить системную папку, выцепить букву

Кодом не поделишься?


 
Vlad Oshin ©   (2007-02-02 14:57) [3]

function GetSystemDir: String;
The GetSystemDir function returns path to the system directory


 
Elen ©   (2007-02-02 14:58) [4]


> Garacio


var p:array[0..255] of char;
begin
GetWindowsDirectory(p, 255);
caption:=ExtractFileDrive(p);
end


 
tesseract ©   (2007-02-02 14:59) [5]

Примерно так :

lpBuffer:PCHAR;
GetMem(lpBuffer,MAX_PATH);
GetSystemDirectory( lpBuffer,  MAX_PATH);
SysDrive:=ExtractFileDrive(lpBuffer);
FreeMem(lpBuffer);


 
Anatoly Podgoretsky ©   (2007-02-02 15:04) [6]

Что такое системный диск?


 
Vlad Oshin ©   (2007-02-02 15:07) [7]


> Что такое системный диск?

в данном случае то :)


> ExtractFileDrive

инттересно, а у такого красивого имени реализация случайно не result:=parametr[1] :)


 
Garacio ©   (2007-02-02 15:14) [8]

Спасибо!
Буду изучать и пробовать!


 
Elen ©   (2007-02-02 15:19) [9]


> инттересно, а у такого красивого имени реализация случайно
> не result:=parametr[1] :)

Что за parametr[1]?


 
clickmaker ©   (2007-02-02 15:19) [10]


> у такого красивого имени реализация случайно не result:=parametr[1]
> :)

нет, там наворот. Учитывает UNC-пути


 
clickmaker ©   (2007-02-02 15:19) [11]


> Что за parametr[1]?

ParamStr(1)
:)


 
Игорь Шевченко ©   (2007-02-02 15:36) [12]

Что такое системный диск ?


 
clickmaker ©   (2007-02-02 15:37) [13]

может это диск, на котором всё систематизировано?


 
Vlad Oshin ©   (2007-02-02 15:50) [14]

что видно в CPU

ExtractFileDrive
004081E0 53               push ebx
004081E1 56               push esi
004081E2 57               push edi
004081E3 55               push ebp
004081E4 8BEA             mov ebp,edx

разогреем регистры :)
004081E6 8BD8             mov ebx,eax
004081E8 8BC3             mov eax,ebx


узнаем длинну параметра
004081EA E81DBFFFFF       call @LStrLen
переход если меньше 2 знаков
004081EF 83F802           cmp eax,$02
004081F2 7C1A             jl +$1a

переход сюда
0040820E 8BC3             mov eax,ebx
не, точно меньше 2?
00408210 E8F7BEFFFF       call @LStrLen
00408215 83F802           cmp eax,$02

00408218 7C4B             jl +$4b
и т.д.

файл с:+ЛЮБАЯ_БИЛИБЕРДА_противоречащая_хранению_файловой_системы.оказывается_на_диске_с:  
s:="с:+ЛЮБАЯ_билиберда_противоречащая_хранению_файловой_системы.оказывается_на_диске_с: ";
s:=ExtractFileDrive(s);


 
clickmaker ©   (2007-02-02 15:52) [15]


> [14] Vlad Oshin

а зачем в цпу-то?
SysUtils.pas


 
Anatoly Podgoretsky ©   (2007-02-02 15:54) [16]

> Vlad Oshin  (02.02.2007 15:07:07)  [7]

А я не зря спрашиваю, ответ от автора интересен.


 
Elen ©   (2007-02-02 16:06) [17]


> Vlad Oshin ©   (02.02.07 15:50) [14]

Чет я недоганяю. Эт че такое?


 
Vlad Oshin ©   (2007-02-02 16:24) [18]


> Elen ©   (02.02.07 16:06) [17]

не понял

это ctrl+ alt+ с на брекпойте
или
это я так пошутить хотел про внутреннюю организацию функции


 
Elen ©   (2007-02-02 16:28) [19]


> Vlad Oshin

Не ну про дебуггер все ясно, и про прогу в асме тоже не секрет, но зачем загружать автора внутренней орагнизацией? (Ну если это шутка то она удаласЪЪ)
И сто такое  " result:=parametr[1]"?


 
Джо ©   (2007-02-02 16:29) [20]

А не CmdLine[1] имелось ввиду? :)


 
Джо ©   (2007-02-02 16:29) [21]

Тьфу, то есть ParamStr(0)[1]?


 
Джо ©   (2007-02-02 16:30) [22]

Только зачем оно имелось в виду, неясно :)


 
Elen ©   (2007-02-02 16:37) [23]


> Тьфу, то есть ParamStr(0)[1]?

Тоже Запутался :) ничего "И тебя вылечат и меня вылечат".
Кстати  ParamStr(0)[1] весьма креативно, особенно если учесть что это даст букву диска с которого запускается прога, но этот диск не обязательно будет системный (тот который с виндой)


 
Anatoly Podgoretsky ©   (2007-02-02 16:39) [24]

> Elen  (02.02.2007 16:37:23)  [23]

Что такое системный диск?


 
Elen ©   (2007-02-02 16:43) [25]


> Anatoly Podgoretsky

Цитирую себя : " (тот который с виндой)" IMHO :)


 
Vlad Oshin ©   (2007-02-02 16:50) [26]


> зачем загружать автора внутренней орагнизацией?

должен же и отвечающий получить удовольствие

О загадочном

>  result:=parametr[1]"?

это не

>  ParamStr(0)[1]?

и не что иное другое, кроме как
parametr
(читается: параметр)
смысловая нагрузка сего шедевра:
Передается в функции и процедуры. Бывает в том числе и ParamStr ном. Но это по совместительству.


 
RASkov   (2007-02-02 16:53) [27]

> [24] Anatoly Podgoretsky ©   (02.02.07 16:39)


> [25] Elen ©   (02.02.07 16:43)

Диск может быть загрузочным например С:, а винда может в это время находится на другом диске, например D: или E:
Так, что "системный диск", в данной ветке, имеется ввиду наверное [25] Т.е.  (тот который с виндой)...


 
RASkov   (2007-02-02 16:54) [28]

Забыл добавить еще и
> [0] Garacio ©   (02.02.07 14:48)

в начало [27]....


 
Anatoly Podgoretsky ©   (2007-02-02 16:55) [29]

> Elen  (02.02.2007 16:43:25)  [25]

Подобный ответ вызывает еще больше вопросов.
Поскольку я могу разместить "систему" как минимум на пяти логических и даже физических дисках, и теперь надо уточнять, что такое система.


 
Elen ©   (2007-02-02 16:57) [30]


> Vlad Oshin

Яснышко :)


 
Elen ©   (2007-02-02 16:58) [31]


> Anatoly Podgoretsky

Все! Я пошла домой. Всем пока - Приятных выдыхных :)


 
Anatoly Podgoretsky ©   (2007-02-02 17:01) [32]

> Elen  (02.02.2007 16:58:31)  [31]

Он обещал вернуться
Карлсон


 
clickmaker ©   (2007-02-02 17:09) [33]


> Garacio ©   (02.02.07 14:48)

а почему бы прямо так в лоб у системы не спросить?
GetEnvironmentVariable("SystemDrive"



Страницы: 1 вся ветка

Текущий архив: 2007.02.18;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.049 c
15-1170119218
hmmm
2007-01-30 04:06
2007.02.18
PHP


2-1169892708
GEN++
2007-01-27 13:11
2007.02.18
Передача массива между приложениями


15-1169982180
Ломброзо
2007-01-28 14:03
2007.02.18
Воскресные задачки (для воскресной школы)


3-1163486640
sapsi
2006-11-14 09:44
2007.02.18
Высота строк в ДБ гриде


9-1143070145
Rial
2006-03-23 02:29
2007.02.18
Исходники игр