2016-08-27 32 views
-2

Windows上でアクティブなネットワークと接続されているネットワークの名前をDelphiのコードで探したいと思います。複数ある場合もあります。このスクリーンショットで現在のネットワークの名前を取得

Example of network

のWindows 10に示す接続された一方、NETGEAR21から。 誰かがこれに答えることができれば幸いです。

+0

複数の可能性があります。あなたはどれが欲しいですか。 –

+0

さて、私は質問で明確にします。私はリストが欲しい。多くの場合、1つのネットワークに過ぎません。しかし、あなたは正しいことが多いかもしれません。 –

+1

何を試しましたか? –

答えて

1

https://theroadtodelphi.com/2015/10/28/using-the-network-list-manager-nlm-api-from-delphi/で説明されているように、まずネットワークリストマネージャへのインターフェイスを作成して作業しています。これにより、必要なファイルNETWORKLIST_TLB.pasが作成されます。 最小実装は次のとおりです。

unit ListTypes; 

interface 

uses 
    ActiveX, 
    NETWORKLIST_TLB, 
    ComObj; 

function SetUpAndGetConnections: String; 
function GetConnections: string; 

implementation 

uses 
    SysUtils, 
    Windows; 

function SetUpAndGetConnections: String; 
begin 
    CoInitialize(nil); 
    try 
    Result := GetConnections; 
    finally 
    CoUninitialize; 
    end; 
end; 

function GetConnections: String; 
var 
    NetworkListManager: INetworkListManager; 
    EnumNetworkConnections: IEnumNetworkConnections; 
    NetworkConnection : INetworkConnection; 
    pceltFetched: ULONG; 
begin 
    NetworkListManager := CoNetworkListManager.Create; 
    EnumNetworkConnections := NetworkListManager.GetNetworkConnections(); 
    Result := ''; 
    while true do 
    begin 
    EnumNetworkConnections.Next(1, NetworkConnection, pceltFetched); 
    if (pceltFetched>0) then 
     Result := Result + NetworkConnection.GetNetwork.GetName + #13#10 
    else 
     Break; 
    end; 
end; 

end. 
関連する問題