差分
ナビゲーションに移動
検索に移動
ページの作成:「==概要== 業務アプリなんかだと特定の人が使い終わったタイミングでOSのログイン画面まで戻しておきたいことも多いと思う。...」
==概要==
業務アプリなんかだと特定の人が使い終わったタイミングでOSのログイン画面まで戻しておきたいことも多いと思う。
アプリレベルで認証画面をつけるのは無駄な労力なので、[[Mac OS X]]のユーザー認証をLDAPにして外部に丸投げしたい場合などに活躍する。
==実装:コマンドを叩く==
ターミナルなどで以下のコマンドを叩くとスクリーンがロックされる。
<source lang="bash">
/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession -suspend
</source>
これを[[Xamarin.Mac]]や[[MonoMac]]から外部コマンドとして実行してやるだけでよい。
当初System.Diagnostics.Process.Startで外部コマンドの実行を試みたがopenコマンドのエラーが出て上手くいかなかったので、とりあえずNSTask.LaunchFromPathを使って実現している。
<source lang="csharp">
using System;
using System.Drawing;
using MonoMac.Foundation;
using MonoMac.AppKit;
namespace ScreenLock
{
class MainClass
{
static void Main(string[] args)
{
NSApplication.Init();
NSTask.LaunchFromPath(
"/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession",
new []{"-suspend"});
}
}
}
</source>
==関連項目==
*[[Xamarin.Mac/ディスプレイのスリープを解除する]]
*[[Xamarin.Mac/スクリーンセーバーを終了させる]]
*[[Xamarin.Mac/AppleScriptを実行する]]
*[[Xamarin.Mac/システムステータスバーにアイコンを表示する]]
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]
[[category:MonoMac]]
業務アプリなんかだと特定の人が使い終わったタイミングでOSのログイン画面まで戻しておきたいことも多いと思う。
アプリレベルで認証画面をつけるのは無駄な労力なので、[[Mac OS X]]のユーザー認証をLDAPにして外部に丸投げしたい場合などに活躍する。
==実装:コマンドを叩く==
ターミナルなどで以下のコマンドを叩くとスクリーンがロックされる。
<source lang="bash">
/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession -suspend
</source>
これを[[Xamarin.Mac]]や[[MonoMac]]から外部コマンドとして実行してやるだけでよい。
当初System.Diagnostics.Process.Startで外部コマンドの実行を試みたがopenコマンドのエラーが出て上手くいかなかったので、とりあえずNSTask.LaunchFromPathを使って実現している。
<source lang="csharp">
using System;
using System.Drawing;
using MonoMac.Foundation;
using MonoMac.AppKit;
namespace ScreenLock
{
class MainClass
{
static void Main(string[] args)
{
NSApplication.Init();
NSTask.LaunchFromPath(
"/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession",
new []{"-suspend"});
}
}
}
</source>
==関連項目==
*[[Xamarin.Mac/ディスプレイのスリープを解除する]]
*[[Xamarin.Mac/スクリーンセーバーを終了させる]]
*[[Xamarin.Mac/AppleScriptを実行する]]
*[[Xamarin.Mac/システムステータスバーにアイコンを表示する]]
==参考文献==
{{reflist}}
{{stub}}
[[category:Xamarin.Mac]]
[[category:MonoMac]]