03. februar 2003 - 06:04Der er
3 kommentarer og 1 løsning
Workgroup via API
Hvordan bestemmer man sin workgroup via API kald? Jeg har et program hvor jeg skal bruge workgroup'en, men den skal IKKE hentes fra registreringsdatabasen.
function GetDomainName: AnsiString; type WKSTA_INFO_100 = record wki100_platform_id: Integer; wki100_computername: PWideChar; wki100_langroup: PWideChar; wki100_ver_major: Integer; wki100_ver_minor: Integer; end;
WKSTA_USER_INFO_1 = record wkui1_username: PChar; wkui1_logon_domain: PChar; wkui1_logon_server: PChar; wkui1_oth_domains: PChar; end; type //Win9X ANSI prototypes from RADMIN32.DLL and RLOCAL32.DLL
function IsWinNT: Boolean; var VersionInfo: TOSVersionInfo; begin VersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); Result := GetVersionEx(VersionInfo); if Result then Result := VersionInfo.dwPlatformID = VER_PLATFORM_WIN32_NT; end; var
if IsWinNT then begin hNETAPI := LoadLibrary('NETAPI32.DLL'); if hNETAPI <> 0 then begin @WinNT_NetWkstaGetInfo := GetProcAddress(hNETAPI, 'NetWkstaGetInfo'); @WinNT_NetApiBufferFree := GetProcAddress(hNETAPI, 'NetApiBufferFree');
EC := WinNT_NetWkstaGetInfo(nil, 100, Pointer(WSNT)); if EC = 0 then begin Result := WideCharToString(WSNT^.wki100_langroup); WinNT_NetApiBufferFree(Pointer(WSNT)); end; end; end else begin hNETAPI := LoadLibrary('RADMIN32.DLL'); if hNETAPI <> 0 then begin @Win95_NetApiBufferFree := GetProcAddress(hNETAPI, 'NetApiBufferFree'); @Win95_NetUserGetInfo := GetProcAddress(hNETAPI, 'NetUserGetInfoA');
EC := Win95_NetWkstaUserGetInfo(nil, 1, Pointer(WS95)); if EC = 0 then begin Result := WS95^.wkui1_logon_domain; Win95_NetApiBufferFree(Pointer(WS95)); end; end; end;
finally if hNETAPI <> 0 then FreeLibrary(hNETAPI); end; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.