![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как опреледить имя компьютера [D3, D5, Win95/98, WinXP]
VladTen © (2002-12-11 09:31:00)Подскажите пожалуйста. Как определить имя компьютера, и к какой рабочей группе он принадлежит.
VladTen (2002-12-11 12:11:00) [1]Всем большое спасибо, вроде все получилось.
VladTen (2002-12-11 12:05:00) [2]Сейчас попробуем
Игорь Шевченко (2002-12-11 10:54:00) [3]К какой рабочей группе:
type
TNetGetJoinInformation =
function (const lpServer : LPWSTR; var lpNameBuffer : LPWSTR;
var JoinStatus : Integer) : Integer; stdcall;
TNetApiBufferFree =
function (lpBuffer : Pointer) : Integer; stdcall;
const
{ NetGetJoinInformation join type codes }
NetSetupUnknownStatus = 0;
NetSetupUnjoined = 1;
NetSetupWorkgroupName = 2;
NetSetupDomainName = 3;
var
_fnNetGetJoinInformation : TNetGetJoinInformation = TNetGetJoinInformation(-1);
_fnNetapiBufferFree : TNetApiBufferFree = TNetApiBufferFree(-1);
function _InternalQueryNetGetJoinInformation (const lpServer : LPWSTR;
var lpNameBuffer : LPWSTR; var JoinStatus : Integer) : Integer;
begin
if Integer(@_fnNetGetJoinInformation) = -1 then
if HSQuerySystemInfo (hsiWin2000OrLater) then
@_fnNetGetJoinInformation := GetProcAddress (LoadLibrary ("netapi32"),
"NetGetJoinInformation")
else
@_fnNetGetJoinInformation := nil;
if Assigned(_fnNetGetJoinInformation) then
Result := _fnNetGetJoinInformation(lpServer, lpNameBuffer, JoinStatus)
else
Result := 127;
end;
function _InternalNetapiBufferFree (Buffer : Pointer) : Integer;
begin
if Integer(@_fnNetapiBufferFree) = -1 then
if HSQuerySystemInfo (hsiWin2000OrLater) then
@_fnNetapiBufferFree := GetProcAddress (GetModuleHandle ("netapi32"),
"NetApiBufferFree")
else
@_fnNetapiBufferFree := nil;
if Assigned(_fnNetapiBufferFree) then
Result := _fnNetapiBufferFree(Buffer)
else
Result := 127;
end;
function _InternalIsComputerJoinedToDomain : Boolean;
var
JoinName : PWideChar;
JoinStatus : Integer;
begin
if HSQuerySystemInfo (hsiWin2000OrLater) then
if NOT _JoinTypeDetermined then begin
if (_InternalQueryNetGetJoinInformation (nil,
JoinName, JoinStatus) = 0) then begin
if Assigned(JoinName) then
_InternalNetapiBufferFree (JoinName);
if JoinStatus = NetSetupDomainName then
_JoinedToDomain := true;
end;
_JoinTypeDetermined := true;
end;
Result := _JoinedToDomain;
end;
Den75 (2002-12-11 10:46:00) [4]из найденого в и-нете
function CompName: string; //Определение имени компутера
var
dwSize: Cardinal;
szBuffer: PChar;
begin
dwSize := MAX_COMPUTERNAME_LENGTH + 1;
GetMem(szBuffer, dwSize);
try
if GetComputerName(szBuffer, dwSize) then
Result := string(szBuffer)
else
Result := "неизвестно";
finally
FreeMem(szBuffer, dwSize);
end;
end;
FreeLancer (2002-12-11 09:42:00) [5]
> Первое GetComputerName
Да, для локальной станции.
Anatoly Podgoretsky (2002-12-11 09:38:00) [6]Первое GetComputerName