Форум: "Сети";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизИмя компа Найти похожие ветки
← →
Максим (2004-08-09 07:03) [0]как узнать имя компьютера и имя пользователя ???
← →
Rouse_ © (2004-08-09 10:05) [1]
function GetCompNameFromIP(const IP: String; var Report: String): String;
var
Host: PHostEnt;
Addr: Integer;
begin
Result := RES_UNKNOWN;
Addr := inet_addr(PChar(IP));
if Addr = INADDR_NONE then
begin
Report := SysErrorMessage(GetLastError);
Exit;
end;
Host := gethostbyaddr(@Addr, SizeOf(Addr), PF_INET);
if Assigned(Host) then
Result := Host.h_name
else
Report := SysErrorMessage(GetLastError);
end;// Перечисляем всех залогиненных на машине пользователей
// начинаем перечисления со второго пользователя, потомчто
// первым будет "имя компьютера"$
function TMainForm.GetUsers(const CompName: String): String;
var
Buffer, tmpBuffer: Pointer;
PrefMaxLen : DWORD;
Resume_Handle : DWORD;
EntriesRead : DWORD;
TotalEntries : DWORD;
I, Size : Integer;
PSrvr : PWideChar;
begin
PSrvr := nil;
try
// Переводим имя компьютера типа PWideChar
Size := Length(CompName);
GetMem(PSrvr, Size * SizeOf(WideChar) + 1);
StringToWideChar(CompName, PSrvr, Size + 1);
PrefMaxLen := DWORD(-1);
EntriesRead := 0;
TotalEntries := 0;
Resume_Handle := 0;
Buffer := nil;
// Получаем список пользователей на компьютере из PSrvr
if NetWkstaUserEnum( PSrvr, 1, @Buffer, PrefMaxLen, @EntriesRead,
@TotalEntries, @Resume_Handle) = S_OK then
begin
tmpBuffer := Pointer(DWORD(Buffer) + SizeOf(WKSTA_USER_INFO_1));
for I := 1 to TotalEntries - 1 do
begin
Result := Result + WKSTA_USER_INFO_1(tmpBuffer^).wkui1_username + ", ";
tmpBuffer := Pointer(DWORD(tmpBuffer) + SizeOf(WKSTA_USER_INFO_1));
end;
end
else
ShowMessage(SysErrorMessage(GetLastError));
finally
if Result = "" then
Result := RES_UNKNOWN
else
Result := Copy(Result, 1, Length(Result) - 2);
NetApiBufferFree(Buffer);
FreeMem(PSrvr);
end;
end;
а также GetUserName, GetComputerName :)
← →
Rouse_ © (2004-08-09 10:07) [2]И как обычно забыл структуру (это уже становится плохой практикой :)
_WKSTA_USER_INFO_1 = record
wkui1_username: LPWSTR;
wkui1_logon_domain: LPWSTR;
wkui1_oth_domains: LPWSTR;
wkui1_logon_server: LPWSTR;
end;
WKSTA_USER_INFO_1 = _WKSTA_USER_INFO_1;
PWKSTA_USER_INFO_1 = ^_WKSTA_USER_INFO_1;
LPWKSTA_USER_INFO_1 = ^_WKSTA_USER_INFO_1;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c