Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Имя компьютера [Win2k]


Жук ©   (2003-03-19 10:39:00) 

Приведённая процедура иногда не вытаскивает имя компьютера. Почему ?
procedure TFPrinc.Whod;
var
Registry: TRegistry;
s:String;
begin
s:="";
Registry:=TRegistry.Create;
try
Registry.RootKey:=HKEY_LOCAL_MACHINE;
Registry.OpenKey
("\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName",False);
s:=Registry.ReadString("ComputerName");
finally
Registry.CloseKey;
Registry.Free;
end;
end;


max2057   (2003-03-26 15:10:00) [1]

Удалено модератором
Примечание: Задай СВОЙ вопрос в отдельной ветке


theodor_iv   (2003-03-19 21:53:00) [2]

Перед Registry.OpenKey нужно дописать строку
Registry.Access := KEY_READ;
тогда будет работать и без прав админа.

Хотя GetComputerName в данном случае правильнее.


Жук   (2003-03-19 14:02:00) [3]

Заработало в таком виде :
procedure TFPrinc.Whod;
var
s:String;
Buffer:array [0..MAX_COMPUTERNAME_LENGTH+1] of Char;
nSize:DWORD;
begin
s:="";
nSize:=SizeOF(Buffer);
GetComputerName(@Buffer, nSize);
s:=StrPas(@Buffer);
end;

Только не понятно, почему ошибку не выдавало в первом варианте, когда прав не хватало на Registry.OpenKey...


Жук   (2003-03-19 11:03:00) [4]

2 Jel
Не админ. Спасибо.

2 Слесарь Матерящийся
Ща перепишу с предложенной вами процедурой. Спасибо. :-)


Слесарь Матерящийся   (2003-03-19 10:58:00) [5]

А чем плох GetComputerName() (Win32 API)?


Jel   (2003-03-19 10:50:00) [6]

А с какими правами пробуешь запускать? Если не админ - не пустят.
В коде ошибок вроде нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо