「C Sharpの応用 - D-Bus」の版間の差分

ナビゲーションに移動 検索に移動
61行目: 61行目:


== サンプルコード ==
== サンプルコード ==
 
以下の例では、Linuxにおいてセッションをログオフしている。<br>
<br>
<syntaxhighlight lang="c#">
using Tmds.DBus;
using login1.DBus;  // org.freedesktop.login1サービスをもとに自動生成されたC#インターフェース
namespace DBusSample;
internal static class Program
{
    private static async Task Main(string[] args)
    {
      try
      {
          // DBusのシステムバスに接続
          var connection = Connection.System;
          // ログインマネージャーオブジェクトを取得
          var loginManager = connection.CreateProxy<IManager>("org.freedesktop.login1", new ObjectPath("/org/freedesktop/login1"));
          // セッションのリストを取得
          var sessions = await loginManager.ListSessionsAsync();
          // セッションをログオフする
          foreach (var session in sessions)
          {
            await loginManager.TerminateSessionAsync(session.Item1);
          }
          Console.WriteLine("ログオフが完了しました。");
        }
        catch (Exception ex)
        {
          Console.WriteLine($"エラー: {ex.Message}");
        }
    }
}
</syntaxhighlight>
<br><br>
<br><br>


案内メニュー