저는 현재 Mono를 사용하여 C#으로 Mac OSX 용 응용 프로그램을 작성하고 있습니다. 내가하고 싶은 것은 프로그램이 실행되고있는 OSX 버전을 결정하는 것이다.원시 Objective C 특성에 액세스하는 방법?
내 필요에 맞는 상수 NSAppKitVersionNumber
을 발견했습니다.
그러나, 나는 그것을이 가능해야합니다 그러므로 당신의 도움은 매우 극명하게 될 것이다 얼마나 액세스하는 아무 생각 ...
이 없습니다!
저는 현재 Mono를 사용하여 C#으로 Mac OSX 용 응용 프로그램을 작성하고 있습니다. 내가하고 싶은 것은 프로그램이 실행되고있는 OSX 버전을 결정하는 것이다.원시 Objective C 특성에 액세스하는 방법?
내 필요에 맞는 상수 NSAppKitVersionNumber
을 발견했습니다.
그러나, 나는 그것을이 가능해야합니다 그러므로 당신의 도움은 매우 극명하게 될 것이다 얼마나 액세스하는 아무 생각 ...
이 없습니다!
Windows의 .NET에는 Environment.OSVersion 메소드가 있습니다. 이 같은
// Sample for the Environment.OSVersion property
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
Console.WriteLine("OSVersion: {0}", Environment.OSVersion.ToString());
}
}
/*
This example produces the following results:
OSVersion: Microsoft Windows NT 5.1.2600.0
*/
뭔가 : 당신이 맥 OS에 당신을주는 것을보고 그것을 시도 할 수
[DllImport("/System/Library/Frameworks/CoreServices.framework/CoreServices")]
internal static extern short Gestalt(int selector, ref int response);
static string m_OSInfoString = null;
static void InitOSInfoString()
{
//const int gestaltSystemVersion = 0x73797376;
const int gestaltSystemVersionMajor = 0x73797331;
const int gestaltSystemVersionMinor = 0x73797332;
const int gestaltSystemVersionBugFix = 0x73797333;
int major = 0;
int minor = 0;
int bugFix = 0;
Gestalt(gestaltSystemVersionMajor, ref major);
Gestalt(gestaltSystemVersionMinor, ref minor);
Gestalt(gestaltSystemVersionBugFix, ref bugFix);
if (major == 10 && minor == 5)
RunningOnLeopard = true;
else
{
RunningOnLeopard = false;
if (major == 10 && minor == 7)
RunningOnLion = true;
}
m_OSInfoString = string.Format("Mac OS X/{0}.{1}.{2}", major, minor, bugFix);
}
감사합니다. 솔루션도 적용 할 수 있었지만 내 문제도 해결할 수있는 oneliner를 발견했습니다. , 아래 게시물 아래 내 의견을 참조하십시오 – wojtuch
내 산 사자에'반환 "유닉스 12.2.0.0을"Environment.OSVersion' -와와 이 http://stackoverflow.com/a/11697362/183422 당신이 뭔가를 함께 조각 수 있어야합니다. –
힌트를 주셔서 대단히 감사합니다. 다음과 같이 해결했습니다 : 'bool CanUseUserNotificationCenter = Environment.OSVersion.Version.Major> = 12;' – wojtuch