delphi - 无法读取 NetBIOS 状态

标签 delphi delphi-2007 netbios

我们在 Delphi 中的 NetBIOS 代码中遇到了一个(可重现的)错误,该错误(似乎)已经存在了多年。

使用Windows 7/64位系统。

我们有一个例程来检查 NetBIOS 是否处于事件状态。 我们通过调用 NetBIOS() 并读取返回代码来完成此操作。

即便如此,我们还是通过(单个启用的)网络连接上的 Windows 属性停用了 NetBIOS, 对 Netbios(lRec) 的调用返回 NRC_GOODRET。

这是重要的代码片段:

Getmem(lNCB, SizeOf(TNCB));
try
  Fillchar(lNCB^, SizeOf(TNCB), 0);

  Getmem(lLenum, SizeOf(TLanaEnum));
  try
    Fillchar(lLenum^, SizeOf(TLanaEnum), 0);

    Getmem(lAdapter, SizeOf(TAdapterStatus));
    try
      Fillchar(lAdapter^, SizeOf(TAdapterStatus), 0);

      lLenum.Length := chr(0);
      lNCB.ncb_command := chr(NCBENUM); // List NetBIOS
      lNCB.ncb_buffer := Pointer(lLenum);
      lNCB.ncb_length := SizeOf(lLenum);

      if Netbios(lNCB) = Char(NRC_GOODRET) then
        ... We get here, even when NetBIOS is deactiated

该代码多年来一直未更改且有效。我错过了什么吗?

最佳答案

MSDN说 Windows 7 不支持 Netbios:

"Netbios is not supported on Windows Vista, Windows Server 2008, and subsequent versions of the operating system"

关于delphi - 无法读取 NetBIOS 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187664/

相关文章:

c# - 如何获得完整的主机名

c - linux C 服务器 - 识别/命名客户端

windows - Delphi - 如何防止 Forms/MsgBoxes 在先前的表单下移动?

delphi - 初始化字符串函数结果?

ios - 列出本地网络中的设备名称

Delphi例程以任意语言以任意编码显示任意字节

delphi - Delphi 2007没有生成要发送到Java-WS Web服务的XML

delphi - 更改复选框状态而不调用 OnClick 事件

Delphi:如果我在我的项目中使用包,为什么 "use debug DCUs"会变得无效?

c# - 在 Delphi 中使用 .NET 程序集