![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в Delphi получить букву системного диска? [D7]
Garacio © (2007-02-02 14:48:00)C:\, D:\, E:\... ?
clickmaker (2007-02-02 17:09:00) [1]
> Garacio © (02.02.07 14:48)
а почему бы прямо так в лоб у системы не спросить?
GetEnvironmentVariable("SystemDrive"
Anatoly Podgoretsky (2007-02-02 17:01:00) [2]> Elen (02.02.2007 16:58:31) [31]
Он обещал вернуться
Карлсон
Elen (2007-02-02 16:58:00) [3]
> Anatoly Podgoretsky
Все! Я пошла домой. Всем пока - Приятных выдыхных :)
Elen (2007-02-02 16:57:00) [4]
> Vlad Oshin
Яснышко :)
Anatoly Podgoretsky (2007-02-02 16:55:00) [5]> Elen (02.02.2007 16:43:25) [25]
Подобный ответ вызывает еще больше вопросов.
Поскольку я могу разместить "систему" как минимум на пяти логических и даже физических дисках, и теперь надо уточнять, что такое система.
RASkov (2007-02-02 16:54:00) [6]Забыл добавить еще и
> [0] Garacio © (02.02.07 14:48)
в начало [27]....
RASkov (2007-02-02 16:53:00) [7]> [24] Anatoly Podgoretsky © (02.02.07 16:39)
> [25] Elen © (02.02.07 16:43)
Диск может быть загрузочным например С:, а винда может в это время находится на другом диске, например D: или E:
Так, что "системный диск", в данной ветке, имеется ввиду наверное [25] Т.е. (тот который с виндой)...
Vlad Oshin (2007-02-02 16:50:00) [8]
> зачем загружать автора внутренней орагнизацией?
должен же и отвечающий получить удовольствие
О загадочном
> result:=parametr[1]"?
это не
> ParamStr(0)[1]?
и не что иное другое, кроме как
parametr
(читается: параметр)
смысловая нагрузка сего шедевра:
Передается в функции и процедуры. Бывает в том числе и ParamStr ном. Но это по совместительству.
Elen (2007-02-02 16:43:00) [9]
> Anatoly Podgoretsky
Цитирую себя : " (тот который с виндой)" IMHO :)
Anatoly Podgoretsky (2007-02-02 16:39:00) [10]> Elen (02.02.2007 16:37:23) [23]
Что такое системный диск?
Elen (2007-02-02 16:37:00) [11]
> Тьфу, то есть ParamStr(0)[1]?
Тоже Запутался :) ничего "И тебя вылечат и меня вылечат".
Кстати ParamStr(0)[1] весьма креативно, особенно если учесть что это даст букву диска с которого запускается прога, но этот диск не обязательно будет системный (тот который с виндой)
Джо (2007-02-02 16:30:00) [12]Только зачем оно имелось в виду, неясно :)
Джо (2007-02-02 16:29:00) [13]Тьфу, то есть ParamStr(0)[1]?
Джо (2007-02-02 16:29:00) [14]А не CmdLine[1] имелось ввиду? :)
Elen (2007-02-02 16:28:00) [15]
> Vlad Oshin
Не ну про дебуггер все ясно, и про прогу в асме тоже не секрет, но зачем загружать автора внутренней орагнизацией? (Ну если это шутка то она удаласЪЪ)
И сто такое " result:=parametr[1]"?
Vlad Oshin (2007-02-02 16:24:00) [16]
> Elen © (02.02.07 16:06) [17]
не понял
это ctrl+ alt+ с на брекпойте
или
это я так пошутить хотел про внутреннюю организацию функции
Elen (2007-02-02 16:06:00) [17]
> Vlad Oshin © (02.02.07 15:50) [14]
Чет я недоганяю. Эт че такое?
Anatoly Podgoretsky (2007-02-02 15:54:00) [18]> Vlad Oshin (02.02.2007 15:07:07) [7]
А я не зря спрашиваю, ответ от автора интересен.
clickmaker (2007-02-02 15:52:00) [19]
> [14] Vlad Oshin
а зачем в цпу-то?
SysUtils.pas
Vlad Oshin (2007-02-02 15:50:00) [20]что видно в 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);