gpt4 book ai didi

delphi - 如何确定远程桌面是否正在给定的 IP 地址上运行?

转载 作者:行者123 更新时间:2023-12-03 15:53:28 25 4
gpt4 key购买 nike

我想知道哪个ip可以远程。 (远程桌面)

例如,我在编辑框中设置了网络的有效 IP,程序显示它可以是远程的,也可以不是远程的。

最佳答案

要确定某个 IP 地址是否是远程桌面服务器,您可以使用 WTSEnumerateServers功能。

按照以下步骤操作

  • 使用 WTSEnumerateServers 函数枚举网络域中的服务器
  • 获取服务器列表后,将每个服务器的名称转换为 IP 地址
  • 现在将每个服务器的 IP 地址与要检查的 IP 进行比较。

请参阅此示例,其中展示了如何使用 WTSEnumerateServers 函数

uses
Classes,
Windows,
SysUtils;

type
PWTS_SERVER_INFO = ^WTS_SERVER_INFO;
_WTS_SERVER_INFO = packed record
pServerName:LPTSTR;
end;
WTS_SERVER_INFO = _WTS_SERVER_INFO;
WTS_SERVER_INFO_Array = Array [0..0] of WTS_SERVER_INFO;
PWTS_SERVER_INFO_Array =^WTS_SERVER_INFO_Array;

{$IFDEF UNICODE}
function WTSEnumerateServers( pDomainName: LPTSTR; Reserved: DWORD; Version: DWORD; ppServerInfo: PWTS_SERVER_INFO; pCount: PDWORD):BOOLEAN; stdcall; external 'wtsapi32.dll' name 'WTSEnumerateServersW';
{$ELSE}
function WTSEnumerateServers( pDomainName: LPTSTR; Reserved: DWORD; Version: DWORD; ppServerInfo: PWTS_SERVER_INFO; pCount: PDWORD):BOOLEAN; stdcall; external 'wtsapi32.dll' name 'WTSEnumerateServersA';
{$ENDIF}
procedure WTSFreeMemory(pMemory:Pointer);stdcall; external 'wtsapi32.dll' name 'WTSFreeMemory';

procedure GetRemoteDesktopsList(const Domain:PChar;const Servers:TStrings);
var
ppServerInfo : PWTS_SERVER_INFO_Array;//PWTS_SERVER_INFO;
pCount : DWORD;
i : integer;
begin
Servers.Clear;
ppServerInfo:=nil;
try
if WTSEnumerateServers(Domain,0,1,PWTS_SERVER_INFO(@ppServerInfo),@pCount) then
for i := 0 to pCount - 1 do
Servers.Add(ppServerInfo^[i].pServerName)
else
Raise Exception.Create(SysErrorMessage(GetLastError));
finally
if ppServerInfo<>nil then
WTSFreeMemory(ppServerInfo);
end;
end;

然后像这样调用

   Servers:=TStringList.Create;
try
GetRemoteDesktops(nil,Servers); //using nil for the current domain.
//now process the list and do your stuff

finally
Servers.Free;
end;

关于delphi - 如何确定远程桌面是否正在给定的 IP 地址上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com