起動中のアプリケーション情報を元にしたキャプチャを考えている。具体的な内容はこれからおいおい明らかにするとして、まずは現在実行中のアプリケーション情報はどのようなものが取れるかを検証していく。
Cocoaには NSWorkspace が用意されていて #launchedApplications メソッドで実行中のアプリケーション情報を取得することができる。
試しに簡単なコードを書いてみた。
NSWorkspace* ws = [NSWorkspace sharedWorkspace];
NSLog(@"%@", [ws launchedApplications]);
結果は次の通り。
2008-07-02 20:46:42.048 AppList[757:10b] (
{
NSApplicationBundleIdentifier = "com.apple.finder";
NSApplicationName = Finder;
NSApplicationPath = "/System/Library/CoreServices/Finder.app";
NSApplicationProcessIdentifier = 156;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 49164;
},
{
NSApplicationBundleIdentifier = "com.apple.Safari";
NSApplicationName = Safari;
NSApplicationPath = "/Applications/Safari.app";
NSApplicationProcessIdentifier = 284;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 102425;
},
{
NSApplicationBundleIdentifier = "com.apple.mail";
NSApplicationName = Mail;
NSApplicationPath = "/Applications/Mail.app";
NSApplicationProcessIdentifier = 285;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 106522;
},
{
NSApplicationBundleIdentifier = "etd.happy.catsan.programming";
NSApplicationName = EasyToDo;
NSApplicationPath = "/Applications/\U30c4\U30fc\U30eb/EasyToDo.app";
NSApplicationProcessIdentifier = 292;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 110619;
},
{
NSApplicationBundleIdentifier = "com.apple.Preview";
NSApplicationName = "\U30d7\U30ec\U30d3\U30e5\U30fc";
NSApplicationPath = "/Applications/Preview.app";
NSApplicationProcessIdentifier = 343;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 127007;
},
{
NSApplicationBundleIdentifier = "com.apple.iTunes";
NSApplicationName = iTunes;
NSApplicationPath = "/Applications/iTunes.app";
NSApplicationProcessIdentifier = 470;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 196656;
},
{
NSApplicationBundleIdentifier = "com.apple.Xcode";
NSApplicationName = Xcode;
NSApplicationPath = "/Developer/Applications/Xcode.app";
NSApplicationProcessIdentifier = 692;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 381021;
},
{
NSApplicationBundleIdentifier = "com.yourcompany.AppList";
NSApplicationName = AppList;
NSApplicationPath = "/Users/hashi/development/study/AppList/build/Debug/AppList.app";
NSApplicationProcessIdentifier = 757;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 389215;
}
)
*
バンドルIdentifier や名前、プログラムパス、プロセスIDなどが取れる。