マイノートは文書化されていないクラス、ScreenSaverController
を使用してこれを行う方法があることを言わなければなりません。ここでヘッダーです:
@interface ScreenSaverController : NSObject
{
void *_reserved;
}
+ (id)controller;
+ (id)enginePath;
- (id)init;
- (void)dealloc;
- (BOOL)screenSaverIsRunning;
- (BOOL)screenSaverCanRun;
- (void)setScreenSaverCanRun:(BOOL)arg1;
- (void)screenSaverStartNow;
- (void)screenSaverStopNow;
- (void)restartForUser:(id)arg1;
- (double)screenSaverTimeRemaining;
- (BOOL)screenSaverIsRunningInBackground;
- (void)screenSaverDidFadeInBackground:(BOOL)arg1
psnHi:(unsigned int)arg2
psnLow:(unsigned int)arg3;
@end
そして、ここではそれを使用する方法は次のとおりです。あなたがこれを使用するScreenSaver
フレームワークにリンクする必要があります
ScreenSaverController *ssc = [ScreenSaverController controller];
if ([ssc screenSaverCanRun]) { ... }
[ssc release];
注意。これは文書化されていないクラスなので、あなたのアプリケーションはMac App Storeの資格がありません。
また、screenSaverTimeRemaining
をご覧ください。スクリーンセーバーの起動を妨げるいくつかの方法が、これを継続的にリセットすることがあります。
ありがとうございますが、私はアプリストアの安全なソリューションを探していました。私は質問を更新しました。他に何も来なければ、私はあなたの答えを受け入れます。 – Tibidabo