0

私はここでは新人です。mac os x のデフォルトのメール クライアント情報について検索しました。AppleScript を使用して既定のメール クライアントを取得するにはどうすればよいですか? しかし、必要なすべての情報を取得できませんでした。デフォルトのメールクライアント名を取得しましたが、Mail.app の「メールについて」セクション (起動時) に表示されるバージョンを取得できませんでした。

4

1 に答える 1

5

LaunchServicesは、ユーザーの優先アプリケーションに関する情報を含む OS X API です。

このLSGetApplicationForURL()関数は、求めるデータを返します。以下は、その使用の短い例です。

#include <CoreFoundation/CoreFoundation.h>
#include <ApplicationServices/ApplicationServices.h>

int main(int argc, char *argv[])
{
  CFURLRef mailURL = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("mailto://"), NULL);
  CFURLRef mailAppURL = NULL;
  OSStatus ret = 0;
  if((ret = LSGetApplicationForURL(mailURL, kLSRolesAll, NULL, &mailAppURL)) == 0)
  {
    CFStringRef path = CFURLCopyFileSystemPath(mailAppURL, kCFURLPOSIXPathStyle);
    CFShow(path);

    CFRelease(path);
    CFRelease(mailAppURL);
  }
  else
  {
    fprintf(stderr, "LaunchServices error %d\n", ret);
  }

  CFRelease(mailURL);
  return ret;
}

私のシステムでは、それは/Applications/Mail.app. 返されたアイテムについてさらに情報が必要な場合は、LSCopyItemInfoForURL()関数onを使用できますmailAppURL

于 2013-03-14T20:06:40.803 に答える