如何在Windows 7中获取域名

时间:2011-06-20 13:52:26

标签: delphi dll windows-7 dns delphi-2007

我写了一个运行Excel加载项的dll(几年前)。

我使用此代码检索域名,这在Windows XP中运行正常,但在Windows 7中失败 如果我以管理员身份运行,它是否正常工作 但是,我不想以管理员身份运行,因为此代码是Excel加载项DLL的一部分,如果以管理员身份运行,Excel无法找到用户的文件。

MyReg:= TRegistry.Create;

MyReg.RootKey:= HKEY_LOCAL_MACHINE;
MyReg.OpenKey(RegKeyWin7,false);
NetworkID2:= lowercase(trim(MyReg.ReadString(RegValWin7)));
MyReg.CloseKey;

FreeAndNil(MyReg);

FNetworkOK:= (NetworkID2 = OKRes4);
//Temp check to pinpoint the problem.
if FNetWorkOK = false then ShowMessage('Error wrong domain: '+NetworkID2)
else ShowMessage('all ok');

如何在正常权限下使用Delphi检索Windows 7中的域名?

1 个答案:

答案 0 :(得分:7)

在Win32 API中使用NetWkstaGetInfo,通过level值= 100请求信息。

  

返回有关的信息   工作站环境,包括   平台特定的信息,   域名和本地名称   计算机和有关的信息   操作系统。 bufptr   参数指向WKSTA_INFO_100   结构