【问题标题】:How do I get the domain name in Windows 7如何在 Windows 7 中获取域名
【发布时间】:2011-09-18 17:31:22
【问题描述】:

我编写了一个运行 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');

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,查看了,我需要是经过身份验证的用户才能访问,所以我认为普通用户有权限运行这个。有点讨厌不得不使用这些可怕的 Win_api 函数,希望这是一个 Delphi 包装函数。
    • 是的,Win32 可以做到这一切,但可能很丑。
    • @Johan:NetWkstaGetInfo 有很多 Delphi 示例:google.com/search?q=NetWkstaGetInfo+delphi,例如这个delphi-central.com/tutorials/delphi_user_list.aspx
    • @Jeroen,是的,我找到了这个:delphi-central.com/tutorials/delphi_user_list.aspx他!这与您找到的相同,无论如何都很好,因为它可以在开发机器上运行。让我们看看它在生产中是否有效。
    • @Johan - 很高兴听到这个消息,一切顺利
    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多