- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
function IsRunningWithAdminPrivs: Boolean;
begin
var
List: TStringList;
begin
List := TStringList.Create;
try
try
List.Text := 'Sample';
// Use SHGetFolder path to retreive the program files folder
// here is hardcoded for the sake of the example
List.SaveToFile('C:\program files\test.txt');
Result := True;
except
Result := False;
end;
finally
List.Free;
DeleteFile('C:\program files\test.txt');
end;
end;
guest 23.12.2010 01:05 # −1
К слову сказать, я не знаю как под ОС с UAC, например в 7ке, проверить запущена ли программа от имени админа. :-[
Если кто знает, то рассказывайте.
Lure Of Chaos 23.12.2010 01:10 # +1
inkanus-gray 23.12.2010 01:17 # +4
istem 23.12.2010 01:29 # +4
inkanus-gray 23.12.2010 01:34 # +2
bugmenot 23.12.2010 01:39 # +4
индус албанец его сначала обрежет по начальному кластеру
Hello! I'm Aldo a 21y old computer science student from Albania.
Started programming at the age of 13 when presented with the Turbo Pascal 7 IDE.
Currently working in various projects mostly using Delphi and PHP.
о, как!
inkanus-gray 23.12.2010 01:42 # 0
bugmenot 23.12.2010 01:43 # −1
guest 23.12.2010 01:52 # −2
Очень универсально. Особенно подходит для юникс. Ага... :D
istem 23.12.2010 01:58 # +1
guest 23.12.2010 08:58 # 0
'C:\program files' - пока этот путь получают не из системной функции - это говнокод.
"test.txt" - а тут нужно было бы придумать что-нибудь по оригинальнее, что-бы точно названия файлов не совпали.
Govnocoder#0xFF 23.12.2010 15:11 # +3
istem 23.12.2010 15:16 # +3
TarasB 23.12.2010 15:56 # 0
guest 23.12.2010 17:32 # +3
Так что тоже не тру. Лишь поглаживаю.
inkanus-gray 23.12.2010 17:41 # +1
bugmenot 23.12.2010 15:46 # 0
Анонимус 23.12.2010 16:02 # +4
люблю, когда в код вшивают "c:\мои документы"
bugmenot 23.12.2010 16:30 # +3
koodeer 23.12.2010 19:37 # +1
bugmenot 23.12.2010 20:07 # +1
ctm 23.12.2010 21:14 # +1
для таких все по-умолчанию оставлять стараюсь. у меня только %temp% нестандартный - B:\Temp, который Ram-drive.
ctm 23.12.2010 21:16 # +1
guest 23.12.2010 22:44 # −1
TarasB 24.12.2010 10:53 # 0
Анонимус 24.12.2010 19:08 # +1
guest 24.12.2010 19:14 # 0
И да... Своп может быть не только на диск, но и в верхнюю память, типа XMS, EMS и тд.
И даже, я где-то видел драйвер для линукса, свопающий в видеопамять, тк она не сильно используется, когда в игры не играешь...
Анонимус 24.12.2010 19:17 # 0
по-умолчанию именно он лежит в контексте моей головы
зы: своп НЕ МОЖЕТ БЫТЬ без поддержки страничной адресации, по крайней мере на писи
разве нет?
guest 24.12.2010 19:19 # 0
Анонимус 24.12.2010 19:21 # 0
1) оверлеи это НЕ свап.
2) куда бы ни была загрузка (на диск или на луну) без страничной адресации свап не возможен
внимание, вопрос: к чему был Ваш пост"?
guest 24.12.2010 19:23 # 0
Смотря что вы под свопом понимаете. В простейшем случае - свап.
Анонимус 24.12.2010 19:24 # 0
и оттуда же ее загрузить
в случае же оверлея программа грузилась кусками по собственному желанию
нет?
guest 24.12.2010 19:27 # +1
В любом случае в паскале свап работал в тайне от программиста. Программисту лишь в ручную нужно было поделить программу на модули. О свапе заботился компиялтор.
guest 24.12.2010 19:28 # 0
Это точно не относится к определению свапа.
guest 24.12.2010 19:30 # 0
Очень какоето неформальное определение у вас. Сами придумали?
guest 24.12.2010 19:21 # 0
И помоему, на 286 организовать подкачку всеже можно было.
Анонимус 24.12.2010 19:23 # 0
нафига там свап?
guest 24.12.2010 19:34 # 0
А вот когда её достаточно - неужели пора начинать использовать свап? :D
Анонимус 24.12.2010 19:36 # 0
даже если она вся в свапе
если все адресное пространство влезает в RAM целиком
и нет многозадачности
зачем свап?
хотя оверлей тут конечно помжет, да
guest 24.12.2010 19:39 # 0
TarasB 24.12.2010 21:42 # 0
Анонимус 24.12.2010 21:50 # 0
в другом -- смещение.
но оба регистра были по 16 бит и адресовали соответственно 2^16. а памяти было по меньше, и потому они перекрывались, тоесть один кусок памяти был доступен по двум разным адресам.
некоторые люди этим пользовались, что бы лишний раз не менять значение регистра (вот такие были оптимизаторы!)
с этим связан забавный случай, про который Вы можете узнать нагуглив "A20 gate" )
TarasB 24.12.2010 22:01 # 0
Ну а что мешало не перекрывать их? Ну пусть они могут адресовать лишнее, что такого? Ну бред же перекрывать их.
> с этим связан забавный случай, про который Вы можете узнать нагуглив "A20 gate" )
А, это про то, что можно за мегабайт адресовать почти один сегмент? Я попробовал этим воспользоваться, но походу, в НТВДМ это не катит.
Анонимус 24.12.2010 22:06 # 0
хардварно так было сделано. Линию-то надо было куда-то воткнуть.
>> в НТВДМ это не катит.
может быть в V86 это не работает
только в real
guest 24.12.2010 22:15 # 0
>А, это про то, что можно за мегабайт адресовать почти один сегмент?
Нет. A20 - включение адресации, через порт контролера клавиатуры, к верхней памяти(HMA). Мегабайтные сегменты - не в ту степь.
guest 24.12.2010 22:16 # 0
TarasB 24.12.2010 21:41 # 0
Анонимус 24.12.2010 21:47 # 0
на самом деле во времена 286го вполне можно было встретить писюк с метром памяти
TarasB 24.12.2010 22:01 # 0
guest 24.12.2010 19:24 # 0
Анонимус 24.12.2010 19:26 # 0
без страницы даже дескриптора нет: негде хранить инфу что она загружена или выгружена
guest 24.12.2010 19:35 # 0
Впрочем это не мешает воспользоваться методом оверлея.
bugmenot 24.12.2010 11:48 # 0
ctm 24.12.2010 18:22 # 0
ctm 24.12.2010 18:21 # 0
guest 24.12.2010 19:16 # 0
guest 02.01.2011 17:41 # −1
guest 02.01.2011 17:41 # −1
guest 02.01.2011 20:06 # −2
ctm 08.01.2011 15:53 # 0
http://www.comp-forum.ru/showthread.php?t=2532
в начале правда советы детские какие-то:)
ctm 08.01.2011 16:32 # 0
(это в ХР)
guest 28.04.2012 13:20 # 0
begin
if not FileExists(SaveDialog.FileName) then begin
Assignfile(f, SaveDialog.FileName);
rewrite(f); closefile(f);
if not FileExists(SaveDialog.FileName) then
raise Exception.Create('Error: Can`t create file. ');
end;
Вот такой вот способ создания файла. Как по-вашему, говнокод?
end;
guest 28.04.2012 13:21 # 0