12,925
回編集
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> | ||