「Xamarin.Mac/スクリーンをロックする」の版間の差分

ページの作成:「==概要== 業務アプリなんかだと特定の人が使い終わったタイミングでOSのログイン画面まで戻しておきたいことも多いと思う。...」
 
 
(同じ利用者による、間の1版が非表示)
10行目: 10行目:


これを[[Xamarin.Mac]]や[[MonoMac]]から外部コマンドとして実行してやるだけでよい。
これを[[Xamarin.Mac]]や[[MonoMac]]から外部コマンドとして実行してやるだけでよい。
当初System.Diagnostics.Process.Startで外部コマンドの実行を試みたがopenコマンドのエラーが出て上手くいかなかったので、とりあえずNSTask.LaunchFromPathを使って実現している。
<source lang="csharp">
<source lang="csharp">
using System;
using System;
31行目: 30行目:
     }
     }
}
}
</source>
[[Cocoa]]依存のNSTask.LaunchFromPathメソッドではなく、[[.NET]]標準のSystem.Diagnostics.Process.Startメソッドで外部コマンドを実行してもよい。
マルチプラットフォームを前提とする[[Mono]]系で[[プログラミング]]する際には、[[.NET]]でも可能なものは[[.NET]]で実現するのが望ましいのだろうが、これは叩いているコマンド自体が[[Mac]]依存なのであんまり意味がない。
<source lang="csharp">
            System.Diagnostics.Process.Start(
                "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession",
                "-suspend"
            );
</source>
</source>