Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
ВнизКак в 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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.044 c